gitx.do 0.1.1 → 0.1.2

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 (356) hide show
  1. package/README.md +40 -353
  2. package/dist/do/logger.d.ts +50 -0
  3. package/dist/do/logger.d.ts.map +1 -0
  4. package/dist/do/logger.js +122 -0
  5. package/dist/do/logger.js.map +1 -0
  6. package/dist/{durable-object → do}/schema.d.ts +3 -3
  7. package/dist/do/schema.d.ts.map +1 -0
  8. package/dist/{durable-object → do}/schema.js +4 -3
  9. package/dist/do/schema.js.map +1 -0
  10. package/dist/do/types.d.ts +267 -0
  11. package/dist/do/types.d.ts.map +1 -0
  12. package/dist/do/types.js +62 -0
  13. package/dist/do/types.js.map +1 -0
  14. package/dist/index.d.ts +14 -469
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +31 -483
  17. package/dist/index.js.map +1 -1
  18. package/package.json +13 -21
  19. package/dist/cli/commands/add.d.ts +0 -176
  20. package/dist/cli/commands/add.d.ts.map +0 -1
  21. package/dist/cli/commands/add.js +0 -979
  22. package/dist/cli/commands/add.js.map +0 -1
  23. package/dist/cli/commands/blame.d.ts +0 -259
  24. package/dist/cli/commands/blame.d.ts.map +0 -1
  25. package/dist/cli/commands/blame.js +0 -609
  26. package/dist/cli/commands/blame.js.map +0 -1
  27. package/dist/cli/commands/branch.d.ts +0 -249
  28. package/dist/cli/commands/branch.d.ts.map +0 -1
  29. package/dist/cli/commands/branch.js +0 -693
  30. package/dist/cli/commands/branch.js.map +0 -1
  31. package/dist/cli/commands/checkout.d.ts +0 -73
  32. package/dist/cli/commands/checkout.d.ts.map +0 -1
  33. package/dist/cli/commands/checkout.js +0 -725
  34. package/dist/cli/commands/checkout.js.map +0 -1
  35. package/dist/cli/commands/commit.d.ts +0 -182
  36. package/dist/cli/commands/commit.d.ts.map +0 -1
  37. package/dist/cli/commands/commit.js +0 -457
  38. package/dist/cli/commands/commit.js.map +0 -1
  39. package/dist/cli/commands/diff.d.ts +0 -464
  40. package/dist/cli/commands/diff.d.ts.map +0 -1
  41. package/dist/cli/commands/diff.js +0 -959
  42. package/dist/cli/commands/diff.js.map +0 -1
  43. package/dist/cli/commands/log.d.ts +0 -239
  44. package/dist/cli/commands/log.d.ts.map +0 -1
  45. package/dist/cli/commands/log.js +0 -535
  46. package/dist/cli/commands/log.js.map +0 -1
  47. package/dist/cli/commands/merge.d.ts +0 -106
  48. package/dist/cli/commands/merge.d.ts.map +0 -1
  49. package/dist/cli/commands/merge.js +0 -852
  50. package/dist/cli/commands/merge.js.map +0 -1
  51. package/dist/cli/commands/review.d.ts +0 -457
  52. package/dist/cli/commands/review.d.ts.map +0 -1
  53. package/dist/cli/commands/review.js +0 -558
  54. package/dist/cli/commands/review.js.map +0 -1
  55. package/dist/cli/commands/stash.d.ts +0 -157
  56. package/dist/cli/commands/stash.d.ts.map +0 -1
  57. package/dist/cli/commands/stash.js +0 -655
  58. package/dist/cli/commands/stash.js.map +0 -1
  59. package/dist/cli/commands/status.d.ts +0 -269
  60. package/dist/cli/commands/status.d.ts.map +0 -1
  61. package/dist/cli/commands/status.js +0 -492
  62. package/dist/cli/commands/status.js.map +0 -1
  63. package/dist/cli/commands/web.d.ts +0 -199
  64. package/dist/cli/commands/web.d.ts.map +0 -1
  65. package/dist/cli/commands/web.js +0 -697
  66. package/dist/cli/commands/web.js.map +0 -1
  67. package/dist/cli/fs-adapter.d.ts +0 -656
  68. package/dist/cli/fs-adapter.d.ts.map +0 -1
  69. package/dist/cli/fs-adapter.js +0 -1177
  70. package/dist/cli/fs-adapter.js.map +0 -1
  71. package/dist/cli/fsx-cli-adapter.d.ts +0 -359
  72. package/dist/cli/fsx-cli-adapter.d.ts.map +0 -1
  73. package/dist/cli/fsx-cli-adapter.js +0 -619
  74. package/dist/cli/fsx-cli-adapter.js.map +0 -1
  75. package/dist/cli/index.d.ts +0 -387
  76. package/dist/cli/index.d.ts.map +0 -1
  77. package/dist/cli/index.js +0 -579
  78. package/dist/cli/index.js.map +0 -1
  79. package/dist/cli/ui/components/DiffView.d.ts +0 -12
  80. package/dist/cli/ui/components/DiffView.d.ts.map +0 -1
  81. package/dist/cli/ui/components/DiffView.js +0 -11
  82. package/dist/cli/ui/components/DiffView.js.map +0 -1
  83. package/dist/cli/ui/components/ErrorDisplay.d.ts +0 -10
  84. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +0 -1
  85. package/dist/cli/ui/components/ErrorDisplay.js +0 -11
  86. package/dist/cli/ui/components/ErrorDisplay.js.map +0 -1
  87. package/dist/cli/ui/components/FuzzySearch.d.ts +0 -15
  88. package/dist/cli/ui/components/FuzzySearch.d.ts.map +0 -1
  89. package/dist/cli/ui/components/FuzzySearch.js +0 -12
  90. package/dist/cli/ui/components/FuzzySearch.js.map +0 -1
  91. package/dist/cli/ui/components/LoadingSpinner.d.ts +0 -10
  92. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +0 -1
  93. package/dist/cli/ui/components/LoadingSpinner.js +0 -10
  94. package/dist/cli/ui/components/LoadingSpinner.js.map +0 -1
  95. package/dist/cli/ui/components/NavigationList.d.ts +0 -14
  96. package/dist/cli/ui/components/NavigationList.d.ts.map +0 -1
  97. package/dist/cli/ui/components/NavigationList.js +0 -11
  98. package/dist/cli/ui/components/NavigationList.js.map +0 -1
  99. package/dist/cli/ui/components/ScrollableContent.d.ts +0 -13
  100. package/dist/cli/ui/components/ScrollableContent.d.ts.map +0 -1
  101. package/dist/cli/ui/components/ScrollableContent.js +0 -11
  102. package/dist/cli/ui/components/ScrollableContent.js.map +0 -1
  103. package/dist/cli/ui/components/index.d.ts +0 -7
  104. package/dist/cli/ui/components/index.d.ts.map +0 -1
  105. package/dist/cli/ui/components/index.js +0 -9
  106. package/dist/cli/ui/components/index.js.map +0 -1
  107. package/dist/cli/ui/terminal-ui.d.ts +0 -85
  108. package/dist/cli/ui/terminal-ui.d.ts.map +0 -1
  109. package/dist/cli/ui/terminal-ui.js +0 -121
  110. package/dist/cli/ui/terminal-ui.js.map +0 -1
  111. package/dist/do/BashModule.d.ts +0 -871
  112. package/dist/do/BashModule.d.ts.map +0 -1
  113. package/dist/do/BashModule.js +0 -1143
  114. package/dist/do/BashModule.js.map +0 -1
  115. package/dist/do/FsModule.d.ts +0 -612
  116. package/dist/do/FsModule.d.ts.map +0 -1
  117. package/dist/do/FsModule.js +0 -1120
  118. package/dist/do/FsModule.js.map +0 -1
  119. package/dist/do/GitModule.d.ts +0 -635
  120. package/dist/do/GitModule.d.ts.map +0 -1
  121. package/dist/do/GitModule.js +0 -784
  122. package/dist/do/GitModule.js.map +0 -1
  123. package/dist/do/GitRepoDO.d.ts +0 -281
  124. package/dist/do/GitRepoDO.d.ts.map +0 -1
  125. package/dist/do/GitRepoDO.js +0 -479
  126. package/dist/do/GitRepoDO.js.map +0 -1
  127. package/dist/do/bash-ast.d.ts +0 -246
  128. package/dist/do/bash-ast.d.ts.map +0 -1
  129. package/dist/do/bash-ast.js +0 -888
  130. package/dist/do/bash-ast.js.map +0 -1
  131. package/dist/do/container-executor.d.ts +0 -491
  132. package/dist/do/container-executor.d.ts.map +0 -1
  133. package/dist/do/container-executor.js +0 -731
  134. package/dist/do/container-executor.js.map +0 -1
  135. package/dist/do/index.d.ts +0 -53
  136. package/dist/do/index.d.ts.map +0 -1
  137. package/dist/do/index.js +0 -91
  138. package/dist/do/index.js.map +0 -1
  139. package/dist/do/tiered-storage.d.ts +0 -403
  140. package/dist/do/tiered-storage.d.ts.map +0 -1
  141. package/dist/do/tiered-storage.js +0 -689
  142. package/dist/do/tiered-storage.js.map +0 -1
  143. package/dist/do/withBash.d.ts +0 -231
  144. package/dist/do/withBash.d.ts.map +0 -1
  145. package/dist/do/withBash.js +0 -244
  146. package/dist/do/withBash.js.map +0 -1
  147. package/dist/do/withFs.d.ts +0 -237
  148. package/dist/do/withFs.d.ts.map +0 -1
  149. package/dist/do/withFs.js +0 -387
  150. package/dist/do/withFs.js.map +0 -1
  151. package/dist/do/withGit.d.ts +0 -180
  152. package/dist/do/withGit.d.ts.map +0 -1
  153. package/dist/do/withGit.js +0 -271
  154. package/dist/do/withGit.js.map +0 -1
  155. package/dist/durable-object/object-store.d.ts +0 -633
  156. package/dist/durable-object/object-store.d.ts.map +0 -1
  157. package/dist/durable-object/object-store.js +0 -1164
  158. package/dist/durable-object/object-store.js.map +0 -1
  159. package/dist/durable-object/schema.d.ts.map +0 -1
  160. package/dist/durable-object/schema.js.map +0 -1
  161. package/dist/durable-object/wal.d.ts +0 -416
  162. package/dist/durable-object/wal.d.ts.map +0 -1
  163. package/dist/durable-object/wal.js +0 -445
  164. package/dist/durable-object/wal.js.map +0 -1
  165. package/dist/mcp/adapter.d.ts +0 -772
  166. package/dist/mcp/adapter.d.ts.map +0 -1
  167. package/dist/mcp/adapter.js +0 -895
  168. package/dist/mcp/adapter.js.map +0 -1
  169. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -22
  170. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
  171. package/dist/mcp/sandbox/miniflare-evaluator.js +0 -140
  172. package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
  173. package/dist/mcp/sandbox/object-store-proxy.d.ts +0 -32
  174. package/dist/mcp/sandbox/object-store-proxy.d.ts.map +0 -1
  175. package/dist/mcp/sandbox/object-store-proxy.js +0 -30
  176. package/dist/mcp/sandbox/object-store-proxy.js.map +0 -1
  177. package/dist/mcp/sandbox/template.d.ts +0 -17
  178. package/dist/mcp/sandbox/template.d.ts.map +0 -1
  179. package/dist/mcp/sandbox/template.js +0 -71
  180. package/dist/mcp/sandbox/template.js.map +0 -1
  181. package/dist/mcp/sandbox.d.ts +0 -764
  182. package/dist/mcp/sandbox.d.ts.map +0 -1
  183. package/dist/mcp/sandbox.js +0 -1362
  184. package/dist/mcp/sandbox.js.map +0 -1
  185. package/dist/mcp/sdk-adapter.d.ts +0 -835
  186. package/dist/mcp/sdk-adapter.d.ts.map +0 -1
  187. package/dist/mcp/sdk-adapter.js +0 -974
  188. package/dist/mcp/sdk-adapter.js.map +0 -1
  189. package/dist/mcp/tools/do.d.ts +0 -32
  190. package/dist/mcp/tools/do.d.ts.map +0 -1
  191. package/dist/mcp/tools/do.js +0 -117
  192. package/dist/mcp/tools/do.js.map +0 -1
  193. package/dist/mcp/tools.d.ts +0 -548
  194. package/dist/mcp/tools.d.ts.map +0 -1
  195. package/dist/mcp/tools.js +0 -3170
  196. package/dist/mcp/tools.js.map +0 -1
  197. package/dist/ops/blame.d.ts +0 -551
  198. package/dist/ops/blame.d.ts.map +0 -1
  199. package/dist/ops/blame.js +0 -1037
  200. package/dist/ops/blame.js.map +0 -1
  201. package/dist/ops/branch.d.ts +0 -766
  202. package/dist/ops/branch.d.ts.map +0 -1
  203. package/dist/ops/branch.js +0 -950
  204. package/dist/ops/branch.js.map +0 -1
  205. package/dist/ops/commit-traversal.d.ts +0 -349
  206. package/dist/ops/commit-traversal.d.ts.map +0 -1
  207. package/dist/ops/commit-traversal.js +0 -821
  208. package/dist/ops/commit-traversal.js.map +0 -1
  209. package/dist/ops/commit.d.ts +0 -555
  210. package/dist/ops/commit.d.ts.map +0 -1
  211. package/dist/ops/commit.js +0 -826
  212. package/dist/ops/commit.js.map +0 -1
  213. package/dist/ops/merge-base.d.ts +0 -397
  214. package/dist/ops/merge-base.d.ts.map +0 -1
  215. package/dist/ops/merge-base.js +0 -691
  216. package/dist/ops/merge-base.js.map +0 -1
  217. package/dist/ops/merge.d.ts +0 -855
  218. package/dist/ops/merge.d.ts.map +0 -1
  219. package/dist/ops/merge.js +0 -1551
  220. package/dist/ops/merge.js.map +0 -1
  221. package/dist/ops/tag.d.ts +0 -247
  222. package/dist/ops/tag.d.ts.map +0 -1
  223. package/dist/ops/tag.js +0 -649
  224. package/dist/ops/tag.js.map +0 -1
  225. package/dist/ops/tree-builder.d.ts +0 -178
  226. package/dist/ops/tree-builder.d.ts.map +0 -1
  227. package/dist/ops/tree-builder.js +0 -271
  228. package/dist/ops/tree-builder.js.map +0 -1
  229. package/dist/ops/tree-diff.d.ts +0 -291
  230. package/dist/ops/tree-diff.d.ts.map +0 -1
  231. package/dist/ops/tree-diff.js +0 -705
  232. package/dist/ops/tree-diff.js.map +0 -1
  233. package/dist/pack/delta.d.ts +0 -248
  234. package/dist/pack/delta.d.ts.map +0 -1
  235. package/dist/pack/delta.js +0 -740
  236. package/dist/pack/delta.js.map +0 -1
  237. package/dist/pack/format.d.ts +0 -446
  238. package/dist/pack/format.d.ts.map +0 -1
  239. package/dist/pack/format.js +0 -572
  240. package/dist/pack/format.js.map +0 -1
  241. package/dist/pack/full-generation.d.ts +0 -612
  242. package/dist/pack/full-generation.d.ts.map +0 -1
  243. package/dist/pack/full-generation.js +0 -1378
  244. package/dist/pack/full-generation.js.map +0 -1
  245. package/dist/pack/generation.d.ts +0 -441
  246. package/dist/pack/generation.d.ts.map +0 -1
  247. package/dist/pack/generation.js +0 -707
  248. package/dist/pack/generation.js.map +0 -1
  249. package/dist/pack/index.d.ts +0 -502
  250. package/dist/pack/index.d.ts.map +0 -1
  251. package/dist/pack/index.js +0 -833
  252. package/dist/pack/index.js.map +0 -1
  253. package/dist/refs/branch.d.ts +0 -683
  254. package/dist/refs/branch.d.ts.map +0 -1
  255. package/dist/refs/branch.js +0 -881
  256. package/dist/refs/branch.js.map +0 -1
  257. package/dist/refs/storage.d.ts +0 -833
  258. package/dist/refs/storage.d.ts.map +0 -1
  259. package/dist/refs/storage.js +0 -1023
  260. package/dist/refs/storage.js.map +0 -1
  261. package/dist/refs/tag.d.ts +0 -860
  262. package/dist/refs/tag.d.ts.map +0 -1
  263. package/dist/refs/tag.js +0 -996
  264. package/dist/refs/tag.js.map +0 -1
  265. package/dist/storage/backend.d.ts +0 -425
  266. package/dist/storage/backend.d.ts.map +0 -1
  267. package/dist/storage/backend.js +0 -41
  268. package/dist/storage/backend.js.map +0 -1
  269. package/dist/storage/fsx-adapter.d.ts +0 -204
  270. package/dist/storage/fsx-adapter.d.ts.map +0 -1
  271. package/dist/storage/fsx-adapter.js +0 -518
  272. package/dist/storage/fsx-adapter.js.map +0 -1
  273. package/dist/storage/lru-cache.d.ts +0 -691
  274. package/dist/storage/lru-cache.d.ts.map +0 -1
  275. package/dist/storage/lru-cache.js +0 -813
  276. package/dist/storage/lru-cache.js.map +0 -1
  277. package/dist/storage/object-index.d.ts +0 -585
  278. package/dist/storage/object-index.d.ts.map +0 -1
  279. package/dist/storage/object-index.js +0 -532
  280. package/dist/storage/object-index.js.map +0 -1
  281. package/dist/storage/r2-pack.d.ts +0 -1257
  282. package/dist/storage/r2-pack.d.ts.map +0 -1
  283. package/dist/storage/r2-pack.js +0 -1773
  284. package/dist/storage/r2-pack.js.map +0 -1
  285. package/dist/tiered/cdc-pipeline.d.ts +0 -1888
  286. package/dist/tiered/cdc-pipeline.d.ts.map +0 -1
  287. package/dist/tiered/cdc-pipeline.js +0 -1880
  288. package/dist/tiered/cdc-pipeline.js.map +0 -1
  289. package/dist/tiered/migration.d.ts +0 -1104
  290. package/dist/tiered/migration.d.ts.map +0 -1
  291. package/dist/tiered/migration.js +0 -1217
  292. package/dist/tiered/migration.js.map +0 -1
  293. package/dist/tiered/parquet-writer.d.ts +0 -1145
  294. package/dist/tiered/parquet-writer.d.ts.map +0 -1
  295. package/dist/tiered/parquet-writer.js +0 -1183
  296. package/dist/tiered/parquet-writer.js.map +0 -1
  297. package/dist/tiered/read-path.d.ts +0 -835
  298. package/dist/tiered/read-path.d.ts.map +0 -1
  299. package/dist/tiered/read-path.js +0 -487
  300. package/dist/tiered/read-path.js.map +0 -1
  301. package/dist/types/capability.d.ts +0 -1385
  302. package/dist/types/capability.d.ts.map +0 -1
  303. package/dist/types/capability.js +0 -36
  304. package/dist/types/capability.js.map +0 -1
  305. package/dist/types/index.d.ts +0 -13
  306. package/dist/types/index.d.ts.map +0 -1
  307. package/dist/types/index.js +0 -18
  308. package/dist/types/index.js.map +0 -1
  309. package/dist/types/interfaces.d.ts +0 -673
  310. package/dist/types/interfaces.d.ts.map +0 -1
  311. package/dist/types/interfaces.js +0 -26
  312. package/dist/types/interfaces.js.map +0 -1
  313. package/dist/types/objects.d.ts +0 -692
  314. package/dist/types/objects.d.ts.map +0 -1
  315. package/dist/types/objects.js +0 -837
  316. package/dist/types/objects.js.map +0 -1
  317. package/dist/types/storage.d.ts +0 -603
  318. package/dist/types/storage.d.ts.map +0 -1
  319. package/dist/types/storage.js +0 -191
  320. package/dist/types/storage.js.map +0 -1
  321. package/dist/types/worker-loader.d.ts +0 -60
  322. package/dist/types/worker-loader.d.ts.map +0 -1
  323. package/dist/types/worker-loader.js +0 -62
  324. package/dist/types/worker-loader.js.map +0 -1
  325. package/dist/utils/hash.d.ts +0 -198
  326. package/dist/utils/hash.d.ts.map +0 -1
  327. package/dist/utils/hash.js +0 -272
  328. package/dist/utils/hash.js.map +0 -1
  329. package/dist/utils/sha1.d.ts +0 -325
  330. package/dist/utils/sha1.d.ts.map +0 -1
  331. package/dist/utils/sha1.js +0 -635
  332. package/dist/utils/sha1.js.map +0 -1
  333. package/dist/wire/capabilities.d.ts +0 -1044
  334. package/dist/wire/capabilities.d.ts.map +0 -1
  335. package/dist/wire/capabilities.js +0 -941
  336. package/dist/wire/capabilities.js.map +0 -1
  337. package/dist/wire/path-security.d.ts +0 -157
  338. package/dist/wire/path-security.d.ts.map +0 -1
  339. package/dist/wire/path-security.js +0 -307
  340. package/dist/wire/path-security.js.map +0 -1
  341. package/dist/wire/pkt-line.d.ts +0 -345
  342. package/dist/wire/pkt-line.d.ts.map +0 -1
  343. package/dist/wire/pkt-line.js +0 -381
  344. package/dist/wire/pkt-line.js.map +0 -1
  345. package/dist/wire/receive-pack.d.ts +0 -1059
  346. package/dist/wire/receive-pack.d.ts.map +0 -1
  347. package/dist/wire/receive-pack.js +0 -1414
  348. package/dist/wire/receive-pack.js.map +0 -1
  349. package/dist/wire/smart-http.d.ts +0 -799
  350. package/dist/wire/smart-http.d.ts.map +0 -1
  351. package/dist/wire/smart-http.js +0 -945
  352. package/dist/wire/smart-http.js.map +0 -1
  353. package/dist/wire/upload-pack.d.ts +0 -727
  354. package/dist/wire/upload-pack.d.ts.map +0 -1
  355. package/dist/wire/upload-pack.js +0 -1141
  356. package/dist/wire/upload-pack.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-path.d.ts","sourceRoot":"","sources":["../../src/tiered/read-path.ts"],"names":[],"mappings":"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"}
