@software-dlc/cli 0.157.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 (701) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +105 -0
  3. package/README.md +31 -0
  4. package/dist/checkout.d.ts +43 -0
  5. package/dist/checkout.d.ts.map +1 -0
  6. package/dist/checkout.js +92 -0
  7. package/dist/checkout.js.map +1 -0
  8. package/dist/cli-arguments.d.ts +13 -0
  9. package/dist/cli-arguments.d.ts.map +1 -0
  10. package/dist/cli-arguments.js +67 -0
  11. package/dist/cli-arguments.js.map +1 -0
  12. package/dist/cli-branch-history.d.ts +48 -0
  13. package/dist/cli-branch-history.d.ts.map +1 -0
  14. package/dist/cli-branch-history.js +319 -0
  15. package/dist/cli-branch-history.js.map +1 -0
  16. package/dist/cli-branches.d.ts +22 -0
  17. package/dist/cli-branches.d.ts.map +1 -0
  18. package/dist/cli-branches.js +59 -0
  19. package/dist/cli-branches.js.map +1 -0
  20. package/dist/cli-deploy.d.ts +14 -0
  21. package/dist/cli-deploy.d.ts.map +1 -0
  22. package/dist/cli-deploy.js +164 -0
  23. package/dist/cli-deploy.js.map +1 -0
  24. package/dist/cli-health.d.ts +3 -0
  25. package/dist/cli-health.d.ts.map +1 -0
  26. package/dist/cli-health.js +73 -0
  27. package/dist/cli-health.js.map +1 -0
  28. package/dist/cli-help.d.ts +21 -0
  29. package/dist/cli-help.d.ts.map +1 -0
  30. package/dist/cli-help.js +176 -0
  31. package/dist/cli-help.js.map +1 -0
  32. package/dist/cli-login.d.ts +76 -0
  33. package/dist/cli-login.d.ts.map +1 -0
  34. package/dist/cli-login.js +634 -0
  35. package/dist/cli-login.js.map +1 -0
  36. package/dist/cli-operation.d.ts +2 -0
  37. package/dist/cli-operation.d.ts.map +1 -0
  38. package/dist/cli-operation.js +66 -0
  39. package/dist/cli-operation.js.map +1 -0
  40. package/dist/cli-org.d.ts +12 -0
  41. package/dist/cli-org.d.ts.map +1 -0
  42. package/dist/cli-org.js +218 -0
  43. package/dist/cli-org.js.map +1 -0
  44. package/dist/cli-rebuild.d.ts +20 -0
  45. package/dist/cli-rebuild.d.ts.map +1 -0
  46. package/dist/cli-rebuild.js +29 -0
  47. package/dist/cli-rebuild.js.map +1 -0
  48. package/dist/cli-reset.d.ts +27 -0
  49. package/dist/cli-reset.d.ts.map +1 -0
  50. package/dist/cli-reset.js +44 -0
  51. package/dist/cli-reset.js.map +1 -0
  52. package/dist/cli-snapshot.d.ts +398 -0
  53. package/dist/cli-snapshot.d.ts.map +1 -0
  54. package/dist/cli-snapshot.js +45 -0
  55. package/dist/cli-snapshot.js.map +1 -0
  56. package/dist/cli-task-context.d.ts +3 -0
  57. package/dist/cli-task-context.d.ts.map +1 -0
  58. package/dist/cli-task-context.js +112 -0
  59. package/dist/cli-task-context.js.map +1 -0
  60. package/dist/cli.d.ts +3 -0
  61. package/dist/cli.d.ts.map +1 -0
  62. package/dist/cli.js +1004 -0
  63. package/dist/cli.js.map +1 -0
  64. package/dist/graph-packages-lock.d.ts +169 -0
  65. package/dist/graph-packages-lock.d.ts.map +1 -0
  66. package/dist/graph-packages-lock.js +503 -0
  67. package/dist/graph-packages-lock.js.map +1 -0
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +2 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/local/aggregate-preflight.d.ts +12 -0
  73. package/dist/local/aggregate-preflight.d.ts.map +1 -0
  74. package/dist/local/aggregate-preflight.js +22 -0
  75. package/dist/local/aggregate-preflight.js.map +1 -0
  76. package/dist/local/allow-mcp.d.ts +77 -0
  77. package/dist/local/allow-mcp.d.ts.map +1 -0
  78. package/dist/local/allow-mcp.js +394 -0
  79. package/dist/local/allow-mcp.js.map +1 -0
  80. package/dist/local/api-client.d.ts +15 -0
  81. package/dist/local/api-client.d.ts.map +1 -0
  82. package/dist/local/api-client.js +87 -0
  83. package/dist/local/api-client.js.map +1 -0
  84. package/dist/local/app-contract-readers.d.ts +229 -0
  85. package/dist/local/app-contract-readers.d.ts.map +1 -0
  86. package/dist/local/app-contract-readers.js +450 -0
  87. package/dist/local/app-contract-readers.js.map +1 -0
  88. package/dist/local/app-org-reader.d.ts +21 -0
  89. package/dist/local/app-org-reader.d.ts.map +1 -0
  90. package/dist/local/app-org-reader.js +66 -0
  91. package/dist/local/app-org-reader.js.map +1 -0
  92. package/dist/local/app-shell-readers.d.ts +96 -0
  93. package/dist/local/app-shell-readers.d.ts.map +1 -0
  94. package/dist/local/app-shell-readers.js +381 -0
  95. package/dist/local/app-shell-readers.js.map +1 -0
  96. package/dist/local/app-tasks-read.d.ts +202 -0
  97. package/dist/local/app-tasks-read.d.ts.map +1 -0
  98. package/dist/local/app-tasks-read.js +290 -0
  99. package/dist/local/app-tasks-read.js.map +1 -0
  100. package/dist/local/app-worktrees.d.ts +69 -0
  101. package/dist/local/app-worktrees.d.ts.map +1 -0
  102. package/dist/local/app-worktrees.js +554 -0
  103. package/dist/local/app-worktrees.js.map +1 -0
  104. package/dist/local/base-sync-manifest.d.ts +12 -0
  105. package/dist/local/base-sync-manifest.d.ts.map +1 -0
  106. package/dist/local/base-sync-manifest.js +57 -0
  107. package/dist/local/base-sync-manifest.js.map +1 -0
  108. package/dist/local/blast-radius.d.ts +191 -0
  109. package/dist/local/blast-radius.d.ts.map +1 -0
  110. package/dist/local/blast-radius.js +585 -0
  111. package/dist/local/blast-radius.js.map +1 -0
  112. package/dist/local/canonical.d.ts +2 -0
  113. package/dist/local/canonical.d.ts.map +1 -0
  114. package/dist/local/canonical.js +2 -0
  115. package/dist/local/canonical.js.map +1 -0
  116. package/dist/local/config.d.ts +22 -0
  117. package/dist/local/config.d.ts.map +1 -0
  118. package/dist/local/config.js +57 -0
  119. package/dist/local/config.js.map +1 -0
  120. package/dist/local/document-commands.d.ts +163 -0
  121. package/dist/local/document-commands.d.ts.map +1 -0
  122. package/dist/local/document-commands.js +620 -0
  123. package/dist/local/document-commands.js.map +1 -0
  124. package/dist/local/document-embeds.d.ts +21 -0
  125. package/dist/local/document-embeds.d.ts.map +1 -0
  126. package/dist/local/document-embeds.js +38 -0
  127. package/dist/local/document-embeds.js.map +1 -0
  128. package/dist/local/environment-context.d.ts +39 -0
  129. package/dist/local/environment-context.d.ts.map +1 -0
  130. package/dist/local/environment-context.js +193 -0
  131. package/dist/local/environment-context.js.map +1 -0
  132. package/dist/local/environment-exclude.d.ts +7 -0
  133. package/dist/local/environment-exclude.d.ts.map +1 -0
  134. package/dist/local/environment-exclude.js +82 -0
  135. package/dist/local/environment-exclude.js.map +1 -0
  136. package/dist/local/environment-sidecar.d.ts +126 -0
  137. package/dist/local/environment-sidecar.d.ts.map +1 -0
  138. package/dist/local/environment-sidecar.js +442 -0
  139. package/dist/local/environment-sidecar.js.map +1 -0
  140. package/dist/local/environment-switch.d.ts +22 -0
  141. package/dist/local/environment-switch.d.ts.map +1 -0
  142. package/dist/local/environment-switch.js +385 -0
  143. package/dist/local/environment-switch.js.map +1 -0
  144. package/dist/local/exact-remote-projection.d.ts +17 -0
  145. package/dist/local/exact-remote-projection.d.ts.map +1 -0
  146. package/dist/local/exact-remote-projection.js +53 -0
  147. package/dist/local/exact-remote-projection.js.map +1 -0
  148. package/dist/local/experimental/path-object-store.d.ts +66 -0
  149. package/dist/local/experimental/path-object-store.d.ts.map +1 -0
  150. package/dist/local/experimental/path-object-store.js +135 -0
  151. package/dist/local/experimental/path-object-store.js.map +1 -0
  152. package/dist/local/external-worktree-binding.d.ts +21 -0
  153. package/dist/local/external-worktree-binding.d.ts.map +1 -0
  154. package/dist/local/external-worktree-binding.js +56 -0
  155. package/dist/local/external-worktree-binding.js.map +1 -0
  156. package/dist/local/folder-members.d.ts +34 -0
  157. package/dist/local/folder-members.d.ts.map +1 -0
  158. package/dist/local/folder-members.js +168 -0
  159. package/dist/local/folder-members.js.map +1 -0
  160. package/dist/local/git-ref-authority.d.ts +11 -0
  161. package/dist/local/git-ref-authority.d.ts.map +1 -0
  162. package/dist/local/git-ref-authority.js +76 -0
  163. package/dist/local/git-ref-authority.js.map +1 -0
  164. package/dist/local/git.d.ts +88 -0
  165. package/dist/local/git.d.ts.map +1 -0
  166. package/dist/local/git.js +413 -0
  167. package/dist/local/git.js.map +1 -0
  168. package/dist/local/graph-read.d.ts +168 -0
  169. package/dist/local/graph-read.d.ts.map +1 -0
  170. package/dist/local/graph-read.js +360 -0
  171. package/dist/local/graph-read.js.map +1 -0
  172. package/dist/local/graph-sync.d.ts +39 -0
  173. package/dist/local/graph-sync.d.ts.map +1 -0
  174. package/dist/local/graph-sync.js +186 -0
  175. package/dist/local/graph-sync.js.map +1 -0
  176. package/dist/local/guide-commands.d.ts +79 -0
  177. package/dist/local/guide-commands.d.ts.map +1 -0
  178. package/dist/local/guide-commands.js +247 -0
  179. package/dist/local/guide-commands.js.map +1 -0
  180. package/dist/local/health-files.d.ts +24 -0
  181. package/dist/local/health-files.d.ts.map +1 -0
  182. package/dist/local/health-files.js +133 -0
  183. package/dist/local/health-files.js.map +1 -0
  184. package/dist/local/health-inspection.d.ts +12 -0
  185. package/dist/local/health-inspection.d.ts.map +1 -0
  186. package/dist/local/health-inspection.js +407 -0
  187. package/dist/local/health-inspection.js.map +1 -0
  188. package/dist/local/health-policy.d.ts +11 -0
  189. package/dist/local/health-policy.d.ts.map +1 -0
  190. package/dist/local/health-policy.js +257 -0
  191. package/dist/local/health-policy.js.map +1 -0
  192. package/dist/local/health-projection.d.ts +14 -0
  193. package/dist/local/health-projection.d.ts.map +1 -0
  194. package/dist/local/health-projection.js +102 -0
  195. package/dist/local/health-projection.js.map +1 -0
  196. package/dist/local/health-schema.d.ts +338 -0
  197. package/dist/local/health-schema.d.ts.map +1 -0
  198. package/dist/local/health-schema.js +213 -0
  199. package/dist/local/health-schema.js.map +1 -0
  200. package/dist/local/health-store.d.ts +61 -0
  201. package/dist/local/health-store.d.ts.map +1 -0
  202. package/dist/local/health-store.js +218 -0
  203. package/dist/local/health-store.js.map +1 -0
  204. package/dist/local/index.d.ts +66 -0
  205. package/dist/local/index.d.ts.map +1 -0
  206. package/dist/local/index.js +66 -0
  207. package/dist/local/index.js.map +1 -0
  208. package/dist/local/journey-commands.d.ts +65 -0
  209. package/dist/local/journey-commands.d.ts.map +1 -0
  210. package/dist/local/journey-commands.js +138 -0
  211. package/dist/local/journey-commands.js.map +1 -0
  212. package/dist/local/local-org-store.d.ts +46 -0
  213. package/dist/local/local-org-store.d.ts.map +1 -0
  214. package/dist/local/local-org-store.js +132 -0
  215. package/dist/local/local-org-store.js.map +1 -0
  216. package/dist/local/local-org.d.ts +389 -0
  217. package/dist/local/local-org.d.ts.map +1 -0
  218. package/dist/local/local-org.js +855 -0
  219. package/dist/local/local-org.js.map +1 -0
  220. package/dist/local/media-upload.d.ts +5 -0
  221. package/dist/local/media-upload.d.ts.map +1 -0
  222. package/dist/local/media-upload.js +41 -0
  223. package/dist/local/media-upload.js.map +1 -0
  224. package/dist/local/operation.d.ts +155 -0
  225. package/dist/local/operation.d.ts.map +1 -0
  226. package/dist/local/operation.js +340 -0
  227. package/dist/local/operation.js.map +1 -0
  228. package/dist/local/ownership-reader-schema.d.ts +117 -0
  229. package/dist/local/ownership-reader-schema.d.ts.map +1 -0
  230. package/dist/local/ownership-reader-schema.js +105 -0
  231. package/dist/local/ownership-reader-schema.js.map +1 -0
  232. package/dist/local/ownership-reader-worker.d.ts +2 -0
  233. package/dist/local/ownership-reader-worker.d.ts.map +1 -0
  234. package/dist/local/ownership-reader-worker.js +341 -0
  235. package/dist/local/ownership-reader-worker.js.map +1 -0
  236. package/dist/local/ownership-reader.d.ts +10 -0
  237. package/dist/local/ownership-reader.d.ts.map +1 -0
  238. package/dist/local/ownership-reader.js +93 -0
  239. package/dist/local/ownership-reader.js.map +1 -0
  240. package/dist/local/package-uses-check.d.ts +33 -0
  241. package/dist/local/package-uses-check.d.ts.map +1 -0
  242. package/dist/local/package-uses-check.js +62 -0
  243. package/dist/local/package-uses-check.js.map +1 -0
  244. package/dist/local/pending-recovery.d.ts +22 -0
  245. package/dist/local/pending-recovery.d.ts.map +1 -0
  246. package/dist/local/pending-recovery.js +171 -0
  247. package/dist/local/pending-recovery.js.map +1 -0
  248. package/dist/local/portable-commit-store.d.ts +28 -0
  249. package/dist/local/portable-commit-store.d.ts.map +1 -0
  250. package/dist/local/portable-commit-store.js +187 -0
  251. package/dist/local/portable-commit-store.js.map +1 -0
  252. package/dist/local/portable-commit.d.ts +109 -0
  253. package/dist/local/portable-commit.d.ts.map +1 -0
  254. package/dist/local/portable-commit.js +209 -0
  255. package/dist/local/portable-commit.js.map +1 -0
  256. package/dist/local/portable-remote.d.ts +432 -0
  257. package/dist/local/portable-remote.d.ts.map +1 -0
  258. package/dist/local/portable-remote.js +280 -0
  259. package/dist/local/portable-remote.js.map +1 -0
  260. package/dist/local/project-deleted.d.ts +4 -0
  261. package/dist/local/project-deleted.d.ts.map +1 -0
  262. package/dist/local/project-deleted.js +13 -0
  263. package/dist/local/project-deleted.js.map +1 -0
  264. package/dist/local/projection.d.ts +166 -0
  265. package/dist/local/projection.d.ts.map +1 -0
  266. package/dist/local/projection.js +709 -0
  267. package/dist/local/projection.js.map +1 -0
  268. package/dist/local/read-operation.d.ts +3 -0
  269. package/dist/local/read-operation.d.ts.map +1 -0
  270. package/dist/local/read-operation.js +19 -0
  271. package/dist/local/read-operation.js.map +1 -0
  272. package/dist/local/rebuild.d.ts +11 -0
  273. package/dist/local/rebuild.d.ts.map +1 -0
  274. package/dist/local/rebuild.js +42 -0
  275. package/dist/local/rebuild.js.map +1 -0
  276. package/dist/local/remote-base.d.ts +25 -0
  277. package/dist/local/remote-base.d.ts.map +1 -0
  278. package/dist/local/remote-base.js +68 -0
  279. package/dist/local/remote-base.js.map +1 -0
  280. package/dist/local/save-layout-worker.d.ts +19 -0
  281. package/dist/local/save-layout-worker.d.ts.map +1 -0
  282. package/dist/local/save-layout-worker.js +28 -0
  283. package/dist/local/save-layout-worker.js.map +1 -0
  284. package/dist/local/save-layout.d.ts +84 -0
  285. package/dist/local/save-layout.d.ts.map +1 -0
  286. package/dist/local/save-layout.js +221 -0
  287. package/dist/local/save-layout.js.map +1 -0
  288. package/dist/local/scope-impact.d.ts +31 -0
  289. package/dist/local/scope-impact.d.ts.map +1 -0
  290. package/dist/local/scope-impact.js +32 -0
  291. package/dist/local/scope-impact.js.map +1 -0
  292. package/dist/local/source-evidence/filesystem-worker.d.ts +2 -0
  293. package/dist/local/source-evidence/filesystem-worker.d.ts.map +1 -0
  294. package/dist/local/source-evidence/filesystem-worker.js +139 -0
  295. package/dist/local/source-evidence/filesystem-worker.js.map +1 -0
  296. package/dist/local/source-evidence/processes.d.ts +20 -0
  297. package/dist/local/source-evidence/processes.d.ts.map +1 -0
  298. package/dist/local/source-evidence/processes.js +133 -0
  299. package/dist/local/source-evidence/processes.js.map +1 -0
  300. package/dist/local/source-evidence/protocol.d.ts +52 -0
  301. package/dist/local/source-evidence/protocol.d.ts.map +1 -0
  302. package/dist/local/source-evidence/protocol.js +72 -0
  303. package/dist/local/source-evidence/protocol.js.map +1 -0
  304. package/dist/local/source-evidence/reader.d.ts +14 -0
  305. package/dist/local/source-evidence/reader.d.ts.map +1 -0
  306. package/dist/local/source-evidence/reader.js +308 -0
  307. package/dist/local/source-evidence/reader.js.map +1 -0
  308. package/dist/local/source-evidence/schema.d.ts +2504 -0
  309. package/dist/local/source-evidence/schema.d.ts.map +1 -0
  310. package/dist/local/source-evidence/schema.js +99 -0
  311. package/dist/local/source-evidence/schema.js.map +1 -0
  312. package/dist/local/source-policy/loader.d.ts +29 -0
  313. package/dist/local/source-policy/loader.d.ts.map +1 -0
  314. package/dist/local/source-policy/loader.js +209 -0
  315. package/dist/local/source-policy/loader.js.map +1 -0
  316. package/dist/local/source-policy/process.d.ts +7 -0
  317. package/dist/local/source-policy/process.d.ts.map +1 -0
  318. package/dist/local/source-policy/process.js +53 -0
  319. package/dist/local/source-policy/process.js.map +1 -0
  320. package/dist/local/source-policy/protocol.d.ts +27 -0
  321. package/dist/local/source-policy/protocol.d.ts.map +1 -0
  322. package/dist/local/source-policy/protocol.js +48 -0
  323. package/dist/local/source-policy/protocol.js.map +1 -0
  324. package/dist/local/source-policy/worker.d.ts +2 -0
  325. package/dist/local/source-policy/worker.d.ts.map +1 -0
  326. package/dist/local/source-policy/worker.js +100 -0
  327. package/dist/local/source-policy/worker.js.map +1 -0
  328. package/dist/local/state-directory.d.ts +17 -0
  329. package/dist/local/state-directory.d.ts.map +1 -0
  330. package/dist/local/state-directory.js +68 -0
  331. package/dist/local/state-directory.js.map +1 -0
  332. package/dist/local/store-database.d.ts +13 -0
  333. package/dist/local/store-database.d.ts.map +1 -0
  334. package/dist/local/store-database.js +187 -0
  335. package/dist/local/store-database.js.map +1 -0
  336. package/dist/local/store.d.ts +181 -0
  337. package/dist/local/store.d.ts.map +1 -0
  338. package/dist/local/store.js +585 -0
  339. package/dist/local/store.js.map +1 -0
  340. package/dist/local/sync.d.ts +47 -0
  341. package/dist/local/sync.d.ts.map +1 -0
  342. package/dist/local/sync.js +518 -0
  343. package/dist/local/sync.js.map +1 -0
  344. package/dist/local/task-context-inspection.d.ts +23 -0
  345. package/dist/local/task-context-inspection.d.ts.map +1 -0
  346. package/dist/local/task-context-inspection.js +165 -0
  347. package/dist/local/task-context-inspection.js.map +1 -0
  348. package/dist/local/task-context-observations.d.ts +9553 -0
  349. package/dist/local/task-context-observations.d.ts.map +1 -0
  350. package/dist/local/task-context-observations.js +232 -0
  351. package/dist/local/task-context-observations.js.map +1 -0
  352. package/dist/local/task-context-provider.d.ts +18 -0
  353. package/dist/local/task-context-provider.d.ts.map +1 -0
  354. package/dist/local/task-context-provider.js +231 -0
  355. package/dist/local/task-context-provider.js.map +1 -0
  356. package/dist/local/task-context-schema.d.ts +847 -0
  357. package/dist/local/task-context-schema.d.ts.map +1 -0
  358. package/dist/local/task-context-schema.js +305 -0
  359. package/dist/local/task-context-schema.js.map +1 -0
  360. package/dist/local/task-context-source.d.ts +16 -0
  361. package/dist/local/task-context-source.d.ts.map +1 -0
  362. package/dist/local/task-context-source.js +45 -0
  363. package/dist/local/task-context-source.js.map +1 -0
  364. package/dist/local/task-context.d.ts +14 -0
  365. package/dist/local/task-context.d.ts.map +1 -0
  366. package/dist/local/task-context.js +570 -0
  367. package/dist/local/task-context.js.map +1 -0
  368. package/dist/local/test-commands.d.ts +71 -0
  369. package/dist/local/test-commands.d.ts.map +1 -0
  370. package/dist/local/test-commands.js +292 -0
  371. package/dist/local/test-commands.js.map +1 -0
  372. package/dist/local/tree-save.d.ts +117 -0
  373. package/dist/local/tree-save.d.ts.map +1 -0
  374. package/dist/local/tree-save.js +615 -0
  375. package/dist/local/tree-save.js.map +1 -0
  376. package/dist/local/variants.d.ts +125 -0
  377. package/dist/local/variants.d.ts.map +1 -0
  378. package/dist/local/variants.js +267 -0
  379. package/dist/local/variants.js.map +1 -0
  380. package/dist/local/workspace-admission.d.ts +61 -0
  381. package/dist/local/workspace-admission.d.ts.map +1 -0
  382. package/dist/local/workspace-admission.js +112 -0
  383. package/dist/local/workspace-admission.js.map +1 -0
  384. package/dist/local/workspace-authority-guard.d.ts +18 -0
  385. package/dist/local/workspace-authority-guard.d.ts.map +1 -0
  386. package/dist/local/workspace-authority-guard.js +69 -0
  387. package/dist/local/workspace-authority-guard.js.map +1 -0
  388. package/dist/local/workspace-authority.d.ts +33 -0
  389. package/dist/local/workspace-authority.d.ts.map +1 -0
  390. package/dist/local/workspace-authority.js +33 -0
  391. package/dist/local/workspace-authority.js.map +1 -0
  392. package/dist/local/workspace-branch-runtime.d.ts +61 -0
  393. package/dist/local/workspace-branch-runtime.d.ts.map +1 -0
  394. package/dist/local/workspace-branch-runtime.js +216 -0
  395. package/dist/local/workspace-branch-runtime.js.map +1 -0
  396. package/dist/local/workspace-built-content.d.ts +137 -0
  397. package/dist/local/workspace-built-content.d.ts.map +1 -0
  398. package/dist/local/workspace-built-content.js +393 -0
  399. package/dist/local/workspace-built-content.js.map +1 -0
  400. package/dist/local/workspace-claim-status-read.d.ts +53 -0
  401. package/dist/local/workspace-claim-status-read.d.ts.map +1 -0
  402. package/dist/local/workspace-claim-status-read.js +118 -0
  403. package/dist/local/workspace-claim-status-read.js.map +1 -0
  404. package/dist/local/workspace-claim-status.d.ts +172 -0
  405. package/dist/local/workspace-claim-status.d.ts.map +1 -0
  406. package/dist/local/workspace-claim-status.js +721 -0
  407. package/dist/local/workspace-claim-status.js.map +1 -0
  408. package/dist/local/workspace-claim-views.d.ts +45 -0
  409. package/dist/local/workspace-claim-views.d.ts.map +1 -0
  410. package/dist/local/workspace-claim-views.js +45 -0
  411. package/dist/local/workspace-claim-views.js.map +1 -0
  412. package/dist/local/workspace-cli.d.ts +46 -0
  413. package/dist/local/workspace-cli.d.ts.map +1 -0
  414. package/dist/local/workspace-cli.js +1524 -0
  415. package/dist/local/workspace-cli.js.map +1 -0
  416. package/dist/local/workspace-commit-resolver.d.ts +19 -0
  417. package/dist/local/workspace-commit-resolver.d.ts.map +1 -0
  418. package/dist/local/workspace-commit-resolver.js +47 -0
  419. package/dist/local/workspace-commit-resolver.js.map +1 -0
  420. package/dist/local/workspace-decision-store.d.ts +184 -0
  421. package/dist/local/workspace-decision-store.d.ts.map +1 -0
  422. package/dist/local/workspace-decision-store.js +510 -0
  423. package/dist/local/workspace-decision-store.js.map +1 -0
  424. package/dist/local/workspace-environment-runtime.d.ts +107 -0
  425. package/dist/local/workspace-environment-runtime.d.ts.map +1 -0
  426. package/dist/local/workspace-environment-runtime.js +135 -0
  427. package/dist/local/workspace-environment-runtime.js.map +1 -0
  428. package/dist/local/workspace-evidence-drop.d.ts +21 -0
  429. package/dist/local/workspace-evidence-drop.d.ts.map +1 -0
  430. package/dist/local/workspace-evidence-drop.js +58 -0
  431. package/dist/local/workspace-evidence-drop.js.map +1 -0
  432. package/dist/local/workspace-evidence-sign-tool.d.ts +20 -0
  433. package/dist/local/workspace-evidence-sign-tool.d.ts.map +1 -0
  434. package/dist/local/workspace-evidence-sign-tool.js +85 -0
  435. package/dist/local/workspace-evidence-sign-tool.js.map +1 -0
  436. package/dist/local/workspace-evidence-status.d.ts +89 -0
  437. package/dist/local/workspace-evidence-status.d.ts.map +1 -0
  438. package/dist/local/workspace-evidence-status.js +141 -0
  439. package/dist/local/workspace-evidence-status.js.map +1 -0
  440. package/dist/local/workspace-evidence.d.ts +145 -0
  441. package/dist/local/workspace-evidence.d.ts.map +1 -0
  442. package/dist/local/workspace-evidence.js +347 -0
  443. package/dist/local/workspace-evidence.js.map +1 -0
  444. package/dist/local/workspace-graph-store.d.ts +32 -0
  445. package/dist/local/workspace-graph-store.d.ts.map +1 -0
  446. package/dist/local/workspace-graph-store.js +249 -0
  447. package/dist/local/workspace-graph-store.js.map +1 -0
  448. package/dist/local/workspace-handoff.d.ts +32 -0
  449. package/dist/local/workspace-handoff.d.ts.map +1 -0
  450. package/dist/local/workspace-handoff.js +144 -0
  451. package/dist/local/workspace-handoff.js.map +1 -0
  452. package/dist/local/workspace-history-journal.d.ts +70 -0
  453. package/dist/local/workspace-history-journal.d.ts.map +1 -0
  454. package/dist/local/workspace-history-journal.js +131 -0
  455. package/dist/local/workspace-history-journal.js.map +1 -0
  456. package/dist/local/workspace-history-store.d.ts +98 -0
  457. package/dist/local/workspace-history-store.d.ts.map +1 -0
  458. package/dist/local/workspace-history-store.js +632 -0
  459. package/dist/local/workspace-history-store.js.map +1 -0
  460. package/dist/local/workspace-history-types.d.ts +307 -0
  461. package/dist/local/workspace-history-types.d.ts.map +1 -0
  462. package/dist/local/workspace-history-types.js +2 -0
  463. package/dist/local/workspace-history-types.js.map +1 -0
  464. package/dist/local/workspace-integration-runtime.d.ts +48 -0
  465. package/dist/local/workspace-integration-runtime.d.ts.map +1 -0
  466. package/dist/local/workspace-integration-runtime.js +419 -0
  467. package/dist/local/workspace-integration-runtime.js.map +1 -0
  468. package/dist/local/workspace-lock.d.ts +7 -0
  469. package/dist/local/workspace-lock.d.ts.map +1 -0
  470. package/dist/local/workspace-lock.js +211 -0
  471. package/dist/local/workspace-lock.js.map +1 -0
  472. package/dist/local/workspace-merge.d.ts +77 -0
  473. package/dist/local/workspace-merge.d.ts.map +1 -0
  474. package/dist/local/workspace-merge.js +703 -0
  475. package/dist/local/workspace-merge.js.map +1 -0
  476. package/dist/local/workspace-mixed-history.d.ts +33 -0
  477. package/dist/local/workspace-mixed-history.d.ts.map +1 -0
  478. package/dist/local/workspace-mixed-history.js +107 -0
  479. package/dist/local/workspace-mixed-history.js.map +1 -0
  480. package/dist/local/workspace-overlap-allocation.d.ts +33 -0
  481. package/dist/local/workspace-overlap-allocation.d.ts.map +1 -0
  482. package/dist/local/workspace-overlap-allocation.js +69 -0
  483. package/dist/local/workspace-overlap-allocation.js.map +1 -0
  484. package/dist/local/workspace-overlap-impact.d.ts +46 -0
  485. package/dist/local/workspace-overlap-impact.d.ts.map +1 -0
  486. package/dist/local/workspace-overlap-impact.js +162 -0
  487. package/dist/local/workspace-overlap-impact.js.map +1 -0
  488. package/dist/local/workspace-overlap.d.ts +109 -0
  489. package/dist/local/workspace-overlap.d.ts.map +1 -0
  490. package/dist/local/workspace-overlap.js +327 -0
  491. package/dist/local/workspace-overlap.js.map +1 -0
  492. package/dist/local/workspace-paths.d.ts +4 -0
  493. package/dist/local/workspace-paths.d.ts.map +1 -0
  494. package/dist/local/workspace-paths.js +8 -0
  495. package/dist/local/workspace-paths.js.map +1 -0
  496. package/dist/local/workspace-pick-runtime.d.ts +70 -0
  497. package/dist/local/workspace-pick-runtime.d.ts.map +1 -0
  498. package/dist/local/workspace-pick-runtime.js +177 -0
  499. package/dist/local/workspace-pick-runtime.js.map +1 -0
  500. package/dist/local/workspace-pick-store.d.ts +33 -0
  501. package/dist/local/workspace-pick-store.d.ts.map +1 -0
  502. package/dist/local/workspace-pick-store.js +43 -0
  503. package/dist/local/workspace-pick-store.js.map +1 -0
  504. package/dist/local/workspace-pick.d.ts +73 -0
  505. package/dist/local/workspace-pick.d.ts.map +1 -0
  506. package/dist/local/workspace-pick.js +253 -0
  507. package/dist/local/workspace-pick.js.map +1 -0
  508. package/dist/local/workspace-portable-authoring.d.ts +43 -0
  509. package/dist/local/workspace-portable-authoring.d.ts.map +1 -0
  510. package/dist/local/workspace-portable-authoring.js +128 -0
  511. package/dist/local/workspace-portable-authoring.js.map +1 -0
  512. package/dist/local/workspace-prune.d.ts +63 -0
  513. package/dist/local/workspace-prune.d.ts.map +1 -0
  514. package/dist/local/workspace-prune.js +267 -0
  515. package/dist/local/workspace-prune.js.map +1 -0
  516. package/dist/local/workspace-remote-fetch.d.ts +82 -0
  517. package/dist/local/workspace-remote-fetch.d.ts.map +1 -0
  518. package/dist/local/workspace-remote-fetch.js +409 -0
  519. package/dist/local/workspace-remote-fetch.js.map +1 -0
  520. package/dist/local/workspace-remote-provider.d.ts +97 -0
  521. package/dist/local/workspace-remote-provider.d.ts.map +1 -0
  522. package/dist/local/workspace-remote-provider.js +400 -0
  523. package/dist/local/workspace-remote-provider.js.map +1 -0
  524. package/dist/local/workspace-remote-pull-request-journal.d.ts +49 -0
  525. package/dist/local/workspace-remote-pull-request-journal.d.ts.map +1 -0
  526. package/dist/local/workspace-remote-pull-request-journal.js +63 -0
  527. package/dist/local/workspace-remote-pull-request-journal.js.map +1 -0
  528. package/dist/local/workspace-remote-pull-request.d.ts +36 -0
  529. package/dist/local/workspace-remote-pull-request.d.ts.map +1 -0
  530. package/dist/local/workspace-remote-pull-request.js +158 -0
  531. package/dist/local/workspace-remote-pull-request.js.map +1 -0
  532. package/dist/local/workspace-remote-push.d.ts +88 -0
  533. package/dist/local/workspace-remote-push.d.ts.map +1 -0
  534. package/dist/local/workspace-remote-push.js +297 -0
  535. package/dist/local/workspace-remote-push.js.map +1 -0
  536. package/dist/local/workspace-remote-topic-journal.d.ts +56 -0
  537. package/dist/local/workspace-remote-topic-journal.d.ts.map +1 -0
  538. package/dist/local/workspace-remote-topic-journal.js +121 -0
  539. package/dist/local/workspace-remote-topic-journal.js.map +1 -0
  540. package/dist/local/workspace-remote-topic.d.ts +45 -0
  541. package/dist/local/workspace-remote-topic.d.ts.map +1 -0
  542. package/dist/local/workspace-remote-topic.js +204 -0
  543. package/dist/local/workspace-remote-topic.js.map +1 -0
  544. package/dist/local/workspace-remote-transfer.d.ts +76 -0
  545. package/dist/local/workspace-remote-transfer.d.ts.map +1 -0
  546. package/dist/local/workspace-remote-transfer.js +270 -0
  547. package/dist/local/workspace-remote-transfer.js.map +1 -0
  548. package/dist/local/workspace-resolution.d.ts +145 -0
  549. package/dist/local/workspace-resolution.d.ts.map +1 -0
  550. package/dist/local/workspace-resolution.js +479 -0
  551. package/dist/local/workspace-resolution.js.map +1 -0
  552. package/dist/local/workspace-resolver-provider.d.ts +72 -0
  553. package/dist/local/workspace-resolver-provider.d.ts.map +1 -0
  554. package/dist/local/workspace-resolver-provider.js +312 -0
  555. package/dist/local/workspace-resolver-provider.js.map +1 -0
  556. package/dist/local/workspace-runtime-handoff.d.ts +52 -0
  557. package/dist/local/workspace-runtime-handoff.d.ts.map +1 -0
  558. package/dist/local/workspace-runtime-handoff.js +237 -0
  559. package/dist/local/workspace-runtime-handoff.js.map +1 -0
  560. package/dist/local/workspace-runtime-lease.d.ts +26 -0
  561. package/dist/local/workspace-runtime-lease.d.ts.map +1 -0
  562. package/dist/local/workspace-runtime-lease.js +123 -0
  563. package/dist/local/workspace-runtime-lease.js.map +1 -0
  564. package/dist/local/workspace-runtime.d.ts +690 -0
  565. package/dist/local/workspace-runtime.d.ts.map +1 -0
  566. package/dist/local/workspace-runtime.js +2124 -0
  567. package/dist/local/workspace-runtime.js.map +1 -0
  568. package/dist/local/workspace-scope.d.ts +70 -0
  569. package/dist/local/workspace-scope.d.ts.map +1 -0
  570. package/dist/local/workspace-scope.js +206 -0
  571. package/dist/local/workspace-scope.js.map +1 -0
  572. package/dist/local/workspace-sources.d.ts +159 -0
  573. package/dist/local/workspace-sources.d.ts.map +1 -0
  574. package/dist/local/workspace-sources.js +570 -0
  575. package/dist/local/workspace-sources.js.map +1 -0
  576. package/dist/local/workspace-store-database.d.ts +5 -0
  577. package/dist/local/workspace-store-database.d.ts.map +1 -0
  578. package/dist/local/workspace-store-database.js +726 -0
  579. package/dist/local/workspace-store-database.js.map +1 -0
  580. package/dist/local/workspace-store.d.ts +261 -0
  581. package/dist/local/workspace-store.d.ts.map +1 -0
  582. package/dist/local/workspace-store.js +831 -0
  583. package/dist/local/workspace-store.js.map +1 -0
  584. package/dist/local/workspace-topology-runtime.d.ts +27 -0
  585. package/dist/local/workspace-topology-runtime.d.ts.map +1 -0
  586. package/dist/local/workspace-topology-runtime.js +396 -0
  587. package/dist/local/workspace-topology-runtime.js.map +1 -0
  588. package/dist/local/workspace-topology.d.ts +140 -0
  589. package/dist/local/workspace-topology.d.ts.map +1 -0
  590. package/dist/local/workspace-topology.js +359 -0
  591. package/dist/local/workspace-topology.js.map +1 -0
  592. package/dist/local/workspace-upstream-inspection.d.ts +60 -0
  593. package/dist/local/workspace-upstream-inspection.d.ts.map +1 -0
  594. package/dist/local/workspace-upstream-inspection.js +189 -0
  595. package/dist/local/workspace-upstream-inspection.js.map +1 -0
  596. package/dist/local/workspace-upstream-runtime.d.ts +91 -0
  597. package/dist/local/workspace-upstream-runtime.d.ts.map +1 -0
  598. package/dist/local/workspace-upstream-runtime.js +270 -0
  599. package/dist/local/workspace-upstream-runtime.js.map +1 -0
  600. package/dist/local/workspace-upstream-store.d.ts +51 -0
  601. package/dist/local/workspace-upstream-store.d.ts.map +1 -0
  602. package/dist/local/workspace-upstream-store.js +475 -0
  603. package/dist/local/workspace-upstream-store.js.map +1 -0
  604. package/dist/local/workspace-viewer-server.d.ts +136 -0
  605. package/dist/local/workspace-viewer-server.d.ts.map +1 -0
  606. package/dist/local/workspace-viewer-server.js +1097 -0
  607. package/dist/local/workspace-viewer-server.js.map +1 -0
  608. package/dist/local/workspace-viewer-snapshot.d.ts +49 -0
  609. package/dist/local/workspace-viewer-snapshot.d.ts.map +1 -0
  610. package/dist/local/workspace-viewer-snapshot.js +91 -0
  611. package/dist/local/workspace-viewer-snapshot.js.map +1 -0
  612. package/dist/local/worktree-projection.d.ts +76 -0
  613. package/dist/local/worktree-projection.d.ts.map +1 -0
  614. package/dist/local/worktree-projection.js +470 -0
  615. package/dist/local/worktree-projection.js.map +1 -0
  616. package/dist/mcp/client-identity.d.ts +8 -0
  617. package/dist/mcp/client-identity.d.ts.map +1 -0
  618. package/dist/mcp/client-identity.js +33 -0
  619. package/dist/mcp/client-identity.js.map +1 -0
  620. package/dist/mcp/graph-to-code.d.ts +53 -0
  621. package/dist/mcp/graph-to-code.d.ts.map +1 -0
  622. package/dist/mcp/graph-to-code.js +1624 -0
  623. package/dist/mcp/graph-to-code.js.map +1 -0
  624. package/dist/mcp/index.d.ts +3 -0
  625. package/dist/mcp/index.d.ts.map +1 -0
  626. package/dist/mcp/index.js +3 -0
  627. package/dist/mcp/index.js.map +1 -0
  628. package/dist/mcp/stdio/graph-to-code.d.ts +3 -0
  629. package/dist/mcp/stdio/graph-to-code.d.ts.map +1 -0
  630. package/dist/mcp/stdio/graph-to-code.js +55 -0
  631. package/dist/mcp/stdio/graph-to-code.js.map +1 -0
  632. package/dist/mcp/stdio/worktree.d.ts +3 -0
  633. package/dist/mcp/stdio/worktree.d.ts.map +1 -0
  634. package/dist/mcp/stdio/worktree.js +67 -0
  635. package/dist/mcp/stdio/worktree.js.map +1 -0
  636. package/dist/mcp/worktree-claim-status.d.ts +162 -0
  637. package/dist/mcp/worktree-claim-status.d.ts.map +1 -0
  638. package/dist/mcp/worktree-claim-status.js +113 -0
  639. package/dist/mcp/worktree-claim-status.js.map +1 -0
  640. package/dist/mcp/worktree-dispatch.d.ts +13 -0
  641. package/dist/mcp/worktree-dispatch.d.ts.map +1 -0
  642. package/dist/mcp/worktree-dispatch.js +52 -0
  643. package/dist/mcp/worktree-dispatch.js.map +1 -0
  644. package/dist/mcp/worktree-errors.d.ts +15 -0
  645. package/dist/mcp/worktree-errors.d.ts.map +1 -0
  646. package/dist/mcp/worktree-errors.js +17 -0
  647. package/dist/mcp/worktree-errors.js.map +1 -0
  648. package/dist/mcp/worktree-health.d.ts +12 -0
  649. package/dist/mcp/worktree-health.d.ts.map +1 -0
  650. package/dist/mcp/worktree-health.js +32 -0
  651. package/dist/mcp/worktree-health.js.map +1 -0
  652. package/dist/mcp/worktree-results.d.ts +15 -0
  653. package/dist/mcp/worktree-results.d.ts.map +1 -0
  654. package/dist/mcp/worktree-results.js +12 -0
  655. package/dist/mcp/worktree-results.js.map +1 -0
  656. package/dist/mcp/worktree-task-context.d.ts +57 -0
  657. package/dist/mcp/worktree-task-context.d.ts.map +1 -0
  658. package/dist/mcp/worktree-task-context.js +45 -0
  659. package/dist/mcp/worktree-task-context.js.map +1 -0
  660. package/dist/mcp/worktree-tools.d.ts +2648 -0
  661. package/dist/mcp/worktree-tools.d.ts.map +1 -0
  662. package/dist/mcp/worktree-tools.js +192 -0
  663. package/dist/mcp/worktree-tools.js.map +1 -0
  664. package/dist/mcp/worktree.d.ts +33 -0
  665. package/dist/mcp/worktree.d.ts.map +1 -0
  666. package/dist/mcp/worktree.js +551 -0
  667. package/dist/mcp/worktree.js.map +1 -0
  668. package/dist/own-package.d.ts +13 -0
  669. package/dist/own-package.d.ts.map +1 -0
  670. package/dist/own-package.js +32 -0
  671. package/dist/own-package.js.map +1 -0
  672. package/dist/packages-browse.d.ts +107 -0
  673. package/dist/packages-browse.d.ts.map +1 -0
  674. package/dist/packages-browse.js +646 -0
  675. package/dist/packages-browse.js.map +1 -0
  676. package/dist/packages-cli.d.ts +8 -0
  677. package/dist/packages-cli.d.ts.map +1 -0
  678. package/dist/packages-cli.js +184 -0
  679. package/dist/packages-cli.js.map +1 -0
  680. package/dist/packages-uses.d.ts +46 -0
  681. package/dist/packages-uses.d.ts.map +1 -0
  682. package/dist/packages-uses.js +737 -0
  683. package/dist/packages-uses.js.map +1 -0
  684. package/dist/portable.d.ts +7 -0
  685. package/dist/portable.d.ts.map +1 -0
  686. package/dist/portable.js +14 -0
  687. package/dist/portable.js.map +1 -0
  688. package/dist/quiet-warnings.d.ts +3 -0
  689. package/dist/quiet-warnings.d.ts.map +1 -0
  690. package/dist/quiet-warnings.js +21 -0
  691. package/dist/quiet-warnings.js.map +1 -0
  692. package/dist/view-seam.d.ts +62 -0
  693. package/dist/view-seam.d.ts.map +1 -0
  694. package/dist/view-seam.js +70 -0
  695. package/dist/view-seam.js.map +1 -0
  696. package/generated/graph-packages/index.json +5 -0
  697. package/graph-packages.lock.json +4 -0
  698. package/package.json +81 -0
  699. package/viewer/assets/index-BZKGDARF.css +1 -0
  700. package/viewer/assets/index-DWu0CbZZ.js +272 -0
  701. package/viewer/index.html +13 -0
