agent-hitch 0.2.12 → 0.2.14

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 (165) hide show
  1. package/benchmark-packages/automationbench/RESOURCES.md +27 -0
  2. package/benchmark-packages/automationbench/resources.mjs +86 -0
  3. package/benchmark-packages/shared-tree/README.md +14 -0
  4. package/benchmark-packages/shared-tree/import.mjs +39 -0
  5. package/dist/scripts/canary-automation-resources.js +86 -0
  6. package/dist/scripts/canary-automation-resources.js.map +1 -0
  7. package/dist/scripts/canary-resource-empty-daemon.js +195 -0
  8. package/dist/scripts/canary-resource-empty-daemon.js.map +1 -0
  9. package/dist/scripts/canary-resources.js +89 -0
  10. package/dist/scripts/canary-resources.js.map +1 -0
  11. package/dist/scripts/check-architecture.js +6 -5
  12. package/dist/scripts/check-architecture.js.map +1 -1
  13. package/dist/scripts/resource-space-sampler.js +83 -0
  14. package/dist/scripts/resource-space-sampler.js.map +1 -0
  15. package/dist/src/adapters/providers/shared.js +0 -1
  16. package/dist/src/adapters/providers/shared.js.map +1 -1
  17. package/dist/src/backends/harbor/backend.js +5 -1
  18. package/dist/src/backends/harbor/backend.js.map +1 -1
  19. package/dist/src/backends/harbor/resource-admission.js +23 -0
  20. package/dist/src/backends/harbor/resource-admission.js.map +1 -0
  21. package/dist/src/cli/commands/resources.js +23 -0
  22. package/dist/src/cli/commands/resources.js.map +1 -0
  23. package/dist/src/cli/main.js +2 -0
  24. package/dist/src/cli/main.js.map +1 -1
  25. package/dist/src/control-plane/remote-offer-contract.js +11 -2
  26. package/dist/src/control-plane/remote-offer-contract.js.map +1 -1
  27. package/dist/src/control-plane/remote-result-transport.js +10 -0
  28. package/dist/src/control-plane/remote-result-transport.js.map +1 -1
  29. package/dist/src/control-plane/remote-work-coordinator.js +4 -1
  30. package/dist/src/control-plane/remote-work-coordinator.js.map +1 -1
  31. package/dist/src/control-plane/remote-work-inputs.js +16 -4
  32. package/dist/src/control-plane/remote-work-inputs.js.map +1 -1
  33. package/dist/src/control-plane/remote-worker-client.js +22 -0
  34. package/dist/src/control-plane/remote-worker-client.js.map +1 -1
  35. package/dist/src/control-plane/remote-worker-codecs.js +1 -1
  36. package/dist/src/control-plane/remote-worker-codecs.js.map +1 -1
  37. package/dist/src/control-plane/remote-worker-protocol.js +12 -2
  38. package/dist/src/control-plane/remote-worker-protocol.js.map +1 -1
  39. package/dist/src/control-plane/remote-worker-runner.js +1 -1
  40. package/dist/src/control-plane/remote-worker-runner.js.map +1 -1
  41. package/dist/src/control-plane/remote-workers.js +2 -1
  42. package/dist/src/control-plane/remote-workers.js.map +1 -1
  43. package/dist/src/domain/validation.js +41 -6
  44. package/dist/src/domain/validation.js.map +1 -1
  45. package/dist/src/evals/benchmark-adapter-manifest.js +4 -0
  46. package/dist/src/evals/benchmark-adapter-manifest.js.map +1 -1
  47. package/dist/src/evals/benchmark-candidate.js +11 -3
  48. package/dist/src/evals/benchmark-candidate.js.map +1 -1
  49. package/dist/src/evals/eval-result-builder.js +22 -1
  50. package/dist/src/evals/eval-result-builder.js.map +1 -1
  51. package/dist/src/evals/index.js +1 -0
  52. package/dist/src/evals/index.js.map +1 -1
  53. package/dist/src/evals/planned-execution.js +5 -14
  54. package/dist/src/evals/planned-execution.js.map +1 -1
  55. package/dist/src/evals/request.js +9 -0
  56. package/dist/src/evals/request.js.map +1 -1
  57. package/dist/src/evals/resource-eval-lifecycle.js +31 -0
  58. package/dist/src/evals/resource-eval-lifecycle.js.map +1 -0
  59. package/dist/src/evals/resource-legacy-export.js +57 -0
  60. package/dist/src/evals/resource-legacy-export.js.map +1 -0
  61. package/dist/src/evals/service.js +5 -20
  62. package/dist/src/evals/service.js.map +1 -1
  63. package/dist/src/evals/task-resources.js +12 -4
  64. package/dist/src/evals/task-resources.js.map +1 -1
  65. package/dist/src/evals/trial-bundle-files.js +81 -0
  66. package/dist/src/evals/trial-bundle-files.js.map +1 -0
  67. package/dist/src/evals/trial-import.js +7 -78
  68. package/dist/src/evals/trial-import.js.map +1 -1
  69. package/dist/src/foundation/durable-json.js +33 -0
  70. package/dist/src/foundation/durable-json.js.map +1 -0
  71. package/dist/src/foundation/index.js +2 -0
  72. package/dist/src/foundation/index.js.map +1 -1
  73. package/dist/src/foundation/resource-image-references.js +52 -0
  74. package/dist/src/foundation/resource-image-references.js.map +1 -0
  75. package/dist/src/images/gc.js +2 -2
  76. package/dist/src/images/gc.js.map +1 -1
  77. package/dist/src/images/registry.js +27 -2
  78. package/dist/src/images/registry.js.map +1 -1
  79. package/dist/src/resources/api.js +207 -0
  80. package/dist/src/resources/api.js.map +1 -0
  81. package/dist/src/resources/bundle.js +117 -0
  82. package/dist/src/resources/bundle.js.map +1 -0
  83. package/dist/src/resources/evidence.js +93 -0
  84. package/dist/src/resources/evidence.js.map +1 -0
  85. package/dist/src/resources/gc.js +123 -0
  86. package/dist/src/resources/gc.js.map +1 -0
  87. package/dist/src/resources/index.js +14 -0
  88. package/dist/src/resources/index.js.map +1 -0
  89. package/dist/src/resources/materialize.js +143 -0
  90. package/dist/src/resources/materialize.js.map +1 -0
  91. package/dist/src/resources/object-store.js +191 -0
  92. package/dist/src/resources/object-store.js.map +1 -0
  93. package/dist/src/resources/oci-layer-validation.js +202 -0
  94. package/dist/src/resources/oci-layer-validation.js.map +1 -0
  95. package/dist/src/resources/oci-provider.js +101 -0
  96. package/dist/src/resources/oci-provider.js.map +1 -0
  97. package/dist/src/resources/oci-registry-bundle.js +253 -0
  98. package/dist/src/resources/oci-registry-bundle.js.map +1 -0
  99. package/dist/src/resources/protocol.js +222 -0
  100. package/dist/src/resources/protocol.js.map +1 -0
  101. package/dist/src/resources/result-retention.js +93 -0
  102. package/dist/src/resources/result-retention.js.map +1 -0
  103. package/dist/src/resources/role-context.js +54 -0
  104. package/dist/src/resources/role-context.js.map +1 -0
  105. package/dist/src/resources/stats.js +36 -0
  106. package/dist/src/resources/stats.js.map +1 -0
  107. package/dist/src/resources/store.js +310 -0
  108. package/dist/src/resources/store.js.map +1 -0
  109. package/dist/src/resources/tasks.js +153 -0
  110. package/dist/src/resources/tasks.js.map +1 -0
  111. package/dist/src/resources/transfer.js +162 -0
  112. package/dist/src/resources/transfer.js.map +1 -0
  113. package/dist/src/resources/views.js +130 -0
  114. package/dist/src/resources/views.js.map +1 -0
  115. package/dist/src/trajectories/analysis.js +31 -9
  116. package/dist/src/trajectories/analysis.js.map +1 -1
  117. package/dist/src/trajectories/chunk-projection.js +24 -11
  118. package/dist/src/trajectories/chunk-projection.js.map +1 -1
  119. package/dist/src/trajectories/contract.js +4 -0
  120. package/dist/src/trajectories/contract.js.map +1 -1
  121. package/dist/src/trajectories/dsh-chunk-contract.js +2 -2
  122. package/dist/src/trajectories/dsh-chunk-contract.js.map +1 -1
  123. package/dist/src/trajectories/dsh-contract.js +114 -17
  124. package/dist/src/trajectories/dsh-contract.js.map +1 -1
  125. package/dist/src/trajectories/embedded-stream.js +95 -0
  126. package/dist/src/trajectories/embedded-stream.js.map +1 -0
  127. package/dist/src/trajectories/events-chunk-drill.js +40 -0
  128. package/dist/src/trajectories/events-chunk-drill.js.map +1 -1
  129. package/dist/src/trajectories/events-page.js +43 -3
  130. package/dist/src/trajectories/events-page.js.map +1 -1
  131. package/dist/src/trajectories/format.js +3 -7
  132. package/dist/src/trajectories/format.js.map +1 -1
  133. package/dist/src/trajectories/index.js +1 -1
  134. package/dist/src/trajectories/index.js.map +1 -1
  135. package/dist/src/trajectories/providers/deepseek-codec.js +134 -0
  136. package/dist/src/trajectories/providers/deepseek-codec.js.map +1 -0
  137. package/dist/src/trajectories/providers/deepseek.js +32 -20
  138. package/dist/src/trajectories/providers/deepseek.js.map +1 -1
  139. package/dist/src/trajectories/request-attempt.js +16 -3
  140. package/dist/src/trajectories/request-attempt.js.map +1 -1
  141. package/dist/src/trajectories/store.js +28 -13
  142. package/dist/src/trajectories/store.js.map +1 -1
  143. package/dist/src/trajectories/stream-reader.js +12 -4
  144. package/dist/src/trajectories/stream-reader.js.map +1 -1
  145. package/dist/src/trajectories/surface-fold.js +26 -6
  146. package/dist/src/trajectories/surface-fold.js.map +1 -1
  147. package/dist/src/trajectories/unstarted-tool-repair.js +65 -0
  148. package/dist/src/trajectories/unstarted-tool-repair.js.map +1 -0
  149. package/dist/src/workers/remote-harbor-work-spec.js +9 -3
  150. package/dist/src/workers/remote-harbor-work-spec.js.map +1 -1
  151. package/dist/src/workers/remote-harbor-worker.js +24 -9
  152. package/dist/src/workers/remote-harbor-worker.js.map +1 -1
  153. package/docs/resource-storage.zh-CN.md +95 -0
  154. package/docs/schemas/execution-provider-status.schema.json +20 -0
  155. package/docs/schemas/hitch-resource-dataset-v2.schema.json +590 -0
  156. package/docs/schemas/hitch-resource-lock-v1.schema.json +341 -0
  157. package/docs/schemas/hitch-resource-plan-v1.schema.json +423 -0
  158. package/docs/schemas/hitch-resource-selection-v1.schema.json +608 -0
  159. package/docs/schemas/hitch-tree-v1.schema.json +75 -0
  160. package/docs/schemas/remote-harbor-work-spec.schema.json +47 -3
  161. package/docs/schemas/remote-work-offer.schema.json +2 -1
  162. package/docs/schemas/remote-worker-registration.schema.json +20 -0
  163. package/docs/schemas/trajectory-analysis.schema.json +17 -3
  164. package/package.json +9 -3
  165. package/test-contracts/hitch-resources-v1.json +197 -0