@@ -1,487 +0,0 @@
1
- /**
2
- * @fileoverview Tiered Read Path Module
3
- *
4
- * @description
5
- * Implements reading objects from a multi-tier storage system designed for
6
- * Git object storage. The tiered approach optimizes for both performance and
7
- * cost by organizing data across multiple storage layers with different
8
- * characteristics:
9
- *
10
- * **Storage Tiers:**
11
- * - **Hot tier**: Durable Object SQLite (fastest, local, highest cost)
12
- * - **Warm tier**: R2 object storage (medium latency, packed objects)
13
- * - **Cold tier**: Analytics/Parquet (highest latency, lowest cost)
14
- *
15
- * **Features:**
16
- * - Automatic tier fallback on cache miss
17
- * - Read-through caching with promotion to hotter tiers
18
- * - Configurable promotion policies (aggressive, conservative, none)
19
- * - Latency tracking for performance monitoring
20
- *
21
- * **Architecture:**
22
- * The TieredReader orchestrates reads across all tiers, attempting to serve
23
- * data from the fastest available tier while optionally promoting frequently
24
- * accessed objects to faster tiers.
25
- *
26
- * @example
27
- * ```typescript
28
- * // Create a tiered reader with all backends
29
- * const reader = new TieredReader(
30
- * hotBackend,
31
- * warmBackend,
32
- * coldBackend,
33
- * {
34
- * hot: { enabled: true, maxSize: 1024 * 1024 },
35
- * warm: { enabled: true },
36
- * cold: { enabled: true },
37
- * promotionPolicy: 'aggressive'
38
- * }
39
- * )
40
- *
41
- * // Read an object - will try hot -> warm -> cold
42
- * const result = await reader.read('abc123...')
43
- * if (result.object) {
44
- * console.log(`Found in ${result.tier} tier`)
45
- * console.log(`Latency: ${result.latencyMs}ms`)
46
- * if (result.promoted) {
47
- * console.log('Object was promoted to hot tier')
48
- * }
49
- * }
50
- * ```
51
- *
52
- * @module tiered/read-path
53
- * @see {@link TieredReader} - Main implementation class
54
- * @see {@link TieredStorageConfig} - Configuration options
55
- */
56
- /**
57
- * Validates a SHA-1 hash string.
58
- *
59
- * @description
60
- * Checks that the provided string is a valid 40-character hexadecimal
61
- * SHA-1 hash. Used internally to validate input before querying storage.
62
- *
63
- * @param sha - The string to validate
64
- * @returns true if the string is a valid SHA-1 hash, false otherwise
65
- *
66
- * @example
67
- * ```typescript
68
- * isValidSha('abc123') // false - too short
69
- * isValidSha('a1b2c3d4e5f678901234567890abcdef12345678') // true
70
- * isValidSha('xyz123...') // false - invalid characters
71
- * ```
72
- *
73
- * @internal
74
- */
75
- function isValidSha(sha) {
76
- if (!sha || sha.length !== 40) {
77
- return false;
78
- }
79
- return /^[0-9a-f]{40}$/i.test(sha);
80
- }
81
- /**
82
- * TieredReader - Main implementation of the tiered read path.
83
- *
84
- * @description
85
- * TieredReader orchestrates reads across multiple storage tiers (hot, warm, cold),
86
- * implementing automatic fallback and optional promotion to hotter tiers. It provides
87
- * a unified interface for reading Git objects regardless of which tier they reside in.
88
- *
89
- * **Read Algorithm:**
90
- * 1. Validate the SHA-1 hash
91
- * 2. If hot tier enabled, attempt to read from hot tier
92
- * 3. If not found and warm tier enabled, attempt warm tier
93
- * 4. If not found and cold tier enabled, attempt cold tier
94
- * 5. If found in warm/cold, optionally promote to hot tier
95
- * 6. Return result with object, source tier, and metrics
96
- *
97
- * **Promotion Policies:**
98
- * - `aggressive`: Immediately promote any object read from warm/cold to hot
99
- * - `conservative`: Reserved for future implementation (repeated access tracking)
100
- * - `none`: Never automatically promote objects
101
- *
102
- * **Error Handling:**
103
- * Individual tier failures are silently caught and the next tier is tried.
104
- * This ensures graceful degradation when a tier is temporarily unavailable.
105
- *
106
- * @example
107
- * ```typescript
108
- * // Create backends for each tier
109
- * const hotBackend = new SqliteHotBackend(db)
110
- * const warmBackend = new R2WarmBackend(r2)
111
- * const coldBackend = new ParquetColdBackend(parquet)
112
- *
113
- * // Configure the tiered storage
114
- * const config: TieredStorageConfig = {
115
- * hot: { enabled: true, maxSize: 1024 * 1024 },
116
- * warm: { enabled: true },
117
- * cold: { enabled: true },
118
- * promotionPolicy: 'aggressive'
119
- * }
120
- *
121
- * // Create the reader
122
- * const reader = new TieredReader(hotBackend, warmBackend, coldBackend, config)
123
- *
124
- * // Read an object
125
- * const result = await reader.read('a1b2c3d4e5f678901234567890abcdef12345678')
126
- *
127
- * if (result.object) {
128
- * console.log(`Object type: ${result.object.type}`)
129
- * console.log(`Size: ${result.object.size} bytes`)
130
- * console.log(`Served from: ${result.tier} tier`)
131
- * console.log(`Latency: ${result.latencyMs}ms`)
132
- *
133
- * if (result.promoted) {
134
- * console.log('Object was promoted to hot tier')
135
- * }
136
- * } else {
137
- * console.log('Object not found in any tier')
138
- * }
139
- *
140
- * // Direct tier access
141
- * const hotOnly = await reader.readFromHot(sha)
142
- * const warmOnly = await reader.readFromWarm(sha)
143
- * const coldOnly = await reader.readFromCold(sha)
144
- *
145
- * // Manual promotion
146
- * if (warmOnly) {
147
- * await reader.promoteToHot(sha, warmOnly)
148
- * }
149
- * ```
150
- *
151
- * @class TieredReader
152
- * @implements {TieredObjectStore}
153
- */
154
- export class TieredReader {
155
- /**
156
- * Backend for the hot storage tier (Durable Object SQLite).
157
- * @private
158
- */
159
- hotBackend;
160
- /**
161
- * Backend for the warm storage tier (R2 object storage).
162
- * @private
163
- */
164
- warmBackend;
165
- /**
166
- * Backend for the cold storage tier (Analytics/Parquet).
167
- * @private
168
- */
169
- coldBackend;
170
- /**
171
- * Configuration for all tiers and promotion policy.
172
- * @private
173
- */
174
- config;
175
- /**
176
- * Creates a new TieredReader instance.
177
- *
178
- * @param hotBackend - Backend for the hot tier (Durable Object SQLite)
179
- * @param warmBackend - Backend for the warm tier (R2)
180
- * @param coldBackend - Backend for the cold tier (Parquet)
181
- * @param config - Configuration for all tiers and promotion policy
182
- *
183
- * @example
184
- * ```typescript
185
- * const reader = new TieredReader(
186
- * hotBackend,
187
- * warmBackend,
188
- * coldBackend,
189
- * {
190
- * hot: { enabled: true, maxSize: 1024 * 1024 },
191
- * warm: { enabled: true },
192
- * cold: { enabled: true },
193
- * promotionPolicy: 'aggressive'
194
- * }
195
- * )
196
- * ```
197
- */
198
- constructor(hotBackend, warmBackend, coldBackend, config) {
199
- this.hotBackend = hotBackend;
200
- this.warmBackend = warmBackend;
201
- this.coldBackend = coldBackend;
202
- this.config = config;
203
- }
204
- /**
205
- * Reads an object from the tiered storage system.
206
- *
207
- * @description
208
- * Attempts to read the object from each enabled tier in order
209
- * (hot -> warm -> cold), returning as soon as the object is found.
210
- * Objects found in warm or cold tiers may be promoted to hot tier
211
- * based on the configured promotion policy.
212
- *
213
- * **Invalid SHA Handling:**
214
- * If the SHA is invalid (not 40 hex characters), returns immediately
215
- * with null object and no tier lookup is performed.
216
- *
217
- * **Error Handling:**
218
- * If a tier fails (throws an error), the error is caught silently
219
- * and the next tier is attempted. This provides graceful degradation.
220
- *
221
- * @param sha - The 40-character SHA-1 hash of the object to read
222
- * @returns Promise resolving to the read result with object, tier, and metrics
223
- *
224
- * @example
225
- * ```typescript
226
- * const result = await reader.read('a1b2c3d4e5f678901234567890abcdef12345678')
227
- *
228
- * if (result.object) {
229
- * // Object found
230
- * console.log(`Type: ${result.object.type}`)
231
- * console.log(`Tier: ${result.tier}`)
232
- * console.log(`Promoted: ${result.promoted}`)
233
- * } else {
234
- * // Object not found
235
- * console.log(`Search took ${result.latencyMs}ms`)
236
- * }
237
- * ```
238
- */
239
- async read(sha) {
240
- const startTime = performance.now();
241
- // Validate SHA
242
- if (!isValidSha(sha)) {
243
- return {
244
- object: null,
245
- tier: null,
246
- promoted: false,
247
- latencyMs: performance.now() - startTime
248
- };
249
- }
250
- // Try hot tier first
251
- if (this.config.hot.enabled) {
252
- try {
253
- const obj = await this.hotBackend.get(sha);
254
- if (obj) {
255
- return {
256
- object: obj,
257
- tier: 'hot',
258
- promoted: false,
259
- latencyMs: performance.now() - startTime
260
- };
261
- }
262
- }
263
- catch {
264
- // Hot tier failed, continue to next tier
265
- }
266
- }
267
- // Try warm tier
268
- if (this.config.warm.enabled) {
269
- try {
270
- const obj = await this.warmBackend.get(sha);
271
- if (obj) {
272
- const promoted = await this.tryPromote(sha, obj, 'warm');
273
- return {
274
- object: obj,
275
- tier: 'warm',
276
- promoted,
277
- latencyMs: performance.now() - startTime
278
- };
279
- }
280
- }
281
- catch {
282
- // Warm tier failed, continue to cold tier
283
- }
284
- }
285
- // Try cold tier
286
- if (this.config.cold.enabled) {
287
- try {
288
- const obj = await this.coldBackend.get(sha);
289
- if (obj) {
290
- const promoted = await this.tryPromote(sha, obj, 'cold');
291
- return {
292
- object: obj,
293
- tier: 'cold',
294
- promoted,
295
- latencyMs: performance.now() - startTime
296
- };
297
- }
298
- }
299
- catch {
300
- // Cold tier failed
301
- }
302
- }
303
- // Object not found in any tier
304
- return {
305
- object: null,
306
- tier: null,
307
- promoted: false,
308
- latencyMs: performance.now() - startTime
309
- };
310
- }
311
- /**
312
- * Reads an object directly from the hot tier only.
313
- *
314
- * @description
315
- * Bypasses the tier fallback logic to read directly from the hot tier.
316
- * Useful for checking if an object is already in the hot cache.
317
- * Errors are caught and null is returned.
318
- *
319
- * @param sha - The 40-character SHA-1 hash of the object
320
- * @returns Promise resolving to the object or null if not in hot tier
321
- *
322
- * @example
323
- * ```typescript
324
- * const cached = await reader.readFromHot(sha)
325
- * if (cached) {
326
- * console.log('Object is in hot cache')
327
- * } else {
328
- * console.log('Object not in hot cache')
329
- * }
330
- * ```
331
- */
332
- async readFromHot(sha) {
333
- try {
334
- return await this.hotBackend.get(sha);
335
- }
336
- catch {
337
- return null;
338
- }
339
- }
340
- /**
341
- * Reads an object directly from the warm tier only.
342
- *
343
- * @description
344
- * Bypasses the tier fallback logic to read directly from the warm tier.
345
- * Does not trigger automatic promotion to hot tier.
346
- * Errors are caught and null is returned.
347
- *
348
- * @param sha - The 40-character SHA-1 hash of the object
349
- * @returns Promise resolving to the object or null if not in warm tier
350
- *
351
- * @example
352
- * ```typescript
353
- * const warm = await reader.readFromWarm(sha)
354
- * if (warm) {
355
- * // Manually promote if desired
356
- * await reader.promoteToHot(sha, warm)
357
- * }
358
- * ```
359
- */
360
- async readFromWarm(sha) {
361
- try {
362
- return await this.warmBackend.get(sha);
363
- }
364
- catch {
365
- return null;
366
- }
367
- }
368
- /**
369
- * Reads an object directly from the cold tier only.
370
- *
371
- * @description
372
- * Bypasses the tier fallback logic to read directly from the cold tier.
373
- * Does not trigger automatic promotion to hotter tiers.
374
- * Errors are caught and null is returned.
375
- *
376
- * @param sha - The 40-character SHA-1 hash of the object
377
- * @returns Promise resolving to the object or null if not in cold tier
378
- *
379
- * @example
380
- * ```typescript
381
- * const cold = await reader.readFromCold(sha)
382
- * if (cold) {
383
- * console.log(`Found in cold storage, created at: ${cold.createdAt}`)
384
- * }
385
- * ```
386
- */
387
- async readFromCold(sha) {
388
- try {
389
- return await this.coldBackend.get(sha);
390
- }
391
- catch {
392
- return null;
393
- }
394
- }
395
- /**
396
- * Manually promotes an object to the hot tier.
397
- *
398
- * @description
399
- * Copies the provided object to the hot tier storage. This is useful for
400
- * pre-warming the cache or manually controlling tier placement. No size
401
- * or policy checks are performed - the object is always written.
402
- *
403
- * @param sha - The 40-character SHA-1 hash of the object
404
- * @param object - The complete stored object to promote
405
- * @returns Promise that resolves when promotion is complete
406
- * @throws Error if the hot tier write fails
407
- *
408
- * @example
409
- * ```typescript
410
- * // Pre-warm the hot cache
411
- * const objects = await reader.query({ type: 'commit' })
412
- * for (const obj of objects) {
413
- * await reader.promoteToHot(obj.sha, obj)
414
- * }
415
- * ```
416
- */
417
- async promoteToHot(sha, object) {
418
- await this.hotBackend.put(sha, object);
419
- }
420
- /**
421
- * Returns the current storage configuration.
422
- *
423
- * @description
424
- * Returns the configuration object passed to the constructor.
425
- * Useful for inspecting current settings or debugging.
426
- *
427
- * @returns The tiered storage configuration
428
- *
429
- * @example
430
- * ```typescript
431
- * const config = reader.getConfig()
432
- * console.log(`Promotion policy: ${config.promotionPolicy}`)
433
- * console.log(`Hot tier enabled: ${config.hot.enabled}`)
434
- * ```
435
- */
436
- getConfig() {
437
- return this.config;
438
- }
439
- /**
440
- * Attempts to promote an object to the hot tier based on policy.
441
- *
442
- * @description
443
- * Called internally when an object is found in warm or cold tier.
444
- * Decides whether to promote based on:
445
- * 1. Hot tier being enabled
446
- * 2. Promotion policy (aggressive promotes, conservative/none don't)
447
- * 3. Object size being within hot tier's maxSize limit
448
- *
449
- * @param sha - The object's SHA-1 hash
450
- * @param object - The object to potentially promote
451
- * @param _sourceTier - The tier the object was read from (for future use)
452
- * @returns true if promotion was successful, false otherwise
453
- *
454
- * @private
455
- */
456
- async tryPromote(sha, object, _sourceTier) {
457
- // Check if hot tier is enabled
458
- if (!this.config.hot.enabled) {
459
- return false;
460
- }
461
- // Check promotion policy
462
- if (this.config.promotionPolicy === 'none') {
463
- return false;
464
- }
465
- // Conservative policy only promotes from warm tier on repeated access
466
- // For now, conservative means no automatic promotion on first read
467
- if (this.config.promotionPolicy === 'conservative') {
468
- return false;
469
- }
470
- // Check size limit for hot tier
471
- if (this.config.hot.maxSize !== undefined && object.size > this.config.hot.maxSize) {
472
- return false;
473
- }
474
- // Try to promote
475
- try {
476
- await this.hotBackend.put(sha, object);
477
- return true;
478
- }
479
- catch {
480
- // Promotion failed, but we still have the object
481
- return false;
482
- }
483
- }
484
- }
485
- // Re-export as TieredObjectStoreStub for backward compatibility with tests
486
- export { TieredReader as TieredObjectStoreStub };
487
- //# sourceMappingURL=read-path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-path.js","sourceRoot":"","sources":["../../src/tiered/read-path.ts"],"names":[],"mappings":"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"}