hikoutei 0.4.2 → 0.4.3

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 (140) hide show
  1. package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts +64 -0
  2. package/dist/application/sync/outbound/SheetsEffectDispatcher.d.ts.map +1 -0
  3. package/dist/application/sync/outbound/SheetsEffectDispatcher.js +440 -0
  4. package/dist/application/sync/outbound/SheetsEffectDispatcher.js.map +1 -0
  5. package/dist/application/sync/service/SyncServiceBootstrap.d.ts +3 -4
  6. package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
  7. package/dist/application/sync/service/SyncServiceBootstrap.js +7 -4
  8. package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
  9. package/dist/application/sync/telemetry/syncTiming.d.ts +20 -33
  10. package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -1
  11. package/dist/application/sync/telemetry/syncTiming.js +14 -12
  12. package/dist/application/sync/telemetry/syncTiming.js.map +1 -1
  13. package/dist/infrastructure/storage/errors.d.ts +10 -5
  14. package/dist/infrastructure/storage/errors.d.ts.map +1 -1
  15. package/dist/infrastructure/storage/errors.js +10 -7
  16. package/dist/infrastructure/storage/errors.js.map +1 -1
  17. package/dist/infrastructure/storage/index.d.ts +6 -4
  18. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  19. package/dist/infrastructure/storage/index.js +3 -2
  20. package/dist/infrastructure/storage/index.js.map +1 -1
  21. package/dist/infrastructure/storage/sqlite/schema.d.ts +12 -11
  22. package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -1
  23. package/dist/infrastructure/storage/sqlite/schema.js +17 -109
  24. package/dist/infrastructure/storage/sqlite/schema.js.map +1 -1
  25. package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts +2 -2
  26. package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts.map +1 -1
  27. package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +2 -2
  28. package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -1
  29. package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.d.ts +1 -2
  30. package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.d.ts.map +1 -1
  31. package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.js +1 -2
  32. package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.js.map +1 -1
  33. package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts +1 -1
  34. package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts.map +1 -1
  35. package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts +1 -1
  36. package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts.map +1 -1
  37. package/dist/infrastructure/storage/state/observation/observationQuarantine.js +1 -1
  38. package/dist/infrastructure/storage/state/observation/observationQuarantine.js.map +1 -1
  39. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +1 -1
  40. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -1
  41. package/dist/infrastructure/storage/state/observation/observationValidation.d.ts +1 -1
  42. package/dist/infrastructure/storage/state/observation/observationValidation.d.ts.map +1 -1
  43. package/dist/infrastructure/storage/state/observation/observationWriter.d.ts +1 -1
  44. package/dist/infrastructure/storage/state/observation/observationWriter.d.ts.map +1 -1
  45. package/dist/infrastructure/storage/state/observation/observationWriter.js +1 -2
  46. package/dist/infrastructure/storage/state/observation/observationWriter.js.map +1 -1
  47. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts +1 -2
  48. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -1
  49. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +1 -2
  50. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -1
  51. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts +1 -1
  52. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts.map +1 -1
  53. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts +1 -1
  54. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts.map +1 -1
  55. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js +1 -1
  56. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js.map +1 -1
  57. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +1 -1
  58. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -1
  59. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +2 -2
  60. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -1
  61. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.d.ts +1 -1
  62. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.d.ts.map +1 -1
  63. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.js +1 -1
  64. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.js.map +1 -1
  65. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +1 -1
  66. package/dist/infrastructure/storage/sync/shared/syncRegistry.js +1 -1
  67. package/package.json +13 -7
  68. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts +0 -66
  69. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts.map +0 -1
  70. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js +0 -123
  71. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js.map +0 -1
  72. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +0 -111
  73. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +0 -1
  74. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +0 -369
  75. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +0 -1
  76. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +0 -127
  77. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +0 -1
  78. package/dist/application/sync/outbound/effects/SyncEffectWorker.js +0 -552
  79. package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +0 -1
  80. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +0 -85
  81. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +0 -1
  82. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +0 -74
  83. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +0 -1
  84. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +0 -31
  85. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +0 -1
  86. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +0 -222
  87. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +0 -1
  88. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts +0 -14
  89. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts.map +0 -1
  90. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +0 -25
  91. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +0 -1
  92. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +0 -61
  93. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +0 -1
  94. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +0 -296
  95. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +0 -1
  96. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts +0 -17
  97. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts.map +0 -1
  98. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js +0 -80
  99. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js.map +0 -1
  100. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +0 -13
  101. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +0 -1
  102. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +0 -248
  103. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +0 -1
  104. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +0 -141
  105. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +0 -1
  106. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +0 -318
  107. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +0 -1
  108. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +0 -143
  109. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +0 -1
  110. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +0 -16
  111. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +0 -1
  112. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +0 -33
  113. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +0 -1
  114. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +0 -259
  115. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +0 -1
  116. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts +0 -27
  117. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts.map +0 -1
  118. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js +0 -316
  119. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js.map +0 -1
  120. package/dist/infrastructure/storage/sync/shared/writerLease.d.ts +0 -76
  121. package/dist/infrastructure/storage/sync/shared/writerLease.d.ts.map +0 -1
  122. package/dist/infrastructure/storage/sync/shared/writerLease.js +0 -189
  123. package/dist/infrastructure/storage/sync/shared/writerLease.js.map +0 -1
  124. package/docs/advanced-sheets-gateway-concurrency-problem.md +0 -434
  125. package/docs/architecture.md +0 -224
  126. package/docs/ci.md +0 -293
  127. package/docs/code-guidelines.md +0 -248
  128. package/docs/development.md +0 -74
  129. package/docs/gateway-removal-inventory.md +0 -147
  130. package/docs/git-workflow.md +0 -224
  131. package/docs/google-sheets-sync-scaling-strategy.md +0 -459
  132. package/docs/mikro-orm-adapter-spike.md +0 -89
  133. package/docs/quick-start.md +0 -137
  134. package/docs/sql-layer-plan.md +0 -59
  135. package/docs/sync-bulk-write-benchmark.md +0 -2117
  136. package/docs/sync-observability.md +0 -100
  137. package/docs/task-queue-write-model.md +0 -640
  138. package/docs/typed-sheets-mvp-scope-2026-06-29.md +0 -490
  139. package/docs/typed-sheets-plan.md +0 -417
  140. package/docs/write-and-synchronization-flow.md +0 -179