@@ -0,0 +1,615 @@
1
+ import { GraphApiError, finalizeWorktreeTreeSave, getWorktreeSaveTransactionStatus, negotiateWorktreeSync, prepareWorktreeTreeSave, readWorktreeTreeSaveFinalizeAnswer, readWorktreeTreeSaveMissing, uploadWorktreeTreeSaveObjects } from '@software-dlc/graph/client';
2
+ import { buildGraphSyncManifestTree, canonicalGraphSyncJson, GRAPH_SEMANTIC_ANNOTATION_SCHEMA_VERSIONS, GRAPH_VARIANT_SET_SCHEMA_VERSIONS, graph_sync_hash_schema, graph_sync_manifest_schema, GraphSyncManifestTreeError, WORKTREE_TREE_SAVE_MISSING_PAGE_BOUND, WORKTREE_TREE_SAVE_UPLOAD_BOUND, worktree_tree_save_prepare_request_schema } from '@software-dlc/graph/schema';
3
+ import { readVerifiedSyncObject } from './graph-sync.js';
4
+ import { OperationRefusalError, checkOperation, currentOperation, markOperationDispatched, markOperationResult, setOperationPhase } from './operation.js';
5
+ /**
6
+ * The client side of a manifest version 2 worktree save
7
+ * (docs/specs/bulk-graph-transfer.md, rollout step 2). The save opens from
8
+ * roots alone, asks which manifest nodes and objects the server lacks,
9
+ * uploads those, and finalizes, so no request grows with the change.
10
+ */
11
+ export const TREE_SAVE_PROTOCOL = 'graph-sync-v2';
12
+ // Below the 4.5 MB the hosted platform accepts for one request.
13
+ const UPLOAD_REQUEST_MAX_BYTES = 3 * 1_024 * 1_024;
14
+ // The server's bound on what one save transaction holds
15
+ // (upload_graph_worktree_tree_save_objects).
16
+ const TRANSACTION_UPLOAD_MAX_BYTES = 16 * 1_024 * 1_024;
17
+ // Finalize names what its walk of the tree found absent; each answer is
18
+ // followed by one upload.
19
+ const FINALIZE_ATTEMPTS = 3;
20
+ // What the hosted platform answers for a request it cut off for time.
21
+ const UPLOAD_TIMEOUT_STATUSES = new Set([408, 504]);
22
+ // An upload whose connection the server closed is sent again this many times
23
+ // in all, waiting 1, 2, 4 and 8 s before each: the platform closes kept-alive
24
+ // connections between requests, and staging closed every new connection for
25
+ // longer than three immediate attempts took (sba-proof runs 3e and 3g).
26
+ const UPLOAD_CONNECTION_ATTEMPTS = 5;
27
+ const UPLOAD_CONNECTION_FIRST_WAIT_MS = 1_000;
28
+ const CLOSED_CONNECTION_CODES = new Set(['UND_ERR_SOCKET', 'ECONNRESET']);
29
+ // How long a save waits for a background finalize before it stops and leaves
30
+ // `sdlc sync` to resume the wait; the worker's three attempts can take longer.
31
+ const FINALIZE_POLL_LIMIT_MS = 6 * 60 * 1_000;
32
+ const FINALIZE_POLL_FIRST_MS = 1_000;
33
+ const FINALIZE_POLL_MAX_MS = 5_000;
34
+ // How often a wait asks for finalize again. An attempt released for retry is
35
+ // claimed only when someone asks (or a cron does, where one runs); asking
36
+ // while an attempt holds the lease does nothing.
37
+ const FINALIZE_REREQUEST_MS = 30_000;
38
+ /** The exit status of a save left finalizing in the background (EX_TEMPFAIL). */
39
+ export const TREE_SAVE_STILL_FINALIZING_EXIT_CODE = 75;
40
+ /**
41
+ * The server is still finalizing the save in the background. Nothing is lost:
42
+ * the change stays pending, and `sdlc sync` resumes by polling.
43
+ */
44
+ export class TreeSaveStillFinalizingError extends Error {
45
+ exit_code = TREE_SAVE_STILL_FINALIZING_EXIT_CODE;
46
+ transaction_id;
47
+ constructor(transaction_id) {
48
+ super(`The server is still finalizing save transaction ${transaction_id}. The change stays pending; run sdlc sync to wait for it.`);
49
+ this.name = 'TreeSaveStillFinalizingError';
50
+ this.transaction_id = transaction_id;
51
+ }
52
+ }
53
+ export function operationRequestOptions(options) {
54
+ checkOperation();
55
+ const signal = currentOperation()?.signal;
56
+ if (!signal)
57
+ return options;
58
+ return {
59
+ ...options,
60
+ signal: options?.signal ? AbortSignal.any([signal, options.signal]) : signal
61
+ };
62
+ }
63
+ function numberOrNull(value) {
64
+ return typeof value === 'number' && Number.isSafeInteger(value)
65
+ ? value
66
+ : null;
67
+ }
68
+ /** The node layout versions a sync answer declares; [] from an older server. */
69
+ function saveLayoutVersions(response) {
70
+ return Array.isArray(response.supported_save_layout_versions)
71
+ ? response.supported_save_layout_versions.filter((version) => Number.isSafeInteger(version))
72
+ : [];
73
+ }
74
+ /**
75
+ * Asks the server which manifest versions a save may use, offering the base
76
+ * the session holds so an unchanged worktree answers with no graph content.
77
+ * Returns the base's version 2 root when the save can use version 2. The
78
+ * response is read field by field: a server may add keys this client does
79
+ * not know.
80
+ */
81
+ export async function negotiateTreeSave(input) {
82
+ let response;
83
+ try {
84
+ response = (await negotiateWorktreeSync(input.client, input.worktree_id, {
85
+ have_sync_revision: input.sync_revision,
86
+ have_sync_root_hash: input.sync_root_hash,
87
+ supported_manifest_versions: [1, 2],
88
+ supported_semantic_annotation_schema_versions: [
89
+ ...GRAPH_SEMANTIC_ANNOTATION_SCHEMA_VERSIONS
90
+ ],
91
+ supported_graph_variant_set_schema_versions: [
92
+ ...GRAPH_VARIANT_SET_SCHEMA_VERSIONS
93
+ ]
94
+ }, operationRequestOptions(input.request_options)));
95
+ }
96
+ catch (error) {
97
+ // A save that needs no negotiation must not fail on one: the server
98
+ // refused the question, so the save goes on with version 1. A transport
99
+ // failure or a cancellation would fail version 1 too, and is thrown.
100
+ if (!(error instanceof GraphApiError))
101
+ throw error;
102
+ return {
103
+ available: false,
104
+ reason: 'negotiation_failed',
105
+ status: error.status,
106
+ detail: error.reason
107
+ };
108
+ }
109
+ const versions = Array.isArray(response?.supported_manifest_versions)
110
+ ? response.supported_manifest_versions
111
+ : [];
112
+ if (!response)
113
+ return { available: false, reason: 'not_advertised' };
114
+ const supported_save_layout_versions = saveLayoutVersions(response);
115
+ if (!versions.includes(2)) {
116
+ return {
117
+ available: false,
118
+ reason: 'not_advertised',
119
+ supported_save_layout_versions
120
+ };
121
+ }
122
+ if (response.sync_revision !== input.sync_revision ||
123
+ response.sync_root_hash !== input.sync_root_hash) {
124
+ return {
125
+ available: false,
126
+ reason: 'worktree_moved',
127
+ supported_save_layout_versions,
128
+ current_revision: numberOrNull(response.revision),
129
+ current_sync_revision: numberOrNull(response.sync_revision)
130
+ };
131
+ }
132
+ const tree_root_hash = graph_sync_hash_schema.safeParse(response.sync_tree_root_hash);
133
+ if (!tree_root_hash.success) {
134
+ const unavailable = response.sync_tree_unavailable;
135
+ // The server gives neither a root nor a reason when it could not build
136
+ // the root this time; the next save asks again.
137
+ if (typeof unavailable !== 'object' || unavailable === null) {
138
+ return {
139
+ available: false,
140
+ reason: 'tree_root_unavailable',
141
+ supported_save_layout_versions
142
+ };
143
+ }
144
+ return {
145
+ available: false,
146
+ reason: 'state_entity_id',
147
+ supported_save_layout_versions,
148
+ entity_id: 'entity_id' in unavailable && typeof unavailable.entity_id === 'string'
149
+ ? unavailable.entity_id
150
+ : null
151
+ };
152
+ }
153
+ return {
154
+ available: true,
155
+ base_tree_root_hash: tree_root_hash.data,
156
+ supported_save_layout_versions
157
+ };
158
+ }
159
+ /**
160
+ * The prepare request a resumed save sends again. A save journaled with
161
+ * node_layouts asks the server again first and leaves them out only when the
162
+ * server answers without declaring the capability, so a server rolled back to
163
+ * a version without it, whose strict schema refuses the field, does not refuse
164
+ * the save on every sync. A server that did not answer keeps them: a
165
+ * transient failure must neither leave finalize the whole graph to lay out
166
+ * nor change the request hash of a transaction the server may already hold.
167
+ */
168
+ async function prepareRequestToResend(input) {
169
+ const { node_layouts, ...without_layouts } = input.payload.prepare_request;
170
+ if (!node_layouts)
171
+ return input.payload.prepare_request;
172
+ const negotiated = await negotiateTreeSave({
173
+ client: input.client,
174
+ worktree_id: input.worktree_id,
175
+ sync_revision: input.payload.prepare_request.expected_sync_revision,
176
+ sync_root_hash: input.payload.base_sync_root_hash,
177
+ request_options: input.request_options
178
+ });
179
+ const declared = negotiated.supported_save_layout_versions;
180
+ if (declared === undefined)
181
+ return input.payload.prepare_request;
182
+ return declared.includes(1) ? input.payload.prepare_request : without_layouts;
183
+ }
184
+ /**
185
+ * Builds the base and target trees and names what the save changes. The base
186
+ * tree's root must be the one the server gave for the same state: the two
187
+ * parties compute a tree from its bindings alone.
188
+ */
189
+ export function planTreeSave(input) {
190
+ const base_tree = buildGraphSyncManifestTree(input.base_manifest.bindings);
191
+ if (base_tree.root_hash !== input.base_tree_root_hash) {
192
+ throw new OperationRefusalError(`The server gives ${input.base_tree_root_hash} as the manifest version 2 root of the worktree's state, and this client computes ${base_tree.root_hash} from the same bindings. Nothing was saved.`);
193
+ }
194
+ let target_tree;
195
+ try {
196
+ target_tree = buildGraphSyncManifestTree(input.target_manifest.bindings);
197
+ }
198
+ catch (error) {
199
+ if (!(error instanceof GraphSyncManifestTreeError))
200
+ throw error;
201
+ return {
202
+ available: false,
203
+ reason: 'target_entity_id',
204
+ detail: error.message
205
+ };
206
+ }
207
+ const changed_manifest_node_hashes = [...target_tree.nodes.keys()]
208
+ .filter((hash) => !base_tree.nodes.has(hash))
209
+ .sort();
210
+ const changed_object_hashes = [
211
+ ...new Set(input.changed_bindings.map((binding) => binding.object_hash))
212
+ ].sort();
213
+ // The server holds a transaction's uploads up to a bound, counting what it
214
+ // does not already store. Counting every changed object and node errs on
215
+ // the side of refusing here, before anything is journaled, rather than
216
+ // leaving a change pending that every sync would upload again.
217
+ const upload_bytes = changed_object_hashes.reduce((total, hash) => total + (input.object_byte_counts.get(hash) ?? 0), 0) +
218
+ changed_manifest_node_hashes.reduce((total, hash) => total +
219
+ Buffer.byteLength(canonicalGraphSyncJson(target_tree.nodes.get(hash))), 0);
220
+ if (upload_bytes > TRANSACTION_UPLOAD_MAX_BYTES) {
221
+ throw new OperationRefusalError(`This save uploads up to ${upload_bytes} bytes of objects and manifest nodes, above the ${TRANSACTION_UPLOAD_MAX_BYTES}-byte bound the server holds for one save. Save the graph in parts. Nothing was saved.`);
222
+ }
223
+ return {
224
+ available: true,
225
+ base_tree_root_hash: base_tree.root_hash,
226
+ target_tree_root_hash: target_tree.root_hash,
227
+ changed_manifest_node_hashes,
228
+ changed_object_hashes
229
+ };
230
+ }
231
+ export function parseTreeSavePayload(payload_json) {
232
+ const parsed = JSON.parse(payload_json);
233
+ if (typeof parsed !== 'object' ||
234
+ parsed === null ||
235
+ Array.isArray(parsed) ||
236
+ !('protocol' in parsed) ||
237
+ parsed.protocol !== TREE_SAVE_PROTOCOL) {
238
+ return null;
239
+ }
240
+ const value = parsed;
241
+ const hashes = graph_sync_hash_schema.array();
242
+ return {
243
+ protocol: TREE_SAVE_PROTOCOL,
244
+ prepare_request: worktree_tree_save_prepare_request_schema.parse(value.prepare_request),
245
+ base_sync_root_hash: graph_sync_hash_schema.parse(value.base_sync_root_hash),
246
+ changed_manifest_node_hashes: hashes.parse(value.changed_manifest_node_hashes),
247
+ changed_object_hashes: hashes.parse(value.changed_object_hashes),
248
+ target_manifest: graph_sync_manifest_schema.parse(value.target_manifest)
249
+ };
250
+ }
251
+ /** Asks about the hashes a page at a time, manifest nodes first. */
252
+ async function readMissing(input) {
253
+ const missing = { manifest_node_hashes: [], object_hashes: [] };
254
+ const { manifest_node_hashes, object_hashes } = input.hashes;
255
+ let node_offset = 0;
256
+ let object_offset = 0;
257
+ while (node_offset < manifest_node_hashes.length ||
258
+ object_offset < object_hashes.length) {
259
+ const node_page = manifest_node_hashes.slice(node_offset, node_offset + WORKTREE_TREE_SAVE_MISSING_PAGE_BOUND);
260
+ const object_page = object_hashes.slice(object_offset, object_offset + WORKTREE_TREE_SAVE_MISSING_PAGE_BOUND - node_page.length);
261
+ node_offset += node_page.length;
262
+ object_offset += object_page.length;
263
+ const answer = await readWorktreeTreeSaveMissing(input.client, input.worktree_id, input.transaction_id, { manifest_node_hashes: node_page, object_hashes: object_page }, operationRequestOptions(input.request_options));
264
+ missing.manifest_node_hashes.push(...answer.missing_manifest_node_hashes);
265
+ missing.object_hashes.push(...answer.missing_object_hashes);
266
+ }
267
+ return missing;
268
+ }
269
+ /** A fetch undici rejected because the server closed its connection. */
270
+ function closedConnection(error) {
271
+ const cause = error instanceof TypeError ? error.cause : undefined;
272
+ const code = cause && typeof cause === 'object' && 'code' in cause
273
+ ? cause.code
274
+ : undefined;
275
+ return typeof code === 'string' && CLOSED_CONNECTION_CODES.has(code);
276
+ }
277
+ /**
278
+ * Uploads manifest nodes and objects in requests bounded by entry count and
279
+ * by bytes. An entry larger than the byte bound travels alone.
280
+ */
281
+ async function upload(input) {
282
+ let manifest_nodes = [];
283
+ let objects = [];
284
+ let bytes = 0;
285
+ // A request the platform cut off for time is sent again in halves, down to
286
+ // one entry, and one whose connection the server closed is sent again
287
+ // whole after a wait: the server holds what an earlier request uploaded.
288
+ const send = async (batch_nodes, batch_objects, attempt = 1) => {
289
+ markOperationDispatched();
290
+ const request_options = operationRequestOptions(input.request_options);
291
+ try {
292
+ await uploadWorktreeTreeSaveObjects(input.client, input.worktree_id, input.transaction_id, { objects: batch_objects, manifest_nodes: batch_nodes }, request_options);
293
+ }
294
+ catch (error) {
295
+ if (closedConnection(error) && attempt < UPLOAD_CONNECTION_ATTEMPTS) {
296
+ await sleep(UPLOAD_CONNECTION_FIRST_WAIT_MS * 2 ** (attempt - 1), request_options?.signal);
297
+ await send(batch_nodes, batch_objects, attempt + 1);
298
+ return;
299
+ }
300
+ const entries = batch_nodes.length + batch_objects.length;
301
+ if (!(error instanceof GraphApiError) ||
302
+ !UPLOAD_TIMEOUT_STATUSES.has(error.status) ||
303
+ entries <= 1) {
304
+ throw error;
305
+ }
306
+ const half = Math.ceil(entries / 2);
307
+ const node_half = Math.min(half, batch_nodes.length);
308
+ await send(batch_nodes.slice(0, node_half), batch_objects.slice(0, half - node_half));
309
+ await send(batch_nodes.slice(node_half), batch_objects.slice(half - node_half));
310
+ }
311
+ };
312
+ const flush = async () => {
313
+ if (manifest_nodes.length + objects.length === 0)
314
+ return;
315
+ await send(manifest_nodes, objects);
316
+ manifest_nodes = [];
317
+ objects = [];
318
+ bytes = 0;
319
+ };
320
+ const reserve = async (entry) => {
321
+ const entry_bytes = Buffer.byteLength(JSON.stringify(entry)) + 1;
322
+ if (manifest_nodes.length + objects.length >=
323
+ WORKTREE_TREE_SAVE_UPLOAD_BOUND ||
324
+ bytes + entry_bytes > UPLOAD_REQUEST_MAX_BYTES) {
325
+ await flush();
326
+ }
327
+ bytes += entry_bytes;
328
+ };
329
+ for (const node_hash of [
330
+ ...new Set(input.hashes.manifest_node_hashes)
331
+ ].sort()) {
332
+ const node = input.tree.nodes.get(node_hash);
333
+ if (!node) {
334
+ throw new Error(`The server asked for manifest node ${node_hash}, which the save's tree does not hold.`);
335
+ }
336
+ const entry = { node_hash, node };
337
+ await reserve(entry);
338
+ manifest_nodes.push(entry);
339
+ }
340
+ for (const object_hash of [...new Set(input.hashes.object_hashes)].sort()) {
341
+ const entry = {
342
+ object_hash,
343
+ object: await readVerifiedSyncObject({ store: input.store, object_hash })
344
+ };
345
+ await reserve(entry);
346
+ objects.push(entry);
347
+ }
348
+ await flush();
349
+ }
350
+ /**
351
+ * What a transaction's state says about its finalize: the save's outcome, the
352
+ * hashes still to upload, or null while it is not ended. A failed save throws
353
+ * the server's refusal, with its validation issues.
354
+ */
355
+ function backgroundFinalizeAnswer(transaction_id, status) {
356
+ if (status.status === 'finalized' && status.response) {
357
+ return {
358
+ status: 'answered',
359
+ response: { accepted: true, worktree_change: status.response }
360
+ };
361
+ }
362
+ if (status.status === 'expired') {
363
+ throw new Error(`Save transaction ${transaction_id} expired before it was finalized. Run sdlc sync to send the change again.`);
364
+ }
365
+ const outcome = status.outcome;
366
+ // A save that ran out of attempts failed for no reason of its content:
367
+ // asking for finalize again queues it again.
368
+ if (status.status === 'failed' &&
369
+ outcome?.body.reason === 'finalize_attempts_exhausted') {
370
+ return {
371
+ status: 'missing',
372
+ missing_manifest_node_hashes: [],
373
+ missing_object_hashes: []
374
+ };
375
+ }
376
+ if (status.status === 'failed' || status.status === 'conflict') {
377
+ const answer = outcome
378
+ ? readWorktreeTreeSaveFinalizeAnswer(outcome.http_status, outcome.body)
379
+ : null;
380
+ if (answer)
381
+ return answer;
382
+ throw new GraphApiError({
383
+ status: outcome?.http_status ?? 500,
384
+ reason: typeof outcome?.body.error === 'string'
385
+ ? outcome.body.error
386
+ : `Save transaction ${transaction_id} ended ${status.status}.`,
387
+ issues: Array.isArray(outcome?.body.issues) ? outcome.body.issues : []
388
+ });
389
+ }
390
+ if (status.status === 'prepared' && outcome) {
391
+ return readWorktreeTreeSaveFinalizeAnswer(outcome.http_status, outcome.body);
392
+ }
393
+ return null;
394
+ }
395
+ function sleep(ms, signal) {
396
+ return new Promise((resolve, reject) => {
397
+ if (signal?.aborted) {
398
+ reject(signal.reason);
399
+ return;
400
+ }
401
+ const timer = setTimeout(() => {
402
+ signal?.removeEventListener('abort', abort);
403
+ resolve();
404
+ }, ms);
405
+ const abort = () => {
406
+ clearTimeout(timer);
407
+ reject(signal?.reason);
408
+ };
409
+ signal?.addEventListener('abort', abort, { once: true });
410
+ });
411
+ }
412
+ /** Asks the server to finalize in the background. */
413
+ function requestBackgroundFinalize(input) {
414
+ return finalizeWorktreeTreeSave(input.client, input.worktree_id, input.transaction_id, { ...operationRequestOptions(input.request_options), background: true });
415
+ }
416
+ /**
417
+ * Asks for finalize of a save already finalizing, only to start a claim. A
418
+ * server error is read as still finalizing: a server older than the request's
419
+ * purpose queues it first, which waits on a running finalize's row lock past
420
+ * its statement timeout and answers 500, while the attempt goes on.
421
+ */
422
+ async function askFinalizeAgain(input) {
423
+ try {
424
+ return await requestBackgroundFinalize(input);
425
+ }
426
+ catch (error) {
427
+ if (error instanceof GraphApiError && error.status >= 500) {
428
+ return { status: 'finalizing' };
429
+ }
430
+ throw error;
431
+ }
432
+ }
433
+ /**
434
+ * Polls a transaction the server finalizes in the background until it ends,
435
+ * backing off from one second to five, and asks for finalize again every
436
+ * FINALIZE_REREQUEST_MS so an attempt released for retry resumes. Stops with
437
+ * TreeSaveStillFinalizingError after the poll limit; the change stays pending.
438
+ */
439
+ async function awaitBackgroundFinalize(input) {
440
+ const deadline = Date.now() + (input.limit_ms ?? FINALIZE_POLL_LIMIT_MS);
441
+ let delay = FINALIZE_POLL_FIRST_MS;
442
+ // Every caller has just asked for finalize.
443
+ let requested_at = Date.now();
444
+ for (;;) {
445
+ const options = operationRequestOptions(input.request_options);
446
+ await sleep(delay, options?.signal);
447
+ const status = await getWorktreeSaveTransactionStatus(input.client, input.worktree_id, input.transaction_id, options);
448
+ if (!status.found) {
449
+ throw new Error(`Save transaction ${input.transaction_id} was not found while it was finalizing. Run sdlc sync to send the change again.`);
450
+ }
451
+ const answer = backgroundFinalizeAnswer(input.transaction_id, status);
452
+ if (answer)
453
+ return answer;
454
+ // Returned to prepared with nothing missing: ask for finalize again.
455
+ if (status.status !== 'finalizing') {
456
+ return {
457
+ status: 'missing',
458
+ missing_manifest_node_hashes: [],
459
+ missing_object_hashes: []
460
+ };
461
+ }
462
+ if (Date.now() + delay > deadline) {
463
+ throw new TreeSaveStillFinalizingError(input.transaction_id);
464
+ }
465
+ if (Date.now() - requested_at >= FINALIZE_REREQUEST_MS) {
466
+ const asked = await askFinalizeAgain(input);
467
+ if (asked.status !== 'finalizing')
468
+ return asked;
469
+ requested_at = Date.now();
470
+ }
471
+ delay = Math.min(delay * 2, FINALIZE_POLL_MAX_MS);
472
+ }
473
+ }
474
+ /**
475
+ * Sends a journaled version 2 save, or resumes one from the transaction the
476
+ * pending change recorded. Every step may be repeated: the server answers a
477
+ * finished save with its receipt, and holds what was already uploaded.
478
+ */
479
+ export async function executeTreeSave(input) {
480
+ const { prepare_request } = input.payload;
481
+ const tree = buildGraphSyncManifestTree(input.payload.target_manifest.bindings);
482
+ if (tree.root_hash !== prepare_request.target_sync_root_hash) {
483
+ throw new Error('Pending graph sync manifest tree failed root verification.');
484
+ }
485
+ let transaction_id = input.pending_change.transaction_id;
486
+ let should_prepare = !transaction_id;
487
+ // Hashes a background finalize found absent, stored on the transaction.
488
+ let resumed_missing = null;
489
+ if (transaction_id) {
490
+ const status = await getWorktreeSaveTransactionStatus(input.client, input.worktree_id, transaction_id, operationRequestOptions(input.request_options));
491
+ if (status.found && status.status === 'finalized' && status.response) {
492
+ return { accepted: true, worktree_change: status.response };
493
+ }
494
+ if (status.found && status.status === 'finalizing') {
495
+ setOperationPhase('finalize');
496
+ // An attempt released for retry stays finalizing until a claim; asking
497
+ // starts one, and does nothing while an attempt holds the lease.
498
+ const wait_input = {
499
+ client: input.client,
500
+ worktree_id: input.worktree_id,
501
+ transaction_id,
502
+ request_options: input.request_options
503
+ };
504
+ const asked = await askFinalizeAgain(wait_input);
505
+ const waited = asked.status === 'finalizing'
506
+ ? await awaitBackgroundFinalize(wait_input)
507
+ : asked;
508
+ if (waited.status === 'answered')
509
+ return waited.response;
510
+ if (waited.status === 'missing') {
511
+ resumed_missing = {
512
+ manifest_node_hashes: waited.missing_manifest_node_hashes,
513
+ object_hashes: waited.missing_object_hashes
514
+ };
515
+ }
516
+ }
517
+ else if (status.found && status.status !== 'expired') {
518
+ const ended = backgroundFinalizeAnswer(transaction_id, status);
519
+ if (ended?.status === 'answered')
520
+ return ended.response;
521
+ }
522
+ if (!status.found || status.status === 'expired')
523
+ should_prepare = true;
524
+ }
525
+ if (should_prepare) {
526
+ setOperationPhase('prepare');
527
+ markOperationDispatched();
528
+ const prepared = await prepareWorktreeTreeSave(input.client, input.worktree_id, input.just_negotiated && !transaction_id
529
+ ? prepare_request
530
+ : await prepareRequestToResend(input), operationRequestOptions(input.request_options));
531
+ if (prepared.status === 'conflict') {
532
+ markOperationResult(false);
533
+ return {
534
+ accepted: false,
535
+ reason: prepared.reason,
536
+ workspace_id: input.worktree_id,
537
+ expected_sync_revision: prepare_request.expected_sync_revision,
538
+ expected_sync_root_hash: input.payload.base_sync_root_hash,
539
+ current_revision: prepared.current_revision,
540
+ current_sync_revision: prepared.current_sync_revision,
541
+ current_sync_root_hash: prepared.current_sync_root_hash
542
+ };
543
+ }
544
+ if (prepared.status === 'finalized') {
545
+ return { accepted: true, worktree_change: prepared.response };
546
+ }
547
+ const previous_transaction_id = transaction_id;
548
+ transaction_id = prepared.transaction_id;
549
+ input.store.setPendingChangeTransaction({
550
+ change_id: input.pending_change.id,
551
+ transaction_id,
552
+ previous_transaction_id
553
+ });
554
+ const context = currentOperation();
555
+ if (context?.pending)
556
+ context.pending.transaction_id = transaction_id;
557
+ }
558
+ if (!transaction_id) {
559
+ throw new Error('Graph save did not produce a transaction id.');
560
+ }
561
+ // A version 2 transaction's status lists nothing missing, so a resumed
562
+ // save asks again about everything the change names.
563
+ setOperationPhase('upload');
564
+ let missing = resumed_missing && !should_prepare
565
+ ? resumed_missing
566
+ : await readMissing({
567
+ client: input.client,
568
+ worktree_id: input.worktree_id,
569
+ transaction_id,
570
+ hashes: {
571
+ manifest_node_hashes: input.payload.changed_manifest_node_hashes,
572
+ object_hashes: input.payload.changed_object_hashes
573
+ },
574
+ request_options: input.request_options
575
+ });
576
+ for (let attempt = 1;; attempt += 1) {
577
+ setOperationPhase('upload');
578
+ await upload({
579
+ store: input.store,
580
+ client: input.client,
581
+ worktree_id: input.worktree_id,
582
+ transaction_id,
583
+ tree,
584
+ hashes: missing,
585
+ request_options: input.request_options
586
+ });
587
+ setOperationPhase('finalize');
588
+ markOperationDispatched();
589
+ const requested = await requestBackgroundFinalize({
590
+ client: input.client,
591
+ worktree_id: input.worktree_id,
592
+ transaction_id,
593
+ request_options: input.request_options
594
+ });
595
+ const finalized = requested.status === 'finalizing'
596
+ ? await awaitBackgroundFinalize({
597
+ client: input.client,
598
+ worktree_id: input.worktree_id,
599
+ transaction_id,
600
+ request_options: input.request_options
601
+ })
602
+ : requested;
603
+ if (finalized.status === 'answered')
604
+ return finalized.response;
605
+ if (attempt >= FINALIZE_ATTEMPTS) {
606
+ throw new Error(`The server still reports ${finalized.missing_manifest_node_hashes.length +
607
+ finalized.missing_object_hashes.length} missing hashes after ${FINALIZE_ATTEMPTS} uploads.`);
608
+ }
609
+ missing = {
610
+ manifest_node_hashes: finalized.missing_manifest_node_hashes,
611
+ object_hashes: finalized.missing_object_hashes
612
+ };
613
+ }
614
+ }
615
+ //# sourceMappingURL=tree-save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-save.js","sourceRoot":"","sources":["../../src/local/tree-save.ts"],"names":[],"mappings":"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"}