hikoutei 0.8.56 → 0.8.58

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.
Files changed (52) hide show
  1. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts +20 -9
  2. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -1
  3. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +15 -8
  4. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -1
  5. package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts +24 -5
  6. package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts.map +1 -1
  7. package/dist/adapter/sheets/providers/google-sheets-api/constants.js +24 -5
  8. package/dist/adapter/sheets/providers/google-sheets-api/constants.js.map +1 -1
  9. package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts +7 -1
  10. package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts.map +1 -1
  11. package/dist/adapter/sheets/providers/google-sheets-api/errors.js +19 -1
  12. package/dist/adapter/sheets/providers/google-sheets-api/errors.js.map +1 -1
  13. package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts +1 -1
  14. package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts.map +1 -1
  15. package/dist/adapter/sheets/providers/google-sheets-api/index.js +1 -1
  16. package/dist/adapter/sheets/providers/google-sheets-api/index.js.map +1 -1
  17. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.d.ts +12 -4
  18. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.d.ts.map +1 -1
  19. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.js +38 -14
  20. package/dist/adapter/sheets/providers/google-sheets-api/operations/shared.js.map +1 -1
  21. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts +13 -0
  22. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts.map +1 -1
  23. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js +51 -3
  24. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -1
  25. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts +9 -4
  26. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts.map +1 -1
  27. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js +9 -4
  28. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js.map +1 -1
  29. package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts +1 -0
  30. package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts.map +1 -1
  31. package/dist/application/sync/outbound/SheetsEffectDispatcher.js +3 -0
  32. package/dist/application/sync/outbound/SheetsEffectDispatcher.js.map +1 -1
  33. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
  34. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +39 -5
  35. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
  36. package/dist/application/sync/outbound/reconciliation/diff.d.ts +19 -1
  37. package/dist/application/sync/outbound/reconciliation/diff.d.ts.map +1 -1
  38. package/dist/application/sync/outbound/reconciliation/diff.js +60 -17
  39. package/dist/application/sync/outbound/reconciliation/diff.js.map +1 -1
  40. package/dist/application/sync/outbound/reconciliation/repair.d.ts +34 -3
  41. package/dist/application/sync/outbound/reconciliation/repair.d.ts.map +1 -1
  42. package/dist/application/sync/outbound/reconciliation/repair.js +120 -47
  43. package/dist/application/sync/outbound/reconciliation/repair.js.map +1 -1
  44. package/dist/application/sync/outbound/reconciliation/shared.d.ts +20 -0
  45. package/dist/application/sync/outbound/reconciliation/shared.d.ts.map +1 -1
  46. package/dist/application/sync/outbound/reconciliation/shared.js +35 -0
  47. package/dist/application/sync/outbound/reconciliation/shared.js.map +1 -1
  48. package/dist/application/sync/sheetsContract/transportOutcome.d.ts +32 -5
  49. package/dist/application/sync/sheetsContract/transportOutcome.d.ts.map +1 -1
  50. package/dist/application/sync/sheetsContract/transportOutcome.js +99 -6
  51. package/dist/application/sync/sheetsContract/transportOutcome.js.map +1 -1
  52. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  * Full sync provider over the Google Sheets REST API.
3
3
  *
4
4
  * Implements every provider capability the sync runtime needs with ONE
5
- * provider instance (one transport, one read limiter, one write limiter, one
5
+ * provider instance (one transport, one shared request-start limiter, one
6
6
  * telemetry sink): the outbound effect worker (fast append, applyEffects,
7
7
  * postcondition recovery), projection provisioning, values-only table reads,
8
8
  * row-anchor assignment, and full metadata snapshots. The service-account
@@ -20,8 +20,14 @@
20
20
  *
21
21
  * Request pacing is per transport call: every `getSpreadsheet` (preflight
22
22
  * enumeration, preflight data, observation reads, post-reads, table reads,
23
- * provisioning reads) and every `batchUpdate` acquires its class limiter and
24
- * emits one redacted telemetry event.
23
+ * provisioning reads) and every `batchUpdate` acquires the ONE shared
24
+ * request-start limiter and emits one redacted telemetry event. Reads and
25
+ * writes serialize against each other, so a combined read+write burst can
26
+ * never outpace the interval. Admission is BOUNDED: a request whose slot
27
+ * lies more than one interval out is refused before any SDK call with the
28
+ * stable delivery-uncertain `google_sheets_api_request_start_refused`
29
+ * error, so an arbitrarily long limiter queue can never make a request
30
+ * wait past its effect lease — the durable worker requeues instead.
25
31
  */
26
32
  import type { ApplySyncEffectsRequest, ApplySyncEffectsResult, EnsureSyncRowAnchorsRequest, EnsureSyncRowAnchorsResult, FastAppendRowsRequest, FastAppendRowsResult, ReadSyncEffectPostconditionsRequest, ReadSyncSnapshotRequest, ReadSyncTableRowsRequest, SyncEffectPostcondition, SyncEffectPostconditionResult, SyncEffectWorkerProvider, SyncObservedSnapshot, SyncSheetsObservationBatchProvider, SyncSheetsObservationProvider, SyncSheetsSnapshot, SyncSheetsTableReader, SyncProjectionEffect, SyncTableRowsResult } from "../../../../application/sync/sheetsContract/syncSheets.js";
27
33
  import type { RegisteredSyncProjectionDefinition, SyncSheetsProvisioner, SyncSheetsProvisionRoute } from "../../../../application/sync/sheetsContract/sheetsProvisioning.js";