@@ -1,296 +0,0 @@
1
- /** Effect conversion, request grouping, and routing predicates. */
2
- import { NON_NEGATIVE_SAFE_INTEGER_MINIMUM, POSITIVE_SAFE_INTEGER_MINIMUM, } from "../../../../domain/index.js";
3
- import { fromSqlNullable } from "../../../../infrastructure/storage/sqlite/sqlState.js";
4
- import { LOOKUP_RESULT_KINDS } from "../../../../shared/state/constants.js";
5
- import { parseSyncProjectionEffectPayload } from "../../sheets/syncSheets.js";
6
- import { SYNC_POSTCONDITION_MODES, SYNC_POSTCONDITION_STATUSES, SYNC_PROJECTIONS, } from "../../sheets/constants.js";
7
- import { EFFECT_TARGET_KINDS, EFFECT_BATCH_LIMIT, OUTBOX_EFFECT_STATUSES, SYNC_EFFECT_KINDS, } from "./SyncEffectWorkerConstants.js";
8
- import { isPresent, lookupResult, throwWorkerError, } from "./SyncEffectWorkerHelpers.js";
9
- /** Accepts either inline read-back or a flushed-write acknowledgement. */
10
- export function isSuccessfulPostcondition(status) {
11
- return status === SYNC_POSTCONDITION_STATUSES.VERIFIED ||
12
- status === SYNC_POSTCONDITION_STATUSES.ACKNOWLEDGED;
13
- }
14
- export function toProviderEffect(effect) {
15
- if (!isSyncEffectKind(effect.effect_kind)) {
16
- throwWorkerError("unsupported sync effect kind: " + effect.effect_kind);
17
- }
18
- if (!isSyncProjection(effect.projection)) {
19
- throwWorkerError("unsupported sync projection: " + effect.projection);
20
- }
21
- if (!isEffectTargetKind(effect.target_kind)) {
22
- throwWorkerError("unsupported sync effect target kind: " + effect.target_kind);
23
- }
24
- return {
25
- effectId: effect.effect_id,
26
- payloadHash: effect.payload_hash,
27
- effectKind: effect.effect_kind,
28
- physicalSheetId: effect.physical_sheet_id,
29
- projection: effect.projection,
30
- targetKind: effect.target_kind,
31
- targetId: effect.target_id,
32
- rowBindingId: fromSqlNullable(effect.row_binding_id),
33
- conflictId: fromSqlNullable(effect.conflict_id),
34
- expectedVisibleRevision: effect.expected_visible_revision,
35
- expectedVisibleHash: effect.expected_visible_hash,
36
- repairGuardHash: fromSqlNullable(effect.repair_guard_hash),
37
- payload: parseSyncProjectionEffectPayload(effect.payload_json),
38
- };
39
- }
40
- export function groupByProviderRequest(items) {
41
- const groups = new Map();
42
- for (const item of items) {
43
- const effect = item.providerEffect;
44
- if (!isPresent(effect))
45
- continue;
46
- const key = routeKey(effect.value);
47
- const existing = lookupResult(groups.get(key));
48
- if (existing.kind === LOOKUP_RESULT_KINDS.NOT_FOUND) {
49
- groups.set(key, {
50
- request: {
51
- physicalSheetId: effect.value.physicalSheetId,
52
- sheetName: effect.value.payload.sheetName,
53
- registeredRange: effect.value.payload.registeredRange,
54
- projection: effect.value.projection,
55
- schemaVersion: effect.value.payload.schemaVersion,
56
- postconditionMode: SYNC_POSTCONDITION_MODES.DEFERRED,
57
- effects: [effect.value],
58
- },
59
- items: [item],
60
- });
61
- }
62
- else {
63
- existing.value.request = {
64
- ...existing.value.request,
65
- postconditionMode: SYNC_POSTCONDITION_MODES.DEFERRED,
66
- effects: [...existing.value.request.effects, effect.value],
67
- };
68
- existing.value.items.push(item);
69
- }
70
- }
71
- return [...groups.values()];
72
- }
73
- /** Groups append-only effects into one fast provider request per route. */
74
- export function groupByFastAppendRequest(items) {
75
- const groups = new Map();
76
- for (const item of items) {
77
- const effect = item.providerEffect;
78
- if (!isPresent(effect))
79
- continue;
80
- const key = routeKey(effect.value);
81
- const row = {
82
- effectId: effect.value.effectId,
83
- payloadHash: effect.value.payloadHash,
84
- anchor: effect.value.payload.targetAnchor,
85
- fields: effect.value.payload.fields,
86
- };
87
- const existing = lookupResult(groups.get(key));
88
- if (existing.kind === LOOKUP_RESULT_KINDS.NOT_FOUND) {
89
- groups.set(key, {
90
- request: {
91
- physicalSheetId: effect.value.physicalSheetId,
92
- sheetName: effect.value.payload.sheetName,
93
- registeredRange: effect.value.payload.registeredRange,
94
- projection: effect.value.projection,
95
- schemaVersion: effect.value.payload.schemaVersion,
96
- rows: [row],
97
- },
98
- items: [item],
99
- });
100
- }
101
- else {
102
- existing.value.request = {
103
- ...existing.value.request,
104
- rows: [...existing.value.request.rows, row],
105
- };
106
- existing.value.items.push(item);
107
- }
108
- }
109
- return [...groups.values()];
110
- }
111
- /** Splits append groups using the same adaptive route limit as regular effects. */
112
- export function chunkFastAppendGroups(groups, limit) {
113
- const chunked = [];
114
- for (const group of groups) {
115
- const groupLimit = typeof limit === "function" ? limit(group) : limit;
116
- requireBatchLimit(groupLimit);
117
- if (group.items.length <= groupLimit) {
118
- chunked.push(group);
119
- continue;
120
- }
121
- for (let start = 0; start < group.items.length; start += groupLimit) {
122
- const items = group.items.slice(start, start + groupLimit);
123
- chunked.push({
124
- request: {
125
- ...group.request,
126
- rows: group.request.rows.slice(start, start + groupLimit),
127
- },
128
- items,
129
- });
130
- }
131
- }
132
- return chunked;
133
- }
134
- /** Groups postcondition reads so each group performs one remote Sheet scan. */
135
- export function groupByPostconditionRequest(items) {
136
- const groups = new Map();
137
- for (const item of items) {
138
- const effect = item.providerEffect;
139
- if (!isPresent(effect))
140
- continue;
141
- const key = routeKey(effect.value);
142
- const existing = lookupResult(groups.get(key));
143
- if (existing.kind === LOOKUP_RESULT_KINDS.NOT_FOUND) {
144
- groups.set(key, {
145
- request: {
146
- physicalSheetId: effect.value.physicalSheetId,
147
- sheetName: effect.value.payload.sheetName,
148
- registeredRange: effect.value.payload.registeredRange,
149
- projection: effect.value.projection,
150
- schemaVersion: effect.value.payload.schemaVersion,
151
- effects: [effect.value],
152
- },
153
- items: [item],
154
- });
155
- }
156
- else {
157
- existing.value.request = {
158
- ...existing.value.request,
159
- effects: [...existing.value.request.effects, effect.value],
160
- };
161
- existing.value.items.push(item);
162
- }
163
- }
164
- return [...groups.values()];
165
- }
166
- /** Builds the stable grouping key shared by all provider operations on one route. */
167
- export function routeKey(route) {
168
- const sheetName = "payload" in route ? route.payload.sheetName : route.sheetName;
169
- const registeredRange = "payload" in route ? route.payload.registeredRange : route.registeredRange;
170
- const schemaVersion = "payload" in route ? route.payload.schemaVersion : route.schemaVersion;
171
- return [route.physicalSheetId, sheetName, registeredRange, route.projection, schemaVersion].join("\u0000");
172
- }
173
- function requireBatchLimit(value) {
174
- if (!Number.isSafeInteger(value) || value < POSITIVE_SAFE_INTEGER_MINIMUM) {
175
- throwWorkerError("provider effect batch limit must be a positive safe integer");
176
- }
177
- }
178
- /**
179
- * Splits each physical-route group into sub-batches no larger than the
180
- * provider's bounded effect batch (`EFFECT_BATCH_LIMIT` in the worker
181
- * constants, matching `MAX_EFFECTS_PER_REQUEST` in the Google Sheets API
182
- * provider constants) so one `applyEffects` call returns a complete result
183
- * set instead of a `hasMore` partial prefix.
184
- *
185
- * The physical-route grouping and the per-target predecessor ordering of the
186
- * supplied items are preserved: every effect stays on its original route, and
187
- * each sub-batch keeps the order of the ready selection. Effects in one ready
188
- * selection target distinct logical targets (the outbox only marks the
189
- * earliest non-applied effect per target ready), so sub-batching never
190
- * reorders effects that depend on one another.
191
- */
192
- export function chunkProviderEffectGroups(groups, limit = EFFECT_BATCH_LIMIT) {
193
- if (groups.length === 0)
194
- return groups;
195
- const chunked = [];
196
- for (const group of groups) {
197
- const groupLimit = typeof limit === "function" ? limit(group) : limit;
198
- requireBatchLimit(groupLimit);
199
- if (group.items.length <= groupLimit) {
200
- chunked.push(group);
201
- continue;
202
- }
203
- for (let start = 0; start < group.items.length; start += groupLimit) {
204
- const batchItems = group.items.slice(start, start + groupLimit);
205
- chunked.push({ request: sliceApplyEffectsRequest(group.request, batchItems), items: batchItems });
206
- }
207
- }
208
- return chunked;
209
- }
210
- /** Builds a sub-batch request carrying only the supplied effect evidence. */
211
- function sliceApplyEffectsRequest(request, items) {
212
- const effects = [];
213
- for (const item of items) {
214
- if (!isPresent(item.providerEffect)) {
215
- throwWorkerError("provider effect batch item is missing its provider effect");
216
- }
217
- effects.push(item.providerEffect.value);
218
- }
219
- return {
220
- physicalSheetId: request.physicalSheetId,
221
- sheetName: request.sheetName,
222
- registeredRange: request.registeredRange,
223
- projection: request.projection,
224
- schemaVersion: request.schemaVersion,
225
- postconditionMode: request.postconditionMode ?? SYNC_POSTCONDITION_MODES.DEFERRED,
226
- effects,
227
- };
228
- }
229
- export function isSyncEffectKind(value) {
230
- return value === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION ||
231
- value === SYNC_EFFECT_KINDS.CANDIDATE_RECONCILE ||
232
- value === SYNC_EFFECT_KINDS.SYSTEM_REPAIR ||
233
- value === SYNC_EFFECT_KINDS.RESOLUTION_PROJECTION ||
234
- value === SYNC_EFFECT_KINDS.RESOLUTION_DELETE ||
235
- value === SYNC_EFFECT_KINDS.USER_INPUT_DELETE;
236
- }
237
- export function isCandidateProtectingUserInputEffect(effect) {
238
- return effect.effectKind === SYNC_EFFECT_KINDS.CANDIDATE_RECONCILE ||
239
- effect.effectKind === SYNC_EFFECT_KINDS.USER_INPUT_DELETE;
240
- }
241
- /** Selects only new System_State entity rows for the append-only fast path. */
242
- export function isFastAppendCandidate(item) {
243
- if (!isPresent(item.providerEffect))
244
- return false;
245
- return isFastAppendEffect(item.providerEffect.value);
246
- }
247
- /** Classifies one converted provider effect as an append-only fast candidate. */
248
- export function isFastAppendEffect(effect) {
249
- const emptyVisibleBaseline = effect.payload.createIfMissing &&
250
- effect.expectedVisibleRevision === NON_NEGATIVE_SAFE_INTEGER_MINIMUM &&
251
- effect.expectedVisibleHash === "";
252
- if (!emptyVisibleBaseline)
253
- return false;
254
- return (effect.effectKind === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION &&
255
- effect.projection === SYNC_PROJECTIONS.SYSTEM_STATE &&
256
- effect.targetKind === EFFECT_TARGET_KINDS.ENTITY) || (effect.effectKind === SYNC_EFFECT_KINDS.RESOLUTION_PROJECTION &&
257
- effect.projection === SYNC_PROJECTIONS.SYNC_CONFLICTS &&
258
- effect.targetKind === EFFECT_TARGET_KINDS.CONFLICT);
259
- }
260
- /**
261
- * Pending-level fast-append classification used to bound a bulk claim window
262
- * before conversion. Recovery-status effects are excluded because the claim
263
- * loop diverts them to recovery regardless of their append shape.
264
- */
265
- export function isFastAppendPendingEffect(pending) {
266
- if (pending.status === OUTBOX_EFFECT_STATUSES.FAILED ||
267
- pending.status === OUTBOX_EFFECT_STATUSES.DELIVERY_UNCERTAIN) {
268
- return false;
269
- }
270
- try {
271
- return isFastAppendEffect(toProviderEffect(pending));
272
- }
273
- catch {
274
- return false;
275
- }
276
- }
277
- export function isSyncProjection(value) {
278
- return value === SYNC_PROJECTIONS.USER_INPUT ||
279
- value === SYNC_PROJECTIONS.SYSTEM_STATE ||
280
- value === SYNC_PROJECTIONS.SYNC_CONFLICTS;
281
- }
282
- export function isEffectTargetKind(value) {
283
- return value === EFFECT_TARGET_KINDS.ENTITY ||
284
- value === EFFECT_TARGET_KINDS.ROW_BINDING ||
285
- value === EFFECT_TARGET_KINDS.PROJECTION_ROW ||
286
- value === EFFECT_TARGET_KINDS.CONFLICT;
287
- }
288
- export function fenceFromLease(lease, now) {
289
- return {
290
- role: lease.role,
291
- writerEpoch: lease.writerEpoch,
292
- fencingToken: lease.fencingToken,
293
- now,
294
- };
295
- }
296
- //# sourceMappingURL=SyncEffectWorkerRouting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncEffectWorkerRouting.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /** Timing classification and diagnostics emission for one effect-worker pass. */
2
- import type { PendingEffect } from "../../../../infrastructure/storage/index.js";
3
- import type { SyncProjectionEffect } from "../../sheets/syncSheets.js";
4
- import { type SyncSheetsTiming, type SyncTimingEvent, type SyncTimingOperationCounts, type SyncTimingOperationKind } from "../../telemetry/syncTiming.js";
5
- import type { ClaimedEffect, SyncEffectWorkerBaseOptions } from "./SyncEffectWorker.js";
6
- export declare function emptyOperationCounts(): SyncTimingOperationCounts;
7
- export declare function timingOperationKindForEffect(effect: SyncProjectionEffect): SyncTimingOperationKind;
8
- export declare function timingOperationKindForPending(effect: PendingEffect): SyncTimingOperationKind;
9
- export declare function countsForOperationKinds(kinds: readonly SyncTimingOperationKind[]): SyncTimingOperationCounts;
10
- export declare function countsForItems(items: readonly ClaimedEffect[]): SyncTimingOperationCounts;
11
- export declare function operationKindsForItems(items: readonly ClaimedEffect[]): readonly SyncTimingOperationKind[];
12
- export declare function countsForPendingEffects(effects: readonly PendingEffect[]): SyncTimingOperationCounts;
13
- export declare function operationKindsForPendingEffects(effects: readonly PendingEffect[]): readonly SyncTimingOperationKind[];
14
- export declare function operationKindsForCounts(counts: SyncTimingOperationCounts): readonly SyncTimingOperationKind[];
15
- export declare function emitProviderTiming(options: SyncEffectWorkerBaseOptions, timing: SyncSheetsTiming | undefined): void;
16
- export declare function emitWorkerTiming(options: SyncEffectWorkerBaseOptions, event: SyncTimingEvent): void;
17
- //# sourceMappingURL=SyncEffectWorkerTiming.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncEffectWorkerTiming.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTiming.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAGjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EACV,aAAa,EACb,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,oBAAoB,IAAI,yBAAyB,CAEhE;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,uBAAuB,CAelG;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,aAAa,GAAG,uBAAuB,CAc5F;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GACxC,yBAAyB,CAM3B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,yBAAyB,CAIzF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,uBAAuB,EAAE,CAE1G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,yBAAyB,CAEpG;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,SAAS,aAAa,EAAE,GAChC,SAAS,uBAAuB,EAAE,CAEpC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,GAChC,SAAS,uBAAuB,EAAE,CAMpC;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,2BAA2B,EACpC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,IAAI,CAWN;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,2BAA2B,EACpC,KAAK,EAAE,eAAe,GACrB,IAAI,CAMN"}
@@ -1,80 +0,0 @@
1
- /** Timing classification and diagnostics emission for one effect-worker pass. */
2
- import { NON_NEGATIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
3
- import { SYNC_TIMING_OPERATION_KINDS, SYNC_TIMING_SCOPES, } from "../../telemetry/syncTiming.js";
4
- import { SYNC_EFFECT_KINDS } from "./SyncEffectWorkerConstants.js";
5
- import { isPresent } from "./SyncEffectWorkerHelpers.js";
6
- export function emptyOperationCounts() {
7
- return { append: 0, update: 0, delete: 0 };
8
- }
9
- export function timingOperationKindForEffect(effect) {
10
- if (effect.effectKind === SYNC_EFFECT_KINDS.RESOLUTION_DELETE ||
11
- effect.effectKind === SYNC_EFFECT_KINDS.USER_INPUT_DELETE) {
12
- return SYNC_TIMING_OPERATION_KINDS.DELETE;
13
- }
14
- if (effect.payload.createIfMissing &&
15
- effect.expectedVisibleRevision === NON_NEGATIVE_SAFE_INTEGER_MINIMUM &&
16
- effect.expectedVisibleHash === "") {
17
- return SYNC_TIMING_OPERATION_KINDS.APPEND;
18
- }
19
- return SYNC_TIMING_OPERATION_KINDS.UPDATE;
20
- }
21
- export function timingOperationKindForPending(effect) {
22
- if (effect.effect_kind === SYNC_EFFECT_KINDS.RESOLUTION_DELETE ||
23
- effect.effect_kind === SYNC_EFFECT_KINDS.USER_INPUT_DELETE) {
24
- return SYNC_TIMING_OPERATION_KINDS.DELETE;
25
- }
26
- if (effect.expected_visible_revision === NON_NEGATIVE_SAFE_INTEGER_MINIMUM &&
27
- effect.expected_visible_hash === "") {
28
- return SYNC_TIMING_OPERATION_KINDS.APPEND;
29
- }
30
- return SYNC_TIMING_OPERATION_KINDS.UPDATE;
31
- }
32
- export function countsForOperationKinds(kinds) {
33
- return {
34
- append: kinds.filter((kind) => kind === SYNC_TIMING_OPERATION_KINDS.APPEND).length,
35
- update: kinds.filter((kind) => kind === SYNC_TIMING_OPERATION_KINDS.UPDATE).length,
36
- delete: kinds.filter((kind) => kind === SYNC_TIMING_OPERATION_KINDS.DELETE).length,
37
- };
38
- }
39
- export function countsForItems(items) {
40
- const kinds = items.flatMap((item) => isPresent(item.providerEffect) ? [timingOperationKindForEffect(item.providerEffect.value)] : []);
41
- return countsForOperationKinds(kinds);
42
- }
43
- export function operationKindsForItems(items) {
44
- return operationKindsForCounts(countsForItems(items));
45
- }
46
- export function countsForPendingEffects(effects) {
47
- return countsForOperationKinds(effects.map(timingOperationKindForPending));
48
- }
49
- export function operationKindsForPendingEffects(effects) {
50
- return operationKindsForCounts(countsForPendingEffects(effects));
51
- }
52
- export function operationKindsForCounts(counts) {
53
- return [
54
- ...(counts.append > 0 ? [SYNC_TIMING_OPERATION_KINDS.APPEND] : []),
55
- ...(counts.update > 0 ? [SYNC_TIMING_OPERATION_KINDS.UPDATE] : []),
56
- ...(counts.delete > 0 ? [SYNC_TIMING_OPERATION_KINDS.DELETE] : []),
57
- ];
58
- }
59
- export function emitProviderTiming(options, timing) {
60
- if (timing === undefined)
61
- return;
62
- for (const phase of timing.phases) {
63
- emitWorkerTiming(options, {
64
- scope: SYNC_TIMING_SCOPES.PROVIDER,
65
- phase: phase.phase,
66
- durationMs: phase.durationMs,
67
- operationKinds: timing.operationKinds,
68
- operationCounts: timing.operationCounts,
69
- });
70
- }
71
- }
72
- export function emitWorkerTiming(options, event) {
73
- try {
74
- options.onTiming?.(event);
75
- }
76
- catch {
77
- // Diagnostics must never change worker state transitions.
78
- }
79
- }
80
- //# sourceMappingURL=SyncEffectWorkerTiming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncEffectWorkerTiming.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTiming.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /** Durable result transitions for provider responses and response-loss recovery. */
2
- import type { FencingContext } from "../../../../infrastructure/storage/sync/shared/writerLease.js";
3
- import type { Presence } from "../../../../shared/state/types.js";
4
- import type { SyncEffectPostcondition, SyncEffectResult } from "../../sheets/syncSheets.js";
5
- import { type SyncEffectWorkerErrorCode } from "./SyncEffectWorkerConstants.js";
6
- import type { ClaimedEffect, EffectWorkerStorage, MutableReport, RepairReplanRequest, SyncEffectWorkerBaseOptions, SyncEffectWorkerFullOptions } from "./SyncEffectWorker.js";
7
- export declare function completeProviderResult(options: SyncEffectWorkerBaseOptions, storage: EffectWorkerStorage, fence: FencingContext, item: ClaimedEffect, result: SyncEffectResult, report: MutableReport): Promise<void>;
8
- export declare function recoverUnknownResults(options: SyncEffectWorkerFullOptions, storage: EffectWorkerStorage, fence: FencingContext, items: readonly ClaimedEffect[], report: MutableReport): Promise<void>;
9
- export declare function settleUnknownPostcondition(options: SyncEffectWorkerBaseOptions, storage: EffectWorkerStorage, fence: FencingContext, item: ClaimedEffect, postcondition: SyncEffectPostcondition, report: MutableReport): Promise<void>;
10
- export declare function completeApplied(storage: EffectWorkerStorage, fence: FencingContext, item: ClaimedEffect, visibleRevision: Presence<number>, visibleHash: Presence<string>, report: MutableReport): Promise<boolean>;
11
- export declare function replanOrFail(options: SyncEffectWorkerBaseOptions, storage: EffectWorkerStorage, fence: FencingContext, item: ClaimedEffect, request: RepairReplanRequest, report: MutableReport): Promise<void>;
12
- export declare function completeFailure(storage: EffectWorkerStorage, fence: FencingContext, item: ClaimedEffect, code: SyncEffectWorkerErrorCode, message: Presence<string>, report: MutableReport): Promise<void>;
13
- //# sourceMappingURL=SyncEffectWorkerTransitions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncEffectWorkerTransitions.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTransitions.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAIpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAIpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAID,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAoGf;AAsBD,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAkElB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CASf"}