gitx.do 0.1.0 → 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 (344) 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 +15 -415
  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 -174
  20. package/dist/cli/commands/add.d.ts.map +0 -1
  21. package/dist/cli/commands/add.js +0 -131
  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/commit.d.ts +0 -182
  32. package/dist/cli/commands/commit.d.ts.map +0 -1
  33. package/dist/cli/commands/commit.js +0 -437
  34. package/dist/cli/commands/commit.js.map +0 -1
  35. package/dist/cli/commands/diff.d.ts +0 -464
  36. package/dist/cli/commands/diff.d.ts.map +0 -1
  37. package/dist/cli/commands/diff.js +0 -958
  38. package/dist/cli/commands/diff.js.map +0 -1
  39. package/dist/cli/commands/log.d.ts +0 -239
  40. package/dist/cli/commands/log.d.ts.map +0 -1
  41. package/dist/cli/commands/log.js +0 -535
  42. package/dist/cli/commands/log.js.map +0 -1
  43. package/dist/cli/commands/merge.d.ts +0 -106
  44. package/dist/cli/commands/merge.d.ts.map +0 -1
  45. package/dist/cli/commands/merge.js +0 -55
  46. package/dist/cli/commands/merge.js.map +0 -1
  47. package/dist/cli/commands/review.d.ts +0 -457
  48. package/dist/cli/commands/review.d.ts.map +0 -1
  49. package/dist/cli/commands/review.js +0 -533
  50. package/dist/cli/commands/review.js.map +0 -1
  51. package/dist/cli/commands/status.d.ts +0 -269
  52. package/dist/cli/commands/status.d.ts.map +0 -1
  53. package/dist/cli/commands/status.js +0 -493
  54. package/dist/cli/commands/status.js.map +0 -1
  55. package/dist/cli/commands/web.d.ts +0 -199
  56. package/dist/cli/commands/web.d.ts.map +0 -1
  57. package/dist/cli/commands/web.js +0 -696
  58. package/dist/cli/commands/web.js.map +0 -1
  59. package/dist/cli/fs-adapter.d.ts +0 -656
  60. package/dist/cli/fs-adapter.d.ts.map +0 -1
  61. package/dist/cli/fs-adapter.js +0 -1179
  62. package/dist/cli/fs-adapter.js.map +0 -1
  63. package/dist/cli/fsx-cli-adapter.d.ts +0 -359
  64. package/dist/cli/fsx-cli-adapter.d.ts.map +0 -1
  65. package/dist/cli/fsx-cli-adapter.js +0 -619
  66. package/dist/cli/fsx-cli-adapter.js.map +0 -1
  67. package/dist/cli/index.d.ts +0 -387
  68. package/dist/cli/index.d.ts.map +0 -1
  69. package/dist/cli/index.js +0 -523
  70. package/dist/cli/index.js.map +0 -1
  71. package/dist/cli/ui/components/DiffView.d.ts +0 -7
  72. package/dist/cli/ui/components/DiffView.d.ts.map +0 -1
  73. package/dist/cli/ui/components/DiffView.js +0 -11
  74. package/dist/cli/ui/components/DiffView.js.map +0 -1
  75. package/dist/cli/ui/components/ErrorDisplay.d.ts +0 -6
  76. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +0 -1
  77. package/dist/cli/ui/components/ErrorDisplay.js +0 -11
  78. package/dist/cli/ui/components/ErrorDisplay.js.map +0 -1
  79. package/dist/cli/ui/components/FuzzySearch.d.ts +0 -9
  80. package/dist/cli/ui/components/FuzzySearch.d.ts.map +0 -1
  81. package/dist/cli/ui/components/FuzzySearch.js +0 -12
  82. package/dist/cli/ui/components/FuzzySearch.js.map +0 -1
  83. package/dist/cli/ui/components/LoadingSpinner.d.ts +0 -6
  84. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +0 -1
  85. package/dist/cli/ui/components/LoadingSpinner.js +0 -10
  86. package/dist/cli/ui/components/LoadingSpinner.js.map +0 -1
  87. package/dist/cli/ui/components/NavigationList.d.ts +0 -9
  88. package/dist/cli/ui/components/NavigationList.d.ts.map +0 -1
  89. package/dist/cli/ui/components/NavigationList.js +0 -11
  90. package/dist/cli/ui/components/NavigationList.js.map +0 -1
  91. package/dist/cli/ui/components/ScrollableContent.d.ts +0 -8
  92. package/dist/cli/ui/components/ScrollableContent.d.ts.map +0 -1
  93. package/dist/cli/ui/components/ScrollableContent.js +0 -11
  94. package/dist/cli/ui/components/ScrollableContent.js.map +0 -1
  95. package/dist/cli/ui/components/index.d.ts +0 -7
  96. package/dist/cli/ui/components/index.d.ts.map +0 -1
  97. package/dist/cli/ui/components/index.js +0 -9
  98. package/dist/cli/ui/components/index.js.map +0 -1
  99. package/dist/cli/ui/terminal-ui.d.ts +0 -52
  100. package/dist/cli/ui/terminal-ui.d.ts.map +0 -1
  101. package/dist/cli/ui/terminal-ui.js +0 -121
  102. package/dist/cli/ui/terminal-ui.js.map +0 -1
  103. package/dist/do/BashModule.d.ts +0 -871
  104. package/dist/do/BashModule.d.ts.map +0 -1
  105. package/dist/do/BashModule.js +0 -1143
  106. package/dist/do/BashModule.js.map +0 -1
  107. package/dist/do/FsModule.d.ts +0 -601
  108. package/dist/do/FsModule.d.ts.map +0 -1
  109. package/dist/do/FsModule.js +0 -1120
  110. package/dist/do/FsModule.js.map +0 -1
  111. package/dist/do/GitModule.d.ts +0 -635
  112. package/dist/do/GitModule.d.ts.map +0 -1
  113. package/dist/do/GitModule.js +0 -781
  114. package/dist/do/GitModule.js.map +0 -1
  115. package/dist/do/GitRepoDO.d.ts +0 -281
  116. package/dist/do/GitRepoDO.d.ts.map +0 -1
  117. package/dist/do/GitRepoDO.js +0 -479
  118. package/dist/do/GitRepoDO.js.map +0 -1
  119. package/dist/do/bash-ast.d.ts +0 -246
  120. package/dist/do/bash-ast.d.ts.map +0 -1
  121. package/dist/do/bash-ast.js +0 -888
  122. package/dist/do/bash-ast.js.map +0 -1
  123. package/dist/do/container-executor.d.ts +0 -491
  124. package/dist/do/container-executor.d.ts.map +0 -1
  125. package/dist/do/container-executor.js +0 -730
  126. package/dist/do/container-executor.js.map +0 -1
  127. package/dist/do/index.d.ts +0 -53
  128. package/dist/do/index.d.ts.map +0 -1
  129. package/dist/do/index.js +0 -91
  130. package/dist/do/index.js.map +0 -1
  131. package/dist/do/tiered-storage.d.ts +0 -403
  132. package/dist/do/tiered-storage.d.ts.map +0 -1
  133. package/dist/do/tiered-storage.js +0 -689
  134. package/dist/do/tiered-storage.js.map +0 -1
  135. package/dist/do/withBash.d.ts +0 -231
  136. package/dist/do/withBash.d.ts.map +0 -1
  137. package/dist/do/withBash.js +0 -244
  138. package/dist/do/withBash.js.map +0 -1
  139. package/dist/do/withFs.d.ts +0 -237
  140. package/dist/do/withFs.d.ts.map +0 -1
  141. package/dist/do/withFs.js +0 -387
  142. package/dist/do/withFs.js.map +0 -1
  143. package/dist/do/withGit.d.ts +0 -180
  144. package/dist/do/withGit.d.ts.map +0 -1
  145. package/dist/do/withGit.js +0 -271
  146. package/dist/do/withGit.js.map +0 -1
  147. package/dist/durable-object/object-store.d.ts +0 -633
  148. package/dist/durable-object/object-store.d.ts.map +0 -1
  149. package/dist/durable-object/object-store.js +0 -1161
  150. package/dist/durable-object/object-store.js.map +0 -1
  151. package/dist/durable-object/schema.d.ts.map +0 -1
  152. package/dist/durable-object/schema.js.map +0 -1
  153. package/dist/durable-object/wal.d.ts +0 -416
  154. package/dist/durable-object/wal.d.ts.map +0 -1
  155. package/dist/durable-object/wal.js +0 -445
  156. package/dist/durable-object/wal.js.map +0 -1
  157. package/dist/mcp/adapter.d.ts +0 -772
  158. package/dist/mcp/adapter.d.ts.map +0 -1
  159. package/dist/mcp/adapter.js +0 -895
  160. package/dist/mcp/adapter.js.map +0 -1
  161. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -22
  162. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
  163. package/dist/mcp/sandbox/miniflare-evaluator.js +0 -140
  164. package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
  165. package/dist/mcp/sandbox/object-store-proxy.d.ts +0 -32
  166. package/dist/mcp/sandbox/object-store-proxy.d.ts.map +0 -1
  167. package/dist/mcp/sandbox/object-store-proxy.js +0 -30
  168. package/dist/mcp/sandbox/object-store-proxy.js.map +0 -1
  169. package/dist/mcp/sandbox/template.d.ts +0 -17
  170. package/dist/mcp/sandbox/template.d.ts.map +0 -1
  171. package/dist/mcp/sandbox/template.js +0 -71
  172. package/dist/mcp/sandbox/template.js.map +0 -1
  173. package/dist/mcp/sandbox.d.ts +0 -764
  174. package/dist/mcp/sandbox.d.ts.map +0 -1
  175. package/dist/mcp/sandbox.js +0 -1362
  176. package/dist/mcp/sandbox.js.map +0 -1
  177. package/dist/mcp/sdk-adapter.d.ts +0 -835
  178. package/dist/mcp/sdk-adapter.d.ts.map +0 -1
  179. package/dist/mcp/sdk-adapter.js +0 -974
  180. package/dist/mcp/sdk-adapter.js.map +0 -1
  181. package/dist/mcp/tools/do.d.ts +0 -32
  182. package/dist/mcp/tools/do.d.ts.map +0 -1
  183. package/dist/mcp/tools/do.js +0 -115
  184. package/dist/mcp/tools/do.js.map +0 -1
  185. package/dist/mcp/tools.d.ts +0 -548
  186. package/dist/mcp/tools.d.ts.map +0 -1
  187. package/dist/mcp/tools.js +0 -1934
  188. package/dist/mcp/tools.js.map +0 -1
  189. package/dist/ops/blame.d.ts +0 -551
  190. package/dist/ops/blame.d.ts.map +0 -1
  191. package/dist/ops/blame.js +0 -1037
  192. package/dist/ops/blame.js.map +0 -1
  193. package/dist/ops/branch.d.ts +0 -766
  194. package/dist/ops/branch.d.ts.map +0 -1
  195. package/dist/ops/branch.js +0 -950
  196. package/dist/ops/branch.js.map +0 -1
  197. package/dist/ops/commit-traversal.d.ts +0 -349
  198. package/dist/ops/commit-traversal.d.ts.map +0 -1
  199. package/dist/ops/commit-traversal.js +0 -821
  200. package/dist/ops/commit-traversal.js.map +0 -1
  201. package/dist/ops/commit.d.ts +0 -555
  202. package/dist/ops/commit.d.ts.map +0 -1
  203. package/dist/ops/commit.js +0 -826
  204. package/dist/ops/commit.js.map +0 -1
  205. package/dist/ops/merge-base.d.ts +0 -397
  206. package/dist/ops/merge-base.d.ts.map +0 -1
  207. package/dist/ops/merge-base.js +0 -691
  208. package/dist/ops/merge-base.js.map +0 -1
  209. package/dist/ops/merge.d.ts +0 -855
  210. package/dist/ops/merge.d.ts.map +0 -1
  211. package/dist/ops/merge.js +0 -1551
  212. package/dist/ops/merge.js.map +0 -1
  213. package/dist/ops/tag.d.ts +0 -247
  214. package/dist/ops/tag.d.ts.map +0 -1
  215. package/dist/ops/tag.js +0 -649
  216. package/dist/ops/tag.js.map +0 -1
  217. package/dist/ops/tree-builder.d.ts +0 -178
  218. package/dist/ops/tree-builder.d.ts.map +0 -1
  219. package/dist/ops/tree-builder.js +0 -271
  220. package/dist/ops/tree-builder.js.map +0 -1
  221. package/dist/ops/tree-diff.d.ts +0 -291
  222. package/dist/ops/tree-diff.d.ts.map +0 -1
  223. package/dist/ops/tree-diff.js +0 -705
  224. package/dist/ops/tree-diff.js.map +0 -1
  225. package/dist/pack/delta.d.ts +0 -248
  226. package/dist/pack/delta.d.ts.map +0 -1
  227. package/dist/pack/delta.js +0 -736
  228. package/dist/pack/delta.js.map +0 -1
  229. package/dist/pack/format.d.ts +0 -446
  230. package/dist/pack/format.d.ts.map +0 -1
  231. package/dist/pack/format.js +0 -572
  232. package/dist/pack/format.js.map +0 -1
  233. package/dist/pack/full-generation.d.ts +0 -612
  234. package/dist/pack/full-generation.d.ts.map +0 -1
  235. package/dist/pack/full-generation.js +0 -1378
  236. package/dist/pack/full-generation.js.map +0 -1
  237. package/dist/pack/generation.d.ts +0 -441
  238. package/dist/pack/generation.d.ts.map +0 -1
  239. package/dist/pack/generation.js +0 -707
  240. package/dist/pack/generation.js.map +0 -1
  241. package/dist/pack/index.d.ts +0 -502
  242. package/dist/pack/index.d.ts.map +0 -1
  243. package/dist/pack/index.js +0 -833
  244. package/dist/pack/index.js.map +0 -1
  245. package/dist/refs/branch.d.ts +0 -668
  246. package/dist/refs/branch.d.ts.map +0 -1
  247. package/dist/refs/branch.js +0 -897
  248. package/dist/refs/branch.js.map +0 -1
  249. package/dist/refs/storage.d.ts +0 -833
  250. package/dist/refs/storage.d.ts.map +0 -1
  251. package/dist/refs/storage.js +0 -1023
  252. package/dist/refs/storage.js.map +0 -1
  253. package/dist/refs/tag.d.ts +0 -860
  254. package/dist/refs/tag.d.ts.map +0 -1
  255. package/dist/refs/tag.js +0 -996
  256. package/dist/refs/tag.js.map +0 -1
  257. package/dist/storage/backend.d.ts +0 -425
  258. package/dist/storage/backend.d.ts.map +0 -1
  259. package/dist/storage/backend.js +0 -41
  260. package/dist/storage/backend.js.map +0 -1
  261. package/dist/storage/fsx-adapter.d.ts +0 -204
  262. package/dist/storage/fsx-adapter.d.ts.map +0 -1
  263. package/dist/storage/fsx-adapter.js +0 -470
  264. package/dist/storage/fsx-adapter.js.map +0 -1
  265. package/dist/storage/lru-cache.d.ts +0 -691
  266. package/dist/storage/lru-cache.d.ts.map +0 -1
  267. package/dist/storage/lru-cache.js +0 -813
  268. package/dist/storage/lru-cache.js.map +0 -1
  269. package/dist/storage/object-index.d.ts +0 -585
  270. package/dist/storage/object-index.d.ts.map +0 -1
  271. package/dist/storage/object-index.js +0 -532
  272. package/dist/storage/object-index.js.map +0 -1
  273. package/dist/storage/r2-pack.d.ts +0 -1257
  274. package/dist/storage/r2-pack.d.ts.map +0 -1
  275. package/dist/storage/r2-pack.js +0 -1770
  276. package/dist/storage/r2-pack.js.map +0 -1
  277. package/dist/tiered/cdc-pipeline.d.ts +0 -1888
  278. package/dist/tiered/cdc-pipeline.d.ts.map +0 -1
  279. package/dist/tiered/cdc-pipeline.js +0 -1880
  280. package/dist/tiered/cdc-pipeline.js.map +0 -1
  281. package/dist/tiered/migration.d.ts +0 -1104
  282. package/dist/tiered/migration.d.ts.map +0 -1
  283. package/dist/tiered/migration.js +0 -1214
  284. package/dist/tiered/migration.js.map +0 -1
  285. package/dist/tiered/parquet-writer.d.ts +0 -1145
  286. package/dist/tiered/parquet-writer.d.ts.map +0 -1
  287. package/dist/tiered/parquet-writer.js +0 -1183
  288. package/dist/tiered/parquet-writer.js.map +0 -1
  289. package/dist/tiered/read-path.d.ts +0 -835
  290. package/dist/tiered/read-path.d.ts.map +0 -1
  291. package/dist/tiered/read-path.js +0 -487
  292. package/dist/tiered/read-path.js.map +0 -1
  293. package/dist/types/capability.d.ts +0 -1385
  294. package/dist/types/capability.d.ts.map +0 -1
  295. package/dist/types/capability.js +0 -36
  296. package/dist/types/capability.js.map +0 -1
  297. package/dist/types/index.d.ts +0 -13
  298. package/dist/types/index.d.ts.map +0 -1
  299. package/dist/types/index.js +0 -18
  300. package/dist/types/index.js.map +0 -1
  301. package/dist/types/objects.d.ts +0 -692
  302. package/dist/types/objects.d.ts.map +0 -1
  303. package/dist/types/objects.js +0 -837
  304. package/dist/types/objects.js.map +0 -1
  305. package/dist/types/storage.d.ts +0 -603
  306. package/dist/types/storage.d.ts.map +0 -1
  307. package/dist/types/storage.js +0 -191
  308. package/dist/types/storage.js.map +0 -1
  309. package/dist/types/worker-loader.d.ts +0 -60
  310. package/dist/types/worker-loader.d.ts.map +0 -1
  311. package/dist/types/worker-loader.js +0 -62
  312. package/dist/types/worker-loader.js.map +0 -1
  313. package/dist/utils/hash.d.ts +0 -197
  314. package/dist/utils/hash.d.ts.map +0 -1
  315. package/dist/utils/hash.js +0 -268
  316. package/dist/utils/hash.js.map +0 -1
  317. package/dist/utils/sha1.d.ts +0 -290
  318. package/dist/utils/sha1.d.ts.map +0 -1
  319. package/dist/utils/sha1.js +0 -582
  320. package/dist/utils/sha1.js.map +0 -1
  321. package/dist/wire/capabilities.d.ts +0 -1044
  322. package/dist/wire/capabilities.d.ts.map +0 -1
  323. package/dist/wire/capabilities.js +0 -941
  324. package/dist/wire/capabilities.js.map +0 -1
  325. package/dist/wire/path-security.d.ts +0 -157
  326. package/dist/wire/path-security.d.ts.map +0 -1
  327. package/dist/wire/path-security.js +0 -307
  328. package/dist/wire/path-security.js.map +0 -1
  329. package/dist/wire/pkt-line.d.ts +0 -345
  330. package/dist/wire/pkt-line.d.ts.map +0 -1
  331. package/dist/wire/pkt-line.js +0 -381
  332. package/dist/wire/pkt-line.js.map +0 -1
  333. package/dist/wire/receive-pack.d.ts +0 -1059
  334. package/dist/wire/receive-pack.d.ts.map +0 -1
  335. package/dist/wire/receive-pack.js +0 -1414
  336. package/dist/wire/receive-pack.js.map +0 -1
  337. package/dist/wire/smart-http.d.ts +0 -799
  338. package/dist/wire/smart-http.d.ts.map +0 -1
  339. package/dist/wire/smart-http.js +0 -945
  340. package/dist/wire/smart-http.js.map +0 -1
  341. package/dist/wire/upload-pack.d.ts +0 -727
  342. package/dist/wire/upload-pack.d.ts.map +0 -1
  343. package/dist/wire/upload-pack.js +0 -1138
  344. 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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"}