@@ -0,0 +1,52 @@
1
+ import { durableWriteJSON as atomicWriteJSON } from "./durable-json.js";
2
+ import { lstat, readdir, rm } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { readJSON } from "./fs.js";
5
+ import { sha256JSON } from "./hash.js";
6
+ const directory = (root) => path.join(root, "store", "resource-image-references");
7
+ /** Caller holds withEnvironmentImageReferenceLock, including the provider call.
8
+ * Preparing records survive a crash and stop GC until explicitly reconciled. */
9
+ export async function writeResourceImageFence(root, fence) {
10
+ validate(fence);
11
+ await atomicWriteJSON(path.join(directory(root), `${sha256JSON(fence.owner).slice(7)}.json`), fence);
12
+ }
13
+ export async function removeResourceImageFence(root, owner) {
14
+ await rm(path.join(directory(root), `${sha256JSON(owner).slice(7)}.json`), { force: true });
15
+ }
16
+ export async function resourceImageReferences(root) {
17
+ const result = new Map();
18
+ let entries;
19
+ try {
20
+ entries = await readdir(directory(root));
21
+ }
22
+ catch (error) {
23
+ if (error.code === "ENOENT")
24
+ return result;
25
+ throw error;
26
+ }
27
+ for (const file of entries) {
28
+ if (!/^[a-f0-9]{64}\.json$/.test(file) || !(await lstat(path.join(directory(root), file))).isFile())
29
+ throw new TypeError("invalid resource image reference file");
30
+ const fence = await readJSON(path.join(directory(root), file));
31
+ validate(fence);
32
+ if (`${sha256JSON(fence.owner).slice(7)}.json` !== file)
33
+ throw new TypeError("resource image reference address mismatch");
34
+ if (fence.state === "preparing")
35
+ throw new Error("resource image acquisition is incomplete; retain images until recovery");
36
+ for (const id of fence.imageIds) {
37
+ const reasons = result.get(id) ?? new Set();
38
+ reasons.add(`resource-owner:${fence.owner}`);
39
+ result.set(id, reasons);
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+ function validate(fence) {
45
+ if (!fence || Object.keys(fence).some(k => !["protocol", "owner", "state", "imageIds"].includes(k))
46
+ || fence.protocol !== "hitch-resource-image-fence@1" || typeof fence.owner !== "string" || !fence.owner
47
+ || !["preparing", "active"].includes(fence.state) || !Array.isArray(fence.imageIds)
48
+ || fence.imageIds.some(id => typeof id !== "string" || !/^sha256:[a-f0-9]{64}$/.test(id))
49
+ || new Set(fence.imageIds).size !== fence.imageIds.length)
50
+ throw new TypeError("invalid resource image fence");
51
+ }
52
+ //# sourceMappingURL=resource-image-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-image-references.js","sourceRoot":"","sources":["../../../src/foundation/resource-image-references.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { readdir, rm } from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { HitchError, atomicWriteJSON, hitchRootId, readEvalEnvironmentImageReferences, readJSON, runCommand, sha256JSON, statePaths, withEnvironmentImageReferenceLock, withFileLock } from "../foundation/index.js";
3
+ import { HitchError, atomicWriteJSON, hitchRootId, readEvalEnvironmentImageReferences, readJSON, resourceImageReferences, runCommand, sha256JSON, statePaths, withEnvironmentImageReferenceLock, withFileLock } from "../foundation/index.js";
4
4
  import { parseEnvironmentBuildRecord, parseEnvironmentImageManifest } from "./manifest.js";
5
5
  import { ENVIRONMENT_IMAGE_LABELS } from "./ownership.js";
6
6
  import { environmentBuildRecordPath, environmentImageManifestPath, loadEnvironmentImageManifest } from "./service.js";
@@ -130,7 +130,7 @@ async function inspectGcCandidate(root, manifest, command) {
130
130
  return { image_id: manifest.image_id, reference: manifest.output.reference, config_digest: manifest.output.config_digest };
131
131
  }
132
132
  async function referencedEnvironmentImages(root) {
133
- const result = new Map();
133
+ const result = await resourceImageReferences(root);
134
134
  const paths = statePaths(root);
135
135
  for (const entry of await directories(paths.evals)) {
136
136
  if (!/^eval_[a-f0-9]{32}$/.test(entry))
@@ -1 +1 @@
1
- {"version":3,"file":"gc.js","sourceRoot":"","sources":["../../../src/images/gc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gc.js","sourceRoot":"","sources":["../../../src/images/gc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,kCAAkC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iCAAiC,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9O,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEtH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAY3E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAe,EAAE,MAAe;IACtF,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjK,MAAM,iCAAiC,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAiB,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,MAAM,eAAe,CAAC,IAAI,EAAE;YAC1B,cAAc,EAAE,GAAG;YACnB,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACvE,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAOzC;IACC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IACnH,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IAChI,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,IAAI,QAAQ,EAAE,IAAI,EAAE;QACpG,GAAG;QACH,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,oCAAoC;QACjD,eAAe,EAAE,EAAE;KACpB,CAAC,CAAC,CAAC;IACJ,OAAO,iCAAiC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAA2C,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAA2C,EAAE,CAAC;QAC5D,MAAM,OAAO,GAA0C,EAAE,CAAC;QAC1D,MAAM,OAAO,GAA0C,EAAE,CAAC;QAC1D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;gBACrF,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,EAAE,CAAC;gBAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACzE,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBAC3G,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAClF,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAAE,MAAM,OAAO,CAAC,qCAAqC,CAAC,CAAC;gBAC/G,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjI,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM;gBAAE,SAAS;YAC3B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBACzG,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAClF,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAAE,MAAM,OAAO,CAAC,qCAAqC,CAAC,CAAC;gBAC/G,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC1E,IAAI,MAAM,IAAI,SAAS;oBAAE,OAAO,SAAS,CAAC;gBAC1C,MAAM,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1D,MAAM,6BAA6B,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC1D,OAAO,SAAS,CAAC;YACnB,CAAC,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjI,IAAI,MAAM,IAAI,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;;gBACpF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO;YACL,cAAc,EAAE,GAAG;YACnB,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,OAAO,EAAE,SAAS,CAAC,MAAM;YACzB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;SACjC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAY,EACZ,QAAoC,EACpC,OAAyE;IAEzE,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACrJ,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvH,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,SAAS;QAAE,MAAM,OAAO,CAAC,wDAAwD,CAAC,CAAC;IACpM,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACvH,MAAM,KAAK,GAAG,SAAoC,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/I,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnJ,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAC1F,IAAI,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC;WAC5D,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACzH,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;AAC7H,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,IAAY;IACrD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAiC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3G,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAiC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;QACjH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9H,IAAI,QAAQ;YAAE,SAAS;QACvB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAiB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3F,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QACnD,MAAM,UAAU,GAAG,MAAM,kCAAkC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU;YAAE,MAAM,OAAO,CAAC,yDAAyD,KAAK,EAAE,CAAC,CAAC;QACjG,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,6CAA6C,KAAK,EAAE,CAAC,CAAC;QACxG,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,SAAS;YAAE,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAiC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;QACtH,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC7B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAiC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;QACrH,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,CAAC;QACzF,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;eACxF,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC;eAC/E,UAAU,CAAC,cAAc,CAAC,KAAK,YAAY;eAC3C,QAAQ,EAAE,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,MAAM,OAAO,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC9H,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,SAAS;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;YAAE,MAAM,OAAO,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;QACxH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,MAAM,OAAO,CAAC,6CAA6C,KAAK,EAAE,CAAC,CAAC;YACvK,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,QAAkB,EAAE,eAAe,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,OAAO,CAAC,2CAA2C,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAY,CAAC;QACzD,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChF,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,OAAO,CAAC,0CAA0C,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,6BAA6B,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QACtI,IAAI,QAAQ,CAAC,QAAQ,KAAK,UAAU,KAAK,EAAE;YAAE,MAAM,OAAO,CAAC,sDAAsD,CAAC,CAAC;QACnH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,IAAY,EAAE,QAAoC;IAC7F,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,SAAS,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IACnG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,OAAO,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,OAAe;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,eAAuB;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;WAC3G,GAAG,CAAC,cAAc,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe;WAC9D,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;WAChF,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC7I,MAAM,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY;IACrC,IAAI,CAAC;QAAC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC9I,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AACnG,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAY;IAC/B,IAAI,CAAC;QAAC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACzI,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AACnG,CAAC;AAED,SAAS,YAAY,CAAC,MAAgC,EAAE,OAAe,EAAE,MAAc;IACrF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/G,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;AACxH,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,4CAA4C,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,SAAS,CAAC,IAA0B,EAAE,KAA2B;IACxE,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -50,7 +50,9 @@ export async function resolveRegistryEnvironmentImage(input) {
50
50
  const cacheHit = await regularFile(file);
51
51
  if (cacheHit) {
52
52
  const persisted = parseEnvironmentImageManifest(await readJSON(file));
53
- if (persisted.image_id !== manifest.image_id || persisted.output.manifest_digest !== manifest.output.manifest_digest)
53
+ if (persisted.image_id !== manifest.image_id || persisted.output.manifest_digest !== manifest.output.manifest_digest
54
+ || persisted.output.config_digest !== manifest.output.config_digest || persisted.platform !== manifest.platform
55
+ || persisted.output.reference !== manifest.output.reference)
54
56
  throw new TypeError("registry image cache identity changed");
55
57
  return { manifest: persisted, cacheHit: true };
56
58
  }
@@ -62,17 +64,40 @@ export class DockerRegistryResolver {
62
64
  id;
63
65
  docker;
64
66
  env;
65
- constructor({ dockerExecutable, env = process.env, id = "local-docker-registry" } = {}) {
67
+ policy;
68
+ beforePull;
69
+ constructor({ dockerExecutable, env = process.env, id = "local-docker-registry", policy = "registry", beforePull } = {}) {
66
70
  if (!id)
67
71
  throw new TypeError("Docker registry resolver id is invalid");
68
72
  this.id = id;
69
73
  this.docker = dockerExecutable || env.HITCH_DOCKER_PATH || "docker";
70
74
  this.env = env;
75
+ if (!["registry", "cache-first", "cache-only"].includes(policy))
76
+ throw new TypeError("invalid registry resolution policy");
77
+ this.policy = policy;
78
+ this.beforePull = beforePull;
79
+ }
80
+ withBeforePull(check) {
81
+ return new DockerRegistryResolver({ dockerExecutable: this.docker, env: this.env, id: this.id, policy: this.policy,
82
+ beforePull: async (...args) => { await this.beforePull?.(...args); await check(...args); } });
71
83
  }
72
84
  async resolve(reference, platform, signal) {
73
85
  if (!validReference(reference) || !platform)
74
86
  throw new TypeError("Docker registry image request is invalid");
87
+ if (this.policy !== "registry" && !/@sha256:[a-f0-9]{64}$/.test(reference))
88
+ throw new TypeError("cached image resolution requires an immutable reference");
89
+ const inspect = async () => parseDockerInspection(reference, platform, (await runCommand(this.docker, ["image", "inspect", "--format", "{{json .}}", reference], { env: this.env, failureCode: "image_unavailable", failureExitCode: 12, timeoutMs: 30_000, ...(signal ? { signal } : {}) })).stdout);
75
90
  try {
91
+ if (this.policy !== "registry") {
92
+ try {
93
+ return await inspect();
94
+ }
95
+ catch (error) {
96
+ if (this.policy === "cache-only" || error.code !== "image_unavailable")
97
+ throw error;
98
+ }
99
+ }
100
+ await this.beforePull?.(reference, platform, signal);
76
101
  await runCommand(this.docker, ["pull", "--platform", platform, reference], {
77
102
  env: this.env,
78
103
  failureCode: "image_registry_unavailable",
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/images/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/images/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import { lstat, readFile, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { DockerRegistryResolver } from "../images/index.js";
4
+ import { durableWriteJSON as atomicWriteJSON } from "../foundation/index.js";
5
+ import { auditResources } from "./gc.js";
6
+ import { materializeResourceTask, finishResourceWorkspace } from "./materialize.js";
7
+ import { DockerResourceImageProvider } from "./oci-provider.js";
8
+ import { localRegistry } from "./oci-registry-bundle.js";
9
+ import { identity, object, parseStrictJson, resourceId } from "./protocol.js";
10
+ import { limits } from "./object-store.js";
11
+ import { ResourceStore } from "./store.js";
12
+ import { exportResourceBundle, importResourceBundle } from "./bundle.js";
13
+ import { resourceStorageStats } from "./stats.js";
14
+ import { parseResourceDataset, preflightResourceTask, readResourceInput, sealResourceTask, selectResources, RESOURCE_EXECUTION_CAPABILITIES } from "./tasks.js";
15
+ export async function configuredResourceStore(root) {
16
+ let config = { protocol: "hitch-resource-host@1", transport: {}, imagePolicy: "cache-first", platform: "linux/amd64", workspace: {} };
17
+ try {
18
+ config = parseHostConfig(parseStrictJson(await readFile(path.join(root, "resource-config.json"), "utf8")));
19
+ }
20
+ catch (error) {
21
+ if (error.code !== "ENOENT")
22
+ throw error;
23
+ }
24
+ return { store: new ResourceStore(root, { ...(config.limits ? { limits: config.limits } : {}), images: new DockerResourceImageProvider(root, config.transport, new DockerRegistryResolver({ policy: config.imagePolicy }), config.offline, config.imagePolicy, limits(config.limits)) }), config };
25
+ }
26
+ export async function preflightResourceInput(store, ref, options) {
27
+ return store.admission(() => preflightInput(store, ref, options));
28
+ }
29
+ async function preflightInput(store, ref, options) {
30
+ const source = await readResourceInput(ref);
31
+ if (!source)
32
+ return undefined;
33
+ const execution = "schema_version" in source ? source.execution : source.manifest.execution;
34
+ if (execution.platform !== options.platform)
35
+ throw new Error("resource execution platform differs from the frozen plan");
36
+ const capabilities = "schema_version" in source ? source.required_capabilities : source.manifest.required_capabilities;
37
+ for (const c of capabilities)
38
+ if (!RESOURCE_EXECUTION_CAPABILITIES.includes(c))
39
+ throw new Error(`unsupported required resource capability: ${c}`);
40
+ const isDirectory = (await lstat(ref)).isDirectory(), plans = [];
41
+ for (const task of source.tasks) {
42
+ if (isDirectory) {
43
+ const actual = await store.import(path.join(ref, task.task_id), "tree", `${options.owner}:source-check`, options.signal);
44
+ await store.finishLease(actual.leaseId, "ended");
45
+ if (identity("hitch-source-task@1", actual.resource) !== task.source_task_digest)
46
+ throw new Error("local task descriptor changed since sealing");
47
+ }
48
+ plans.push((await preflightResourceTask(store, task, { ...options, owner: `${options.owner}:${task.task_id}` })).plan);
49
+ }
50
+ const inputDigest = "schema_version" in source ? source.dataset_digest : source.digest;
51
+ return { protocol: "hitch-resource-preflight@1", inputDigest, plans, planDigest: identity("hitch-resource-preflight@1", { inputDigest, plans: plans.map(p => ({ taskId: p.task.task_id, digest: p.digest })) }) };
52
+ }
53
+ export async function resourceRequest(root, operation, value) {
54
+ if (operation === "capabilities")
55
+ return { protocol: "hitch-resources-api@1", capabilities: RESOURCE_EXECUTION_CAPABILITIES, selections: "hitch-resource-selection@1" };
56
+ if (operation === "configure") {
57
+ const config = parseHostConfig(value);
58
+ await atomicWriteJSON(path.join(root, "resource-config.json"), config);
59
+ return config;
60
+ }
61
+ const { store, config } = await configuredResourceStore(root);
62
+ switch (operation) {
63
+ case "inspect": {
64
+ object(value, []);
65
+ return resourceStorageStats(store);
66
+ }
67
+ case "import": {
68
+ const input = object(value, ["source", "kind", "owner"]);
69
+ if (typeof input.source !== "string" || typeof input.owner !== "string" || input.kind !== "blob" && input.kind !== "tree")
70
+ throw new TypeError("invalid resource import request");
71
+ return store.import(path.resolve(input.source), input.kind, input.owner);
72
+ }
73
+ case "pin": {
74
+ const input = object(value, ["owner", "generation", "purpose", "lock"]);
75
+ return store.pin(input);
76
+ }
77
+ case "release": {
78
+ const input = object(value, ["owner", "generation"]);
79
+ await store.release(input.owner, input.generation);
80
+ return { released: true };
81
+ }
82
+ case "lease-end": {
83
+ const input = object(value, ["leaseId", "confirmation"]);
84
+ if (typeof input.leaseId !== "string" || !["ended", "unknown"].includes(String(input.confirmation)))
85
+ throw new TypeError("invalid lease confirmation");
86
+ await store.finishLease(input.leaseId, input.confirmation);
87
+ return { acknowledged: true };
88
+ }
89
+ case "audit": {
90
+ const input = object(value, ["apply", "graceMs"]);
91
+ if (input.apply !== undefined && typeof input.apply !== "boolean")
92
+ throw new TypeError("apply must be explicit boolean");
93
+ return auditResources(store, input);
94
+ }
95
+ case "bundle-export": {
96
+ const input = object(value, ["ref", "output", "owner"]);
97
+ if (typeof input.ref !== "string" || typeof input.output !== "string" || typeof input.owner !== "string")
98
+ throw new TypeError("invalid bundle export request");
99
+ const source = await readResourceInput(input.ref);
100
+ if (!source)
101
+ throw new Error("resource input required");
102
+ const selection = "schema_version" in source ? selectResources(source, source.tasks.map(t => t.task_id)) : source;
103
+ return exportResourceBundle(store, selection, input.output, input.owner);
104
+ }
105
+ case "bundle-import": {
106
+ const input = object(value, ["directory", "owner", "output"]);
107
+ if (typeof input.directory !== "string" || typeof input.owner !== "string" || typeof input.output !== "string")
108
+ throw new TypeError("invalid bundle import request");
109
+ if (config.imagePolicy !== "cache-only")
110
+ throw new Error("offline bundle import requires cache-only image policy");
111
+ const result = await importResourceBundle(store, input.directory, input.owner);
112
+ await writeFile(input.output, JSON.stringify(result.selection), { flag: "wx", mode: 0o600 });
113
+ return result;
114
+ }
115
+ case "seal-dataset": {
116
+ const input = object(value, ["directory", "owner", "manifest", "taskIds"]);
117
+ if (typeof input.directory !== "string" || typeof input.owner !== "string" || !Array.isArray(input.taskIds) || input.taskIds.some(id => typeof id !== "string"))
118
+ throw new TypeError("invalid dataset seal request");
119
+ const directory = input.directory, owner = input.owner, taskIds = input.taskIds;
120
+ return store.admission(async () => {
121
+ const metadata = object(input.manifest, ["benchmark", "adapter", "scoring", "raw_metrics", "required_capabilities", "execution"]);
122
+ const tasks = [];
123
+ for (const id of [...taskIds].sort()) {
124
+ resourceId(id);
125
+ tasks.push(await sealResourceTask(store, path.join(directory, id), id, `${owner}:${id}`));
126
+ }
127
+ const body = { schema_version: "2", kind: "gear-harbor-benchmark", resource_protocol: "hitch-resource-lock@1", ...metadata, tasks };
128
+ const manifest = parseResourceDataset({ ...body, dataset_digest: identity("hitch-resource-dataset@2", body) });
129
+ if (manifest.execution.platform !== config.platform)
130
+ throw new Error("resource execution platform differs from host");
131
+ for (const capability of manifest.required_capabilities)
132
+ if (!RESOURCE_EXECUTION_CAPABILITIES.includes(capability))
133
+ throw new Error(`unsupported required resource capability: ${capability}`);
134
+ for (const task of tasks)
135
+ await preflightResourceTask(store, task, { owner: `${owner}:admission:${task.task_id}`, generation: 1, platform: config.platform });
136
+ await writeFile(path.join(directory, "benchmark.adapter.json"), `${JSON.stringify(manifest, null, 2)}\n`, { flag: "wx", mode: 0o600 });
137
+ return manifest;
138
+ });
139
+ }
140
+ case "seal-task": {
141
+ const input = object(value, ["directory", "taskId", "owner"]);
142
+ if ([input.directory, input.taskId, input.owner].some(v => typeof v !== "string"))
143
+ throw new TypeError("invalid task seal request");
144
+ return sealResourceTask(store, input.directory, input.taskId, input.owner);
145
+ }
146
+ case "preflight": {
147
+ const input = object(value, ["ref", "owner", "generation", "platform"]);
148
+ if (typeof input.ref !== "string" || typeof input.owner !== "string")
149
+ throw new TypeError("invalid preflight request");
150
+ return preflightResourceInput(store, input.ref, { owner: input.owner, generation: input.generation, platform: input.platform ?? config.platform });
151
+ }
152
+ case "selection": {
153
+ const input = object(value, ["manifest", "taskIds", "output"]), selection = selectResources(parseResourceDataset(input.manifest), input.taskIds);
154
+ if (input.output !== undefined) {
155
+ if (typeof input.output !== "string")
156
+ throw new TypeError("invalid selection output");
157
+ await writeFile(input.output, `${JSON.stringify(selection)}\n`, { flag: "wx" });
158
+ }
159
+ return selection;
160
+ }
161
+ case "materialize": {
162
+ const input = object(value, ["plan", "owner", "generation"]);
163
+ return materializeResourceTask(store, input.plan, { owner: input.owner, generation: input.generation, policy: config.workspace });
164
+ }
165
+ case "workspace-end": {
166
+ const input = object(value, ["id", "executionEnded", "resultSealed"]);
167
+ await finishResourceWorkspace(store, input.id, input);
168
+ return { removed: true };
169
+ }
170
+ default: throw new TypeError(`unsupported resource API operation: ${operation}`);
171
+ }
172
+ }
173
+ export async function resourceFileRequest(root, operation, file) {
174
+ if ((await lstat(file)).size > 16 * 1024 ** 2)
175
+ throw new Error("resource request size limit exceeded");
176
+ return resourceRequest(root, operation, parseStrictJson(await readFile(file, "utf8")));
177
+ }
178
+ function parseHostConfig(value) {
179
+ const raw = object(value, ["protocol", "transport", "imagePolicy", "platform", "workspace", "limits", "offline"]);
180
+ if (raw.protocol !== "hitch-resource-host@1" || !["registry", "cache-first", "cache-only"].includes(String(raw.imagePolicy)) || typeof raw.platform !== "string" || !/^linux\/(amd64|arm64)(\/v[0-9]+)?$/.test(raw.platform))
181
+ throw new TypeError("invalid resource host configuration");
182
+ if (!raw.transport || typeof raw.transport !== "object" || Array.isArray(raw.transport))
183
+ throw new TypeError("resource transport must be a map");
184
+ for (const [key, ref] of Object.entries(raw.transport))
185
+ if (!/^sha256:[a-f0-9]{64}$/.test(key) || typeof ref !== "string" || !ref.endsWith(`@${key}`) || /[\s\0]/.test(ref))
186
+ throw new TypeError("invalid immutable image transport");
187
+ if (raw.limits !== undefined)
188
+ limits(raw.limits);
189
+ if (raw.offline !== undefined) {
190
+ const offline = object(raw.offline, ["exportFormat", "registry"]);
191
+ if (offline.exportFormat !== undefined && !["docker-archive", "registry-bundle"].includes(String(offline.exportFormat)))
192
+ throw new Error("invalid offline image format");
193
+ if (offline.registry !== undefined) {
194
+ if (typeof offline.registry !== "string")
195
+ throw new Error("invalid offline registry");
196
+ localRegistry(offline.registry);
197
+ }
198
+ }
199
+ const policy = object(raw.workspace, ["mode", "maxCopyBytes", "maxWorkspaces"]);
200
+ if (policy.mode !== undefined && !["auto", "copy", "require-clone"].includes(String(policy.mode)))
201
+ throw new TypeError("invalid workspace mode");
202
+ for (const key of ["maxCopyBytes", "maxWorkspaces"])
203
+ if (policy[key] !== undefined && (!Number.isSafeInteger(policy[key]) || policy[key] < (key === "maxWorkspaces" ? 1 : 0)))
204
+ throw new TypeError("invalid workspace budget");
205
+ return raw;
206
+ }
207
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/resources/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { createReadStream } from "node:fs";
2
+ import { copyFile, lstat, mkdir, readFile, readdir, rename, rm, statfs } from "node:fs/promises";
3
+ import { createHash, randomUUID } from "node:crypto";
4
+ import path from "node:path";
5
+ import { durableWriteJSON as atomicWriteJSON } from "../foundation/index.js";
6
+ import { canonical, identity, natural, object, parseStrictJson, sha } from "./protocol.js";
7
+ import { createResourceDelivery, parseResourceDelivery, receiveResourceDelivery } from "./transfer.js";
8
+ import { parseResourceSelection } from "./tasks.js";
9
+ export async function exportResourceBundle(store, selection, destination, owner, signal) {
10
+ destination = path.resolve(destination);
11
+ if (await lstat(destination).catch(e => { if (e.code !== "ENOENT")
12
+ throw e; return undefined; }))
13
+ throw new Error("bundle output already exists");
14
+ const delivery = await createResourceDelivery(store, selection, owner, 1, signal), temp = `${destination}.${randomUUID()}.tmp`, archives = [];
15
+ await mkdir(path.join(temp, "objects"), { recursive: true, mode: 0o700 });
16
+ await mkdir(path.join(temp, "oci"));
17
+ try {
18
+ let total = 0;
19
+ for (const item of delivery.objects) {
20
+ signal?.throwIfAborted();
21
+ total += item.size;
22
+ if (total > store.objects.budget.maxTotalBytes)
23
+ throw new Error("bundle export budget exceeded");
24
+ await store.objects.verify(item.digest, item.size);
25
+ const file = path.join(temp, "objects", item.digest.slice(7));
26
+ const space = await statfs(temp, { bigint: true });
27
+ if (space.bavail * space.bsize < BigInt(item.size) + BigInt(store.objects.budget.minFreeBytes))
28
+ throw new Error("bundle export free-space reserve exceeded");
29
+ await copyFile(store.objects.objectPath(item.digest), file);
30
+ await store.objects.verify(item.digest, item.size, file);
31
+ }
32
+ for (const image of delivery.images) {
33
+ if (!store.options.images?.exportArchive)
34
+ throw new Error("OCI provider does not support offline export");
35
+ const file = path.join(temp, "oci", image.resource.manifestDigest.slice(7));
36
+ await store.options.images.exportArchive(image.resource, file, signal, { maxBytes: Math.min(store.objects.budget.maxObjectBytes, store.objects.budget.maxTotalBytes - total), minFreeBytes: store.objects.budget.minFreeBytes });
37
+ const info = await lstat(file);
38
+ if (!info.isFile() || info.size > store.objects.budget.maxObjectBytes)
39
+ throw new Error("OCI archive object budget exceeded");
40
+ const hash = createHash("sha256");
41
+ let size = 0;
42
+ for await (const chunk of createReadStream(file)) {
43
+ signal?.throwIfAborted();
44
+ size += chunk.length;
45
+ if (size > store.objects.budget.maxObjectBytes)
46
+ throw new Error("OCI archive object budget exceeded");
47
+ hash.update(chunk);
48
+ }
49
+ const digest = sha(`sha256:${hash.digest("hex")}`);
50
+ await store.objects.verify(digest, size, file);
51
+ total += size;
52
+ if (total > store.objects.budget.maxTotalBytes)
53
+ throw new Error("bundle export budget exceeded");
54
+ archives.push({ manifestDigest: image.resource.manifestDigest, digest, size });
55
+ }
56
+ const body = { protocol: "hitch-resource-bundle@1", delivery, archives }, index = { ...body, digest: identity(body.protocol, body) };
57
+ await atomicWriteJSON(path.join(temp, "index.json"), index);
58
+ signal?.throwIfAborted();
59
+ await rename(temp, destination);
60
+ return index;
61
+ }
62
+ finally {
63
+ await rm(temp, { recursive: true, force: true });
64
+ }
65
+ }
66
+ /** A directory bundle has no archive paths to extract. OCI archives go only to the OCI provider. */
67
+ export async function importResourceBundle(store, directory, owner, signal) {
68
+ const indexFile = path.join(directory, "index.json");
69
+ if (!(await lstat(directory)).isDirectory() || !(await lstat(indexFile)).isFile() || (await lstat(indexFile)).size > 16 * 1024 ** 2)
70
+ throw new Error("invalid resource bundle");
71
+ const raw = object(parseStrictJson(await readFile(indexFile, "utf8")), ["protocol", "delivery", "archives", "digest"]), { digest, ...body } = raw;
72
+ if (raw.protocol !== "hitch-resource-bundle@1" || digest !== identity(raw.protocol, body) || !Array.isArray(raw.archives))
73
+ throw new Error("invalid resource bundle index");
74
+ const delivery = parseResourceDelivery(raw.delivery), archives = raw.archives.map(a => {
75
+ const entry = object(a, ["manifestDigest", "digest", "size"]);
76
+ sha(entry.manifestDigest);
77
+ sha(entry.digest);
78
+ if (!Number.isSafeInteger(entry.size) || entry.size < 0)
79
+ throw new TypeError("invalid OCI archive size");
80
+ return entry;
81
+ });
82
+ if (canonical(archives.map(a => a.manifestDigest).sort()) !== canonical(delivery.images.map(i => i.resource.manifestDigest).sort()))
83
+ throw new Error("offline image archives are incomplete or duplicate");
84
+ for (const sub of ["objects", "oci"])
85
+ if (!(await lstat(path.join(directory, sub))).isDirectory())
86
+ throw new Error("bundle paths must be directories without links");
87
+ if (canonical((await readdir(path.join(directory, "objects"))).sort()) !== canonical(delivery.objects.map(o => o.digest.slice(7)).sort()) || canonical((await readdir(path.join(directory, "oci"))).sort()) !== canonical(archives.map(a => a.manifestDigest.slice(7)).sort()))
88
+ throw new Error("bundle object inventory mismatch");
89
+ const total = delivery.objects.reduce((n, o) => n + o.size, 0) + archives.reduce((n, a) => n + a.size, 0);
90
+ if (total > store.objects.budget.maxTotalBytes)
91
+ throw new Error("offline bundle total byte budget exceeded");
92
+ // Verify the entire bundle before any provider mutation.
93
+ for (const item of delivery.objects)
94
+ await store.objects.verify(item.digest, item.size, path.join(directory, "objects", item.digest.slice(7)));
95
+ for (const item of archives)
96
+ await store.objects.verify(item.digest, item.size, path.join(directory, "oci", item.manifestDigest.slice(7)));
97
+ let expandedBytes = 0, imageFiles = 0;
98
+ for (const archive of archives) {
99
+ if (!store.options.images?.validateArchive)
100
+ throw new Error("OCI provider does not support bounded offline validation");
101
+ const usage = await store.options.images.validateArchive(delivery.images.find(i => i.resource.manifestDigest === archive.manifestDigest).resource, path.join(directory, "oci", archive.manifestDigest.slice(7)), signal, { maxExpandedBytes: store.objects.budget.maxTotalBytes - expandedBytes, maxFiles: store.objects.budget.maxFiles - imageFiles });
102
+ expandedBytes += natural(usage.expandedBytes);
103
+ imageFiles += natural(usage.files);
104
+ if (expandedBytes > store.objects.budget.maxTotalBytes || imageFiles > store.objects.budget.maxFiles)
105
+ throw new Error("offline OCI expanded budget exceeded");
106
+ }
107
+ const lease = await store.locked(() => store.beginLease(owner, "import"));
108
+ for (const archive of archives) {
109
+ if (!store.options.images?.importArchive)
110
+ throw new Error("OCI provider does not support cache-only offline import");
111
+ await store.importImageArchive(lease, delivery.images.find(i => i.resource.manifestDigest === archive.manifestDigest).resource, path.join(directory, "oci", archive.manifestDigest.slice(7)), signal);
112
+ }
113
+ const result = await receiveResourceDelivery(store, delivery, async (item) => createReadStream(path.join(directory, "objects", item.digest.slice(7))), owner, 1, signal);
114
+ await store.finishLease(lease.id, "ended");
115
+ return { selection: parseResourceSelection(delivery.selection), transferredBytes: result.transferredBytes, missingObjects: result.missingObjects };
116
+ }
117
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../src/resources/bundle.ts"],"names":[],"mappings":"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"}