@@ -50,7 +56,11 @@ export interface GoogleSheetsApiProviderOptions {
50
56
  * lease.
51
57
  */
52
58
  readonly readTimeoutMs?: number;
53
- /** Minimum interval between request starts per class; defaults to 1,100 ms. */
59
+ /**
60
+ * Minimum interval between request starts; defaults to 2,500 ms. Also the
61
+ * admission bound: a request whose slot lies more than one interval out is
62
+ * refused before any SDK call (delivery-uncertain, requeued durably).
63
+ */
54
64
  readonly rateLimitIntervalMs?: number;
55
65
  /** Serialized batchUpdate byte budget; defaults to ~2 MB. */
56
66
  readonly maxBatchBytes?: number;
@@ -70,11 +80,12 @@ export interface GoogleSheetsApiSyncProviderOptions extends GoogleSheetsApiProvi
70
80
  * Full sync provider over the Sheets REST API: outbound effects, provisioning,
71
81
  * table reads, anchors, and snapshots behind the shared provider contracts.
72
82
  *
73
- * All reads share one read limiter; all writes share one write limiter; the
74
- * worker-level append throttle stays enabled on top in service mode via the
75
- * bootstrap's bulk worker options. Provisioning runs at startup before the
76
- * worker, and observation anchors are the only metadata mutations outside
77
- * effect batches.
83
+ * All reads and writes share ONE request-start limiter, so combined
84
+ * read+write starts are serialized (at most one transport call per
85
+ * interval); the worker-level append throttle stays enabled on top in
86
+ * service mode via the bootstrap's bulk worker options. Provisioning runs
87
+ * at startup before the worker, and observation anchors are the only
88
+ * metadata mutations outside effect batches.
78
89
  *
79
90
  * The class is a thin facade: every method body lives in an operation module
80
91
  * under `operations/` and receives the immutable wiring from `this.deps`.
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleSheetsApiSyncProvider.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoogleSheetsApiSyncProvider.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Full sync provider over the Google Sheets REST API.
3
3
  *
4
4
  * Implements every provider capability the sync runtime needs with ONE
5
- * provider instance (one transport, one read limiter, one write limiter, one
5
+ * provider instance (one transport, one shared request-start limiter, one
6
6
  * telemetry sink): the outbound effect worker (fast append, applyEffects,
7
7
  * postcondition recovery), projection provisioning, values-only table reads,
8
8
  * row-anchor assignment, and full metadata snapshots. The service-account
@@ -20,8 +20,14 @@
20
20
  *
21
21
  * Request pacing is per transport call: every `getSpreadsheet` (preflight
22
22
  * enumeration, preflight data, observation reads, post-reads, table reads,
23
- * provisioning reads) and every `batchUpdate` acquires its class limiter and
24
- * emits one redacted telemetry event.
23
+ * provisioning reads) and every `batchUpdate` acquires the ONE shared
24
+ * request-start limiter and emits one redacted telemetry event. Reads and
25
+ * writes serialize against each other, so a combined read+write burst can
26
+ * never outpace the interval. Admission is BOUNDED: a request whose slot
27
+ * lies more than one interval out is refused before any SDK call with the
28
+ * stable delivery-uncertain `google_sheets_api_request_start_refused`
29
+ * error, so an arbitrarily long limiter queue can never make a request
30
+ * wait past its effect lease — the durable worker requeues instead.
25
31
  */
26
32
  import { SYNC_SHEETS_ERROR_CODES, SyncSheetsContractError, } from "../../../../application/sync/sheetsContract/errors.js";
27
33
  import { GOOGLE_SHEETS_API_DEFAULTS, } from "./constants.js";
@@ -37,11 +43,12 @@ import { provisionRegistry, } from "./operations/provisioning.js";
37
43
  * Full sync provider over the Sheets REST API: outbound effects, provisioning,
38
44
  * table reads, anchors, and snapshots behind the shared provider contracts.
39
45
  *
40
- * All reads share one read limiter; all writes share one write limiter; the
41
- * worker-level append throttle stays enabled on top in service mode via the
42
- * bootstrap's bulk worker options. Provisioning runs at startup before the
43
- * worker, and observation anchors are the only metadata mutations outside
44
- * effect batches.
46
+ * All reads and writes share ONE request-start limiter, so combined
47
+ * read+write starts are serialized (at most one transport call per
48
+ * interval); the worker-level append throttle stays enabled on top in
49
+ * service mode via the bootstrap's bulk worker options. Provisioning runs
50
+ * at startup before the worker, and observation anchors are the only
51
+ * metadata mutations outside effect batches.
45
52
  *
46
53
  * The class is a thin facade: every method body lives in an operation module
47
54
  * under `operations/` and receives the immutable wiring from `this.deps`.
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleSheetsApiSyncProvider.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoogleSheetsApiSyncProvider.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.ts"],"names":[],"mappings":"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"}
@@ -30,12 +30,31 @@ export declare const GOOGLE_SHEETS_API_DEFAULTS: {
30
30
  /** Upper bound for read timeouts; reads must stay well under the lease. */
31
31
  readonly MAX_READ_TIMEOUT_MS: 60000;
32
32
  /**
33
- * Minimum interval between request starts of one class (reads or writes).
34
- * Google Sheets quota is enforced per 100-second windows; the provider
35
- * spaces request starts so a burst cannot exhaust the read or write budget
36
- * before the worker's own backoff reacts.
33
+ * Minimum interval between request starts of the WHOLE provider: reads and
34
+ * writes share ONE request-start limiter, so at most one Sheets API
35
+ * request can start per interval regardless of class. Google Sheets quota
36
+ * is enforced per 100-second windows; the 2,500 ms default serializes
37
+ * combined read+write starts to about 40 starts per 100 s, leaving
38
+ * headroom inside the default per-user/per-project 100-second quotas for
39
+ * the observation and provisioning reads that run beside the worker. The
40
+ * exact quota stays provider and environment dependent, so operators can
41
+ * override the interval through the internal sync env key
42
+ * (HIKOUTEI_SYNC_RATE_LIMIT_INTERVAL_MS) or the internal provider option;
43
+ * the safe default is intentionally conservative. The interval is part of
44
+ * the effect-lease headroom contract: a worst-case dispatch (two
45
+ * preflight/postcondition reads plus one write, each paced and timed out,
46
+ * with up to one full interval of first-slot wait) must finish inside the
47
+ * lease with the 30-second provider headroom, and the internal service
48
+ * validation rejects an override that would let pacing outlive the lease
49
+ * (the env override is bounded to the largest default-safe interval,
50
+ * ~10 s). Admission is BOUNDED to one interval per request start: a call
51
+ * whose slot lies more than one interval out is refused before any SDK
52
+ * call with the stable delivery-uncertain
53
+ * `google_sheets_api_request_start_refused` error (the durable worker
54
+ * requeues), so an arbitrarily long queue of concurrent lock-free polling
55
+ * reads can never make a write wait past its lease.
37
56
  */
38
- readonly REQUEST_START_INTERVAL_MS: 1100;
57
+ readonly REQUEST_START_INTERVAL_MS: 2500;
39
58
  /**
40
59
  * The provider stops adding effects to one batchUpdate once the serialized
41
60
  * body would exceed this budget and returns `hasMore` for the suffix. The
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,2DAE3B,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,0BAA0B;IACrC,gFAAgF;;;;IAIhF;;;;;OAKG;;IAEH,2EAA2E;;IAE3E;;;;;OAKG;;IAEH;;;;;OAKG;;IAEH,+EAA+E;;IAE/E,2EAA2E;;CAEnE,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,oCAAoC,4CACN,CAAC;AAE5C,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,+FAOpC,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,iBAAiB,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,6CACb,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,2CAA2C;;;CAG9C,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;CAanC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,OAAO,gCAAgC,CAAC,CAAC;AAE3F,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,2DAE3B,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,0BAA0B;IACrC,gFAAgF;;;;IAIhF;;;;;OAKG;;IAEH,2EAA2E;;IAE3E;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;;IAEH;;;;;OAKG;;IAEH,+EAA+E;;IAE/E,2EAA2E;;CAEnE,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,oCAAoC,4CACN,CAAC;AAE5C,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,+FAOpC,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,iBAAiB,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,6CACb,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,2CAA2C;;;CAG9C,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;CAanC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,OAAO,gCAAgC,CAAC,CAAC;AAE3F,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE"}
@@ -32,12 +32,31 @@ export const GOOGLE_SHEETS_API_DEFAULTS = {
32
32
  /** Upper bound for read timeouts; reads must stay well under the lease. */
33
33
  MAX_READ_TIMEOUT_MS: 60_000,
34
34
  /**
35
- * Minimum interval between request starts of one class (reads or writes).
36
- * Google Sheets quota is enforced per 100-second windows; the provider
37
- * spaces request starts so a burst cannot exhaust the read or write budget
38
- * before the worker's own backoff reacts.
35
+ * Minimum interval between request starts of the WHOLE provider: reads and
36
+ * writes share ONE request-start limiter, so at most one Sheets API
37
+ * request can start per interval regardless of class. Google Sheets quota
38
+ * is enforced per 100-second windows; the 2,500 ms default serializes
39
+ * combined read+write starts to about 40 starts per 100 s, leaving
40
+ * headroom inside the default per-user/per-project 100-second quotas for
41
+ * the observation and provisioning reads that run beside the worker. The
42
+ * exact quota stays provider and environment dependent, so operators can
43
+ * override the interval through the internal sync env key
44
+ * (HIKOUTEI_SYNC_RATE_LIMIT_INTERVAL_MS) or the internal provider option;
45
+ * the safe default is intentionally conservative. The interval is part of
46
+ * the effect-lease headroom contract: a worst-case dispatch (two
47
+ * preflight/postcondition reads plus one write, each paced and timed out,
48
+ * with up to one full interval of first-slot wait) must finish inside the
49
+ * lease with the 30-second provider headroom, and the internal service
50
+ * validation rejects an override that would let pacing outlive the lease
51
+ * (the env override is bounded to the largest default-safe interval,
52
+ * ~10 s). Admission is BOUNDED to one interval per request start: a call
53
+ * whose slot lies more than one interval out is refused before any SDK
54
+ * call with the stable delivery-uncertain
55
+ * `google_sheets_api_request_start_refused` error (the durable worker
56
+ * requeues), so an arbitrarily long queue of concurrent lock-free polling
57
+ * reads can never make a write wait past its lease.
39
58
  */
40
- REQUEST_START_INTERVAL_MS: 1_100,
59
+ REQUEST_START_INTERVAL_MS: 2_500,
41
60
  /**
42
61
  * The provider stops adding effects to one batchUpdate once the serialized
43
62
  * body would exceed this budget and returns `hasMore` for the suffix. The
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,8CAA8C;CACtC,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gFAAgF;IAChF,kBAAkB,EAAE,MAAM;IAC1B,sBAAsB,EAAE,KAAK;IAC7B,sBAAsB,EAAE,OAAO;IAC/B;;;;;OAKG;IACH,eAAe,EAAE,MAAM;IACvB,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM;IAC3B;;;;;OAKG;IACH,yBAAyB,EAAE,KAAK;IAChC;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IACxC,+EAA+E;IAC/E,uBAAuB,EAAE,EAAE;IAC3B,2EAA2E;IAC3E,2BAA2B,EAAE,KAAK;CAC1B,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,yCAAyC,CAAC;AAE5C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,UAAU;IACV,aAAa;IACb,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,WAAW;CACH,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,cAAc,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,kCAAkC,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG;IACzD,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,oCAAoC;CACrC,CAAC;AAEX,qEAAqE;AACrE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,uCAAuC,EAAE,yCAAyC;IAClF,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,yBAAyB,EAAE,2BAA2B;IACtD,qBAAqB,EAAE,uBAAuB;IAC9C,sCAAsC,EAAE,wCAAwC;IAChF,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,0BAA0B;CAC5C,CAAC;AAKX,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,GAAG,UAAU,oBAAoB,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,8CAA8C;CACtC,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gFAAgF;IAChF,kBAAkB,EAAE,MAAM;IAC1B,sBAAsB,EAAE,KAAK;IAC7B,sBAAsB,EAAE,OAAO;IAC/B;;;;;OAKG;IACH,eAAe,EAAE,MAAM;IACvB,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,yBAAyB,EAAE,KAAK;IAChC;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IACxC,+EAA+E;IAC/E,uBAAuB,EAAE,EAAE;IAC3B,2EAA2E;IAC3E,2BAA2B,EAAE,KAAK;CAC1B,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,yCAAyC,CAAC;AAE5C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,UAAU;IACV,aAAa;IACb,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,WAAW;CACH,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,mBAAmB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,cAAc,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,kCAAkC,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG;IACzD,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,oCAAoC;CACrC,CAAC;AAEX,qEAAqE;AACrE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,uCAAuC,EAAE,yCAAyC;IAClF,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,yBAAyB,EAAE,2BAA2B;IACtD,qBAAqB,EAAE,uBAAuB;IAC9C,sCAAsC,EAAE,wCAAwC;IAChF,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,0BAA0B;CAC5C,CAAC;AAKX,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,GAAG,UAAU,oBAAoB,CAAC;AAC3C,CAAC"}
@@ -19,7 +19,13 @@ export declare const GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES: {
19
19
  readonly HTTP_ERROR: "google_sheets_api_http_error";
20
20
  /** A 2xx response whose structure cannot prove what was applied. */
21
21
  readonly INVALID_RESPONSE: "google_sheets_api_invalid_response";
22
- /** The request-start limiter refused admission before any SDK call; no remote request was sent. */
22
+ /**
23
+ * The shared request-start limiter refused the admission BEFORE any SDK
24
+ * call: the predicted wait exceeded the bounded queue horizon. No remote
25
+ * request was sent, and the limiter horizon was not advanced, so the
26
+ * durable worker requeues through the CAS/recovery path and a later pass
27
+ * can be admitted again.
28
+ */
23
29
  readonly REQUEST_START_REFUSED: "google_sheets_api_request_start_refused";
24
30
  };
25
31
  export type GoogleSheetsApiTransportErrorCode = (typeof GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES)[keyof typeof GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES];
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAMlE,wEAAwE;AACxE,eAAO,MAAM,uCAAuC;IAClD,6EAA6E;;IAE7E,0DAA0D;;IAE1D,8CAA8C;;IAE9C,oEAAoE;;IAEpE,mGAAmG;;CAE3F,CAAC;AAEX,MAAM,MAAM,iCAAiC,GAC3C,CAAC,OAAO,uCAAuC,CAAC,CAAC,MAAM,OAAO,uCAAuC,CAAC,CAAC;AAEzG;;;;;;GAMG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB,CACnE,2BAA2B,EAC3B,iCAAiC,CAClC;IACC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAGpC,IAAI,EAAE,iCAAiC,EACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,UAAU,GAAE,QAAQ,CAAC,MAAM,CAAmC;CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAK3D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAWlE,wEAAwE;AACxE,eAAO,MAAM,uCAAuC;IAClD,6EAA6E;;IAE7E,0DAA0D;;IAE1D,8CAA8C;;IAE9C,oEAAoE;;IAEpE;;;;;;OAMG;;CAEK,CAAC;AAEX,MAAM,MAAM,iCAAiC,GAC3C,CAAC,OAAO,uCAAuC,CAAC,CAAC,MAAM,OAAO,uCAAuC,CAAC,CAAC;AAEzG;;;;;;GAMG;AACH,qBAAa,6BAA8B,SAAQ,kBAAkB,CACnE,2BAA2B,EAC3B,iCAAiC,CAClC;IACC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAGpC,IAAI,EAAE,iCAAiC,EACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,UAAU,GAAE,QAAQ,CAAC,MAAM,CAAmC;CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAe3D"}
@@ -10,6 +10,8 @@
10
10
  import { CoreErrorException } from "../../../../domain/errors/index.js";
11
11
  import { PRESENCE_KINDS } from "../../../../shared/state/index.js";
12
12
  import { SYNC_SHEETS_ERROR_CODES, SyncSheetsContractError, } from "../../../../application/sync/sheetsContract/errors.js";
13
+ import { logHikouteiInternalEvent } from "../../../../shared/observability/internalLog.js";
14
+ import { HIKOUTEI_LOG_COMPONENTS, HIKOUTEI_LOG_EVENTS, } from "../../../../shared/observability/logEvents.js";
13
15
  /** Stable transport error categories emitted by the direct provider. */
14
16
  export const GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES = {
15
17
  /** The request exceeded its timeout; the remote may still have committed. */
@@ -20,7 +22,13 @@ export const GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES = {
20
22
  HTTP_ERROR: "google_sheets_api_http_error",
21
23
  /** A 2xx response whose structure cannot prove what was applied. */
22
24
  INVALID_RESPONSE: "google_sheets_api_invalid_response",
23
- /** The request-start limiter refused admission before any SDK call; no remote request was sent. */
25
+ /**
26
+ * The shared request-start limiter refused the admission BEFORE any SDK
27
+ * call: the predicted wait exceeded the bounded queue horizon. No remote
28
+ * request was sent, and the limiter horizon was not advanced, so the
29
+ * durable worker requeues through the CAS/recovery path and a later pass
30
+ * can be admitted again.
31
+ */
24
32
  REQUEST_START_REFUSED: "google_sheets_api_request_start_refused",
25
33
  };
26
34
  /**
@@ -58,6 +66,16 @@ export function invalidProviderRequest(label, message) {
58
66
  * unverified evidence.
59
67
  */
60
68
  export function invalidProviderState(message) {
69
+ // Boundary record for malformed 2xx payloads: only the stable code is
70
+ // logged, never the message (it can echo remote payload fragments).
71
+ logHikouteiInternalEvent({
72
+ event: HIKOUTEI_LOG_EVENTS.TRANSPORT_RESPONSE_INVALID,
73
+ level: "warn",
74
+ component: HIKOUTEI_LOG_COMPONENTS.TRANSPORT,
75
+ code: SYNC_SHEETS_ERROR_CODES.INVALID_PROVIDER_RESPONSE,
76
+ errorClass: "SyncSheetsContractError",
77
+ retryable: true,
78
+ });
61
79
  throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVIDER_RESPONSE, `Google Sheets API provider: ${message}`);
62
80
  }
63
81
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,uDAAuD,CAAC;AAE/D,wEAAwE;AACxE,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACrD,6EAA6E;IAC7E,OAAO,EAAE,2BAA2B;IACpC,0DAA0D;IAC1D,aAAa,EAAE,iCAAiC;IAChD,8CAA8C;IAC9C,UAAU,EAAE,8BAA8B;IAC1C,oEAAoE;IACpE,gBAAgB,EAAE,oCAAoC;IACtD,mGAAmG;IACnG,qBAAqB,EAAE,yCAAyC;CACxD,CAAC;AAKX;;;;;;GAMG;AACH,MAAM,OAAO,6BAA8B,SAAQ,kBAGlD;IACU,MAAM,CAAmB;IACzB,UAAU,CAAmB;IAEtC,YACE,IAAuC,EACvC,OAAe,EACf,MAAwB,EACxB,aAA+B,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE;QAE9D,KAAK,CAAC,2BAA2B,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,OAAe;IACnE,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,CAAC,sBAAsB,EAC9C,GAAG,KAAK,wBAAwB,OAAO,EAAE,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,CAAC,yBAAyB,EACjD,+BAA+B,OAAO,EAAE,CACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+CAA+C,CAAC;AAEvD,wEAAwE;AACxE,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACrD,6EAA6E;IAC7E,OAAO,EAAE,2BAA2B;IACpC,0DAA0D;IAC1D,aAAa,EAAE,iCAAiC;IAChD,8CAA8C;IAC9C,UAAU,EAAE,8BAA8B;IAC1C,oEAAoE;IACpE,gBAAgB,EAAE,oCAAoC;IACtD;;;;;;OAMG;IACH,qBAAqB,EAAE,yCAAyC;CACxD,CAAC;AAKX;;;;;;GAMG;AACH,MAAM,OAAO,6BAA8B,SAAQ,kBAGlD;IACU,MAAM,CAAmB;IACzB,UAAU,CAAmB;IAEtC,YACE,IAAuC,EACvC,OAAe,EACf,MAAwB,EACxB,aAA+B,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE;QAE9D,KAAK,CAAC,2BAA2B,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,OAAe;IACnE,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,CAAC,sBAAsB,EAC9C,GAAG,KAAK,wBAAwB,OAAO,EAAE,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,sEAAsE;IACtE,oEAAoE;IACpE,wBAAwB,CAAC;QACvB,KAAK,EAAE,mBAAmB,CAAC,0BAA0B;QACrD,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,uBAAuB,CAAC,SAAS;QAC5C,IAAI,EAAE,uBAAuB,CAAC,yBAAyB;QACvD,UAAU,EAAE,yBAAyB;QACrC,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,CAAC,yBAAyB,EACjD,+BAA+B,OAAO,EAAE,CACzC,CAAC;AACJ,CAAC"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export { GoogleSheetsApiSyncProvider } from "./GoogleSheetsApiSyncProvider.js";
9
9
  export type { GoogleSheetsApiSyncProviderOptions, GoogleSheetsApiProviderOptions, GoogleSheetsApiRequestEvent, } from "./GoogleSheetsApiSyncProvider.js";
10
- export { GoogleSheetsApiHttpTransport, classifyGoogleSheetsApiError, } from "./transport/googleSheetsApiTransport.js";
10
+ export { GoogleSheetsApiHttpTransport, classifyGoogleSheetsApiError, isRetryableTransportStatus, } from "./transport/googleSheetsApiTransport.js";
11
11
  export type { GoogleSheetsApiTransport, GoogleSheetsApiGetSpreadsheetRequest, GoogleSheetsApiBatchUpdateRequest, GoogleSheetsApiWriteRequest, GoogleSheetsApiCell, GoogleSheetsApiCellRow, GoogleSheetsApiHttpTransportOptions, } from "./transport/googleSheetsApiTransport.js";
12
12
  export { RequestStartLimiter } from "./transport/rateLimiter.js";
13
13
  export { GOOGLE_SHEETS_API_DEFAULTS, GOOGLE_SHEETS_API_SCOPES, } from "./constants.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,YAAY,EACV,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,oCAAoC,EACpC,iCAAiC,EACjC,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,mCAAmC,GACpC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,YAAY,EACV,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,oCAAoC,EACpC,iCAAiC,EACjC,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,mCAAmC,GACpC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * application API.
7
7
  */
8
8
  export { GoogleSheetsApiSyncProvider } from "./GoogleSheetsApiSyncProvider.js";
9
- export { GoogleSheetsApiHttpTransport, classifyGoogleSheetsApiError, } from "./transport/googleSheetsApiTransport.js";
9
+ export { GoogleSheetsApiHttpTransport, classifyGoogleSheetsApiError, isRetryableTransportStatus, } from "./transport/googleSheetsApiTransport.js";
10
10
  export { RequestStartLimiter } from "./transport/rateLimiter.js";
11
11
  export { GOOGLE_SHEETS_API_DEFAULTS, GOOGLE_SHEETS_API_SCOPES, } from "./constants.js";
12
12
  export { GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES, GoogleSheetsApiTransportError, } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAM/E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,yCAAyC,CAAC;AAUjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/adapter/sheets/providers/google-sheets-api/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAM/E,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AAUjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,aAAa,CAAC"}
@@ -4,9 +4,10 @@
4
4
  *
5
5
  * The provider class hands one immutable `GoogleSheetsApiProviderDeps` object
6
6
  * to every operation function so the class stays a thin facade. Pacing
7
- * (read/write request-start limiters), redacted telemetry, route validation
8
- * against the registered definition, and batchUpdate reply validation live
9
- * here because every operation shares them.
7
+ * (ONE request-start limiter shared by reads and writes), redacted
8
+ * telemetry, route validation against the registered definition, and
9
+ * batchUpdate reply validation live here because every operation shares
10
+ * them.
10
11
  */
11
12
  import type { RegisteredSyncProjectionDefinition } from "../../../../../application/sync/sheetsContract/sheetsProvisioning.js";
12
13
  import { type Presence } from "../../../../../shared/state/index.js";
@@ -34,7 +35,14 @@ export interface GoogleSheetsApiProviderDeps {
34
35
  export declare function runRead<T>(deps: GoogleSheetsApiProviderDeps, task: () => Promise<T>): Promise<T>;
35
36
  /** Paces ONE `batchUpdate` transport call and emits one write event. */
36
37
  export declare function runWrite<T>(deps: GoogleSheetsApiProviderDeps, task: () => Promise<T>): Promise<T>;
37
- /** Emits one redacted telemetry event; diagnostics must never throw. */
38
+ /**
39
+ * Emits one redacted telemetry event; diagnostics must never throw.
40
+ *
41
+ * The code is re-sanitized at the sink as defense in depth: every value
42
+ * reaching `onRequest` is either an allowlisted stable code or the fixed
43
+ * `unknown` category, so a future caller can never forward an arbitrary
44
+ * remote string.
45
+ */
38
46
  export declare function emitRequest(deps: GoogleSheetsApiProviderDeps, operation: "getSpreadsheet" | "batchUpdate", operationCount: number, startedAt: number, ok: boolean, httpStatus: Presence<number>, code: Presence<string>): void;
39
47
  /** Resolves the registered projection definition for one physical sheet. */
40
48
  export declare function definitionForPhysicalSheet(deps: GoogleSheetsApiProviderDeps, physicalSheetId: string): RegisteredSyncProjectionDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,sEAAsE,CAAC;AAM/H,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAQlE,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,kCAAkC,EAAE,CAAC;IACpE,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAChF;AA6BD,0EAA0E;AAC1E,wBAAsB,OAAO,CAAC,CAAC,EAC7B,IAAI,EAAE,2BAA2B,EACjC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wEAAwE;AACxE,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,2BAA2B,EACjC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CACzB,IAAI,EAAE,2BAA2B,EACjC,SAAS,EAAE,gBAAgB,GAAG,aAAa,EAC3C,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GACrB,IAAI,CAcN;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,2BAA2B,EACjC,eAAe,EAAE,MAAM,GACtB,kCAAkC,CAWpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,EACD,UAAU,EAAE,kCAAkC,GAC7C,IAAI,CAaN;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,kCAAkC,GAC7C;IACD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAYA;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAkCvF"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,sEAAsE,CAAC;AAM/H,OAAO,EAA6C,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAQhH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAQlE,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,kCAAkC,EAAE,CAAC;IACpE,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAChF;AA0CD,0EAA0E;AAC1E,wBAAsB,OAAO,CAAC,CAAC,EAC7B,IAAI,EAAE,2BAA2B,EACjC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wEAAwE;AACxE,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,2BAA2B,EACjC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,2BAA2B,EACjC,SAAS,EAAE,gBAAgB,GAAG,aAAa,EAC3C,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GACrB,IAAI,CAgBN;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,2BAA2B,EACjC,eAAe,EAAE,MAAM,GACtB,kCAAkC,CAWpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,EACD,UAAU,EAAE,kCAAkC,GAC7C,IAAI,CAaN;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,kCAAkC,GAC7C;IACD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAYA;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAkCvF"}
@@ -4,13 +4,16 @@
4
4
  *
5
5
  * The provider class hands one immutable `GoogleSheetsApiProviderDeps` object
6
6
  * to every operation function so the class stays a thin facade. Pacing
7
- * (read/write request-start limiters), redacted telemetry, route validation
8
- * against the registered definition, and batchUpdate reply validation live
9
- * here because every operation shares them.
7
+ * (ONE request-start limiter shared by reads and writes), redacted
8
+ * telemetry, route validation against the registered definition, and
9
+ * batchUpdate reply validation live here because every operation shares
10
+ * them.
10
11
  */
11
12
  import { SYNC_SHEETS_ERROR_CODES, SyncSheetsContractError, } from "../../../../../application/sync/sheetsContract/errors.js";
12
- import { classifyTransportOutcome } from "../../../../../application/sync/sheetsContract/transportOutcome.js";
13
- import { presentValue, absentValue } from "../../../../../shared/state/index.js";
13
+ import { classifyTransportOutcome, sanitizeTransportRemoteCode } from "../../../../../application/sync/sheetsContract/transportOutcome.js";
14
+ import { presentValue, absentValue, PRESENCE_KINDS } from "../../../../../shared/state/index.js";
15
+ import { logHikouteiInternalEvent, } from "../../../../../shared/observability/internalLog.js";
16
+ import { HIKOUTEI_LOG_COMPONENTS, HIKOUTEI_LOG_EVENTS, } from "../../../../../shared/observability/logEvents.js";
14
17
  import { GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES, GoogleSheetsApiTransportError, invalidProviderState, } from "../errors.js";
15
18
  import { batchUpdateResponseShapeSchema } from "../model/rawResponseSchemas.js";
16
19
  /**
@@ -20,20 +23,32 @@ import { batchUpdateResponseShapeSchema } from "../model/rawResponseSchemas.js";
20
23
  */
21
24
  const REQUEST_START_REFUSED_MESSAGE = "Google Sheets API request start refused before transport: the shared pacing queue exceeds the bounded admission wait.";
22
25
  /**
23
- * Acquires one bounded request-start slot, refusing when the predicted wait
24
- * exceeds the configured bound by throwing the stable delivery-uncertain
25
- * transport error before any SDK call. A refusal NEVER advances the limiter
26
- * horizon, so the durable worker requeues instead of firing an unpaced burst.
26
+ * Acquires one bounded request-start slot, refusing (and logging one
27
+ * redacted event) when the predicted wait exceeds the configured bound.
28
+ * A refusal NEVER advances the limiter horizon and throws the stable
29
+ * delivery-uncertain transport error before any SDK call, so the durable
30
+ * worker requeues instead of firing an unpaced burst.
27
31
  */
28
- async function admitRequestStart(deps) {
32
+ async function admitRequestStart(deps, operation) {
29
33
  const admission = await deps.requestLimiter.waitForSlot(deps.maxRequestStartWaitMs);
30
34
  if (admission.status !== "refused")
31
35
  return;
36
+ // Boundary record for a locally refused start: only the stable code is
37
+ // logged (retryable, like the other delivery-uncertain buckets), never a
38
+ // message, payload, id, or URL.
39
+ logHikouteiInternalEvent({
40
+ event: HIKOUTEI_LOG_EVENTS.TRANSPORT_REQUEST_FAILED,
41
+ level: "warn",
42
+ component: HIKOUTEI_LOG_COMPONENTS.TRANSPORT,
43
+ code: GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.REQUEST_START_REFUSED,
44
+ errorClass: "GoogleSheetsApiTransportError",
45
+ retryable: true,
46
+ });
32
47
  throw new GoogleSheetsApiTransportError(GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.REQUEST_START_REFUSED, REQUEST_START_REFUSED_MESSAGE, absentValue(), absentValue());
33
48
  }
34
49
  /** Paces ONE `getSpreadsheet` transport call and emits one read event. */
35
50
  export async function runRead(deps, task) {
36
- await admitRequestStart(deps);
51
+ await admitRequestStart(deps, "getSpreadsheet");
37
52
  const startedAt = deps.now();
38
53
  try {
39
54
  const result = await task();
@@ -48,7 +63,7 @@ export async function runRead(deps, task) {
48
63
  }
49
64
  /** Paces ONE `batchUpdate` transport call and emits one write event. */
50
65
  export async function runWrite(deps, task) {
51
- await admitRequestStart(deps);
66
+ await admitRequestStart(deps, "batchUpdate");
52
67
  const startedAt = deps.now();
53
68
  try {
54
69
  const result = await task();
@@ -61,7 +76,14 @@ export async function runWrite(deps, task) {
61
76
  throw error;
62
77
  }
63
78
  }
64
- /** Emits one redacted telemetry event; diagnostics must never throw. */
79
+ /**
80
+ * Emits one redacted telemetry event; diagnostics must never throw.
81
+ *
82
+ * The code is re-sanitized at the sink as defense in depth: every value
83
+ * reaching `onRequest` is either an allowlisted stable code or the fixed
84
+ * `unknown` category, so a future caller can never forward an arbitrary
85
+ * remote string.
86
+ */
65
87
  export function emitRequest(deps, operation, operationCount, startedAt, ok, httpStatus, code) {
66
88
  try {
67
89
  deps.onRequest?.({
@@ -71,7 +93,9 @@ export function emitRequest(deps, operation, operationCount, startedAt, ok, http
71
93
  durationMs: Math.max(0, deps.now() - startedAt),
72
94
  ok,
73
95
  httpStatus,
74
- code,
96
+ code: code.kind === PRESENCE_KINDS.PRESENT
97
+ ? presentValue(sanitizeTransportRemoteCode(code.value))
98
+ : code,
75
99
  });
76
100
  }
77
101
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/operations/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,oEAAoE,CAAC;AAC3I,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,sCAAsC,CAAC;AAChH,OAAO,EACL,wBAAwB,GACzB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kDAAkD,CAAC;AAI1D,OAAO,EACL,uCAAuC,EACvC,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAoBhF;;;;GAIG;AACH,MAAM,6BAA6B,GACjC,uHAAuH,CAAC;AAE1H;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAiC,EACjC,SAA2C;IAE3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpF,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IAC3C,uEAAuE;IACvE,yEAAyE;IACzE,gCAAgC;IAChC,wBAAwB,CAAC;QACvB,KAAK,EAAE,mBAAmB,CAAC,wBAAwB;QACnD,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,uBAAuB,CAAC,SAAS;QAC5C,IAAI,EAAE,uCAAuC,CAAC,qBAAqB;QACnE,UAAU,EAAE,+BAA+B;QAC3C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,MAAM,IAAI,6BAA6B,CACrC,uCAAuC,CAAC,qBAAqB,EAC7D,6BAA6B,EAC7B,WAAW,EAAE,EACb,WAAW,EAAE,CACd,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAiC,EACjC,IAAsB;IAEtB,MAAM,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChD,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAiC,EACjC,IAAsB;IAEtB,MAAM,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACnF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChD,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,IAAiC,EACjC,SAA2C,EAC3C,cAAsB,EACtB,SAAiB,EACjB,EAAW,EACX,UAA4B,EAC5B,IAAsB;IAEtB,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS;YACT,cAAc;YACd,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC/C,EAAE;YACF,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;gBACxC,CAAC,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvD,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B,CACxC,IAAiC,EACjC,eAAuB;IAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACtC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,KAAK,eAAe,CACnE,CAAC;IACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,CAAC,gCAAgC,EACxD,sCAAsC,GAAG,eAAe,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,OAKC,EACD,UAA8C;IAE9C,IACE,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO;QAC9C,OAAO,CAAC,eAAe,KAAK,UAAU,CAAC,KAAK,CAAC,eAAe;QAC5D,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC,UAAU;QAClD,OAAO,CAAC,aAAa,KAAK,UAAU,CAAC,KAAK,CAAC,aAAa,EACxD,CAAC;QACD,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,CAAC,sBAAsB,EAC9C,iEAAiE;YACjE,UAAU,CAAC,KAAK,CAAC,eAAe,CACjC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAChC,UAA8C;IAK9C,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,KAAK,cAAc;QAClE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB;QACnC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,KAAK,gBAAgB;YAChD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL,aAAa,EAAE,aAAa,KAAK,SAAS;YACxC,CAAC,CAAC,WAAW,EAAE;YACf,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC;QAC/B,eAAe,EAAE,UAAU,CAAC,eAAe,IAAI,EAAE;KAClD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAc,EAAE,YAAoB;IAC/E,MAAM,MAAM,GAAG,8BAA8B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;QACjE,CAAC;QACD,oBAAoB,CAClB,0CAA0C,YAAY,WAAW,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC3C,oBAAoB,CAClB,0CAA0C,YAAY,WAAW,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,oBAAoB,CAAC,qBAAqB,KAAK,qBAAqB,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,WAAW,GAAG,KAAgC,CAAC;QACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,oBAAoB,CAAC,qBAAqB,KAAK,uBAAuB,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,UAAU,GAAI,QAAoC,CAAC,UAAU,CAAC;QACpE,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACvF,oBAAoB,CAAC,qBAAqB,KAAK,kCAAkC,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,OAAQ,UAAsC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxE,oBAAoB,CAAC,qBAAqB,KAAK,0CAA0C,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -143,6 +143,19 @@ export declare class GoogleSheetsApiHttpTransport implements GoogleSheetsApiTran
143
143
  * never as a proven pre-mutation rejection.
144
144
  */
145
145
  export declare function classifyGoogleSheetsApiError(error: unknown): GoogleSheetsApiTransportError;
146
+ /**
147
+ * True when the status kind marks a transient remote condition.
148
+ *
149
+ * Mirrors the shared `isGoogleSheetsApiDeliveryUncertain` boundary: an
150
+ * absent status (timeout/network), HTTP 408 (request timeout — the proxy or
151
+ * API may still have committed the write), HTTP 429, and every 5xx are
152
+ * retryable/uncertain; the proven pre-mutation 4xx rejections (400, 401,
153
+ * 403, 404) are not. This only buckets telemetry — gaxios auto-retry stays
154
+ * disabled (`retry: false`), so a mutating call is never blindly retried
155
+ * here; the durable worker owns retries through the shared outcome
156
+ * classifier.
157
+ */
158
+ export declare function isRetryableTransportStatus(status: number | undefined): boolean;
146
159
  /**
147
160
  * Builds the SDK batchUpdate body from provider write requests. The SDK
148
161
  * request union is wider than the provider's narrow shapes; this boundary
@@ -1 +1 @@
1
- {"version":3,"file":"googleSheetsApiTransport.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"googleSheetsApiTransport.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"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"}