run402 4.37.1 → 4.38.1

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 (65) hide show
  1. package/README.md +3 -1
  2. package/core-dist/keystore.js +56 -4
  3. package/git-remote-run402.mjs +136 -14
  4. package/lib/command-manifest.mjs +7 -0
  5. package/lib/doctor.mjs +19 -6
  6. package/lib/gitvault-target.mjs +145 -0
  7. package/lib/gitvault.mjs +81 -18
  8. package/lib/next-actions.mjs +25 -0
  9. package/lib/org.mjs +70 -0
  10. package/lib/repos.mjs +130 -5
  11. package/lib/up.mjs +19 -2
  12. package/lib/wallet-context.mjs +88 -12
  13. package/package.json +1 -1
  14. package/sdk/core-dist/keystore.js +56 -4
  15. package/sdk/dist/errors.d.ts +6 -2
  16. package/sdk/dist/errors.d.ts.map +1 -1
  17. package/sdk/dist/errors.js.map +1 -1
  18. package/sdk/dist/index.d.ts +1 -1
  19. package/sdk/dist/index.d.ts.map +1 -1
  20. package/sdk/dist/index.js +1 -1
  21. package/sdk/dist/index.js.map +1 -1
  22. package/sdk/dist/namespaces/gitvault.crypto.d.ts +11 -2
  23. package/sdk/dist/namespaces/gitvault.crypto.d.ts.map +1 -1
  24. package/sdk/dist/namespaces/gitvault.crypto.js +11 -2
  25. package/sdk/dist/namespaces/gitvault.crypto.js.map +1 -1
  26. package/sdk/dist/namespaces/gitvault.d.ts +109 -3
  27. package/sdk/dist/namespaces/gitvault.d.ts.map +1 -1
  28. package/sdk/dist/namespaces/gitvault.js +161 -12
  29. package/sdk/dist/namespaces/gitvault.js.map +1 -1
  30. package/sdk/dist/namespaces/org.d.ts +18 -1
  31. package/sdk/dist/namespaces/org.d.ts.map +1 -1
  32. package/sdk/dist/namespaces/org.js +38 -0
  33. package/sdk/dist/namespaces/org.js.map +1 -1
  34. package/sdk/dist/namespaces/org.types.d.ts +16 -0
  35. package/sdk/dist/namespaces/org.types.d.ts.map +1 -1
  36. package/sdk/dist/namespaces/projects.d.ts +11 -1
  37. package/sdk/dist/namespaces/projects.d.ts.map +1 -1
  38. package/sdk/dist/namespaces/projects.js +16 -0
  39. package/sdk/dist/namespaces/projects.js.map +1 -1
  40. package/sdk/dist/namespaces/projects.types.d.ts +7 -0
  41. package/sdk/dist/namespaces/projects.types.d.ts.map +1 -1
  42. package/sdk/dist/node/gitvault-address.d.ts +89 -0
  43. package/sdk/dist/node/gitvault-address.d.ts.map +1 -0
  44. package/sdk/dist/node/gitvault-address.js +113 -0
  45. package/sdk/dist/node/gitvault-address.js.map +1 -0
  46. package/sdk/dist/node/gitvault-creation-journal.d.ts +81 -9
  47. package/sdk/dist/node/gitvault-creation-journal.d.ts.map +1 -1
  48. package/sdk/dist/node/gitvault-creation-journal.js +93 -17
  49. package/sdk/dist/node/gitvault-creation-journal.js.map +1 -1
  50. package/sdk/dist/node/gitvault-publication.d.ts +13 -0
  51. package/sdk/dist/node/gitvault-publication.d.ts.map +1 -1
  52. package/sdk/dist/node/gitvault-publication.js +1 -0
  53. package/sdk/dist/node/gitvault-publication.js.map +1 -1
  54. package/sdk/dist/node/gitvault-push-to-create.d.ts +75 -0
  55. package/sdk/dist/node/gitvault-push-to-create.d.ts.map +1 -0
  56. package/sdk/dist/node/gitvault-push-to-create.js +132 -0
  57. package/sdk/dist/node/gitvault-push-to-create.js.map +1 -0
  58. package/sdk/dist/node/index.d.ts +6 -2
  59. package/sdk/dist/node/index.d.ts.map +1 -1
  60. package/sdk/dist/node/index.js +8 -1
  61. package/sdk/dist/node/index.js.map +1 -1
  62. package/sdk/dist/scoped.d.ts +2 -1
  63. package/sdk/dist/scoped.d.ts.map +1 -1
  64. package/sdk/dist/scoped.js +3 -0
  65. package/sdk/dist/scoped.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitvault-address.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D;AAcD,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAOhG;AAED,kGAAkG;AAClG,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3I;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,uGAAuG;IACvG,GAAG,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,iGAAiG;IACjG,OAAO,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACjI;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6GAA6G;IAC7G,OAAO,EAAE,qBAAqB,CAAC;IAC/B,8JAA8J;IAC9J,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0KAA0K;IAC1K,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,wGAAwG;IACxG,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvG;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA4CvH"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * gitvault D6 — named addressing resolution + id-pinning (repo-first-onramp
3
+ * task 4.5).
4
+ *
5
+ * Two things live here, both Node-only (local git state):
6
+ *
7
+ * - PIN read/write: `r402.repoId` (+ `r402.repoAddress`, the human name it
8
+ * was resolved from) in the repository's LOCAL git config
9
+ * (`git config --local` — this checkout's own `.git/config`, never
10
+ * global). "Local git state" per design D6's id-pinning paragraph.
11
+ * - `resolveGitvaultAddress`: the orchestrator the remote helper and
12
+ * `gitvault snapshot` drive — pinned id first, then dispatch on the
13
+ * address's form (id vs slug — {@link gitvaultRemoteAddressForm}), then
14
+ * (slug-form only, opt-in via `allow_create`) push-to-create on a miss.
15
+ *
16
+ * ID-PINNING RATIONALE (design D6, "resolved"): "on first contact the helper
17
+ * resolves slug/name → repo_id and pins the immutable id in local git state.
18
+ * Names are sugar for humans and first-time clones; every existing checkout
19
+ * follows the id and survives any rename." Concretely: an id-form address
20
+ * (`org_id`/`prj_...`) already survives a rename (project ids never change),
21
+ * so pinning buys it nothing and this module never pins one. A SLUG-form
22
+ * address re-resolves `org-slug/name → repo_id` over the network on every
23
+ * open unless pinned — and a rename of either half would silently break that
24
+ * resolution for an EXISTING checkout the moment it takes effect. Pinning
25
+ * `repo_id` the first time a slug-form address resolves means every later
26
+ * open on this checkout goes straight to `repo_id` (no resolution round-trip,
27
+ * and no exposure to a later rename at all) — structurally better than a
28
+ * redirect, per the design's own framing.
29
+ */
30
+ import { hardenedGit } from "./gitvault-snapshot.js";
31
+ import { gitvaultRemoteAddressForm } from "../namespaces/gitvault.js";
32
+ import { pushToCreateGitvault } from "./gitvault-push-to-create.js";
33
+ const CONFIG_KEY_REPO_ID = "r402.repoId";
34
+ /** The `org-slug/name` text the pin was resolved from — diagnostic only; resolution never reads it back. */
35
+ const CONFIG_KEY_ADDRESS = "r402.repoAddress";
36
+ async function readLocalGitConfig(repoDir, key) {
37
+ try {
38
+ const out = (await hardenedGit(repoDir, ["config", "--local", "--get", key])).text().trim();
39
+ return out.length > 0 ? out : null;
40
+ }
41
+ catch {
42
+ // `git config --get` exits non-zero both when the key is absent and when
43
+ // this is not a repository at all — either way, "nothing pinned" is the
44
+ // correct read for a resolver that must degrade gracefully.
45
+ return null;
46
+ }
47
+ }
48
+ /** Read this checkout's pinned `repo_id`, or `null` when nothing is pinned. */
49
+ export async function readPinnedGitvaultRepo(repoDir) {
50
+ const repoId = await readLocalGitConfig(repoDir, CONFIG_KEY_REPO_ID);
51
+ if (!repoId)
52
+ return null;
53
+ const address = await readLocalGitConfig(repoDir, CONFIG_KEY_ADDRESS);
54
+ const parts = address ? address.split("/") : [];
55
+ const resolvedFrom = parts.length === 2 && parts[0] && parts[1] ? { org_slug: parts[0], repo_name: parts.slice(1).join("/") } : null;
56
+ return { repo_id: repoId, resolved_from: resolvedFrom };
57
+ }
58
+ /** Pin `repo_id` (and the address it was resolved from) into this checkout's LOCAL git config. */
59
+ export async function pinGitvaultRepo(repoDir, repoId, resolvedFrom) {
60
+ await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_REPO_ID, repoId]);
61
+ await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_ADDRESS, `${resolvedFrom.org_slug}/${resolvedFrom.repo_name}`]);
62
+ }
63
+ /**
64
+ * Resolve a parsed remote address to `{repo_id, project_id, org_id}`,
65
+ * pinning `repo_id` in local git state on the first successful SLUG-form
66
+ * resolution (task 4.5), and — when `allow_create` is set and resolution
67
+ * misses — push-to-create it (task 4.4/4.5, design D6).
68
+ */
69
+ export async function resolveGitvaultAddress(options) {
70
+ if (options.repo_dir) {
71
+ const pinned = await readPinnedGitvaultRepo(options.repo_dir);
72
+ if (pinned) {
73
+ const record = await options.transport.getVaultRecord({ repo_id: pinned.repo_id });
74
+ return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "slug", via: "pin", address: pinned.resolved_from, created: null };
75
+ }
76
+ }
77
+ const form = gitvaultRemoteAddressForm(options.address);
78
+ if (form === "id") {
79
+ // Id-form is already rename-proof (a project id never changes) — no pin,
80
+ // per the design's own instruction ("pin only resolves names").
81
+ const record = await options.transport.findVaultByProject({ project_id: options.address.project_id });
82
+ return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "id", via: "resolved", address: null, created: null };
83
+ }
84
+ const orgSlug = options.address.org_id;
85
+ const repoName = options.address.project_id;
86
+ // `allow_create` delegates straight to `pushToCreateGitvault`, which
87
+ // already opens with its OWN fast-path `findVaultByRepo` read (step 1 of
88
+ // its own doc comment) — probing here first too would just double the
89
+ // network read on every ordinary (non-creating) push.
90
+ if (options.allow_create) {
91
+ const result = await pushToCreateGitvault({
92
+ keystore: options.keystore,
93
+ transport: options.transport,
94
+ org_slug: orgSlug,
95
+ repo_name: repoName,
96
+ ...(options.client_creation_id !== undefined ? { client_creation_id: options.client_creation_id } : {}),
97
+ ...(options.service_public_key !== undefined ? { service_public_key: options.service_public_key } : {}),
98
+ });
99
+ if (options.repo_dir)
100
+ await pinGitvaultRepo(options.repo_dir, result.repo_id, { org_slug: orgSlug, repo_name: repoName });
101
+ if (!result.found && result.created)
102
+ await options.onVaultCreated?.(result.created);
103
+ return { repo_id: result.repo_id, project_id: result.project_id, org_id: result.org_id, form: "slug", via: result.found ? "resolved" : "created", address: { org_slug: orgSlug, repo_name: repoName }, created: result.created };
104
+ }
105
+ // Read-only path (`list`/`fetch`, plain `status`): a miss is an ordinary
106
+ // not-found refusal — including `SLUG_RELEASED`, which is NEVER
107
+ // auto-followed and rethrows unchanged either way.
108
+ const record = await options.transport.findVaultByRepo({ org_slug: orgSlug, repo_name: repoName });
109
+ if (options.repo_dir)
110
+ await pinGitvaultRepo(options.repo_dir, record.repo_id, { org_slug: orgSlug, repo_name: repoName });
111
+ return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "slug", via: "resolved", address: { org_slug: orgSlug, repo_name: repoName }, created: null };
112
+ }
113
+ //# sourceMappingURL=gitvault-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitvault-address.js","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAA8B,MAAM,2BAA2B,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,MAAM,kBAAkB,GAAG,aAAa,CAAC;AACzC,4GAA4G;AAC5G,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAQ9C,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,GAAW;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5F,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,wEAAwE;QACxE,4DAA4D;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrI,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAC1D,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,YAAqD;IAC1H,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC9H,CAAC;AA8BD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAsC;IACjF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnK,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,MAAM,GAAwB,MAAM,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3H,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAE5C,qEAAqE;IACrE,yEAAyE;IACzE,sEAAsE;IACtE,sDAAsD;IACtD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,QAAQ;YACnB,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvG,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxG,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1H,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACnO,CAAC;IAED,yEAAyE;IACzE,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnG,IAAI,OAAO,CAAC,QAAQ;QAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1H,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9L,CAAC"}
@@ -51,13 +51,42 @@ export interface GitvaultJournaledObject {
51
51
  /** Set once the server receipt was compared equal to the local manifest. */
52
52
  finalized: boolean;
53
53
  }
54
- /** `journal/<client_creation_id>.json`. Stage-monotonic; every field from an earlier stage survives. */
54
+ /**
55
+ * Push-to-create addressing (repo-first-onramp task 4.5; design D6). A journal
56
+ * opened this way does not know its `org_id`/`project_id` until the ALLOCATED
57
+ * stage's response tells it (the gateway resolves `org_slug` and creates the
58
+ * project atomically inside the SAME allocate call — see routes/gitvault.ts's
59
+ * `resolveAllocationAuthz` in run402-private) — see `GitvaultCreationJournal`'s
60
+ * doc comment on why `org_id`/`project_id` are nullable.
61
+ */
62
+ export interface GitvaultPushToCreateAddress {
63
+ org_slug: string;
64
+ repo_name: string;
65
+ }
66
+ /**
67
+ * `journal/<client_creation_id>.json`. Stage-monotonic; every field from an
68
+ * earlier stage survives.
69
+ *
70
+ * `org_id` / `project_id` are `string | null` because of push-to-create
71
+ * (repo-first-onramp task 4.5, design D6): a journal opened with
72
+ * `push_to_create` set does not know either value until the ALLOCATED stage's
73
+ * response names them (trust-on-first-use — `checkAllocation` skips those two
74
+ * comparisons while they are `null` and this module pins them from the
75
+ * allocation the FIRST time, then treats the pin as authoritative on every
76
+ * later call for this same journal, same as an ordinary `project_id`-addressed
77
+ * journal always has been). Exactly one of `project_id` or `push_to_create` is
78
+ * set at open time; `push_to_create` itself never changes across the journal's
79
+ * life — it is the RESUMABILITY KEY for a push-to-create attempt, the way
80
+ * `(org_id, project_id)` is for the ordinary path.
81
+ */
55
82
  export interface GitvaultCreationJournal {
56
83
  version: 1;
57
84
  stage: GitvaultCreationStage;
58
85
  client_creation_id: string;
59
- org_id: string;
60
- project_id: string;
86
+ org_id: string | null;
87
+ project_id: string | null;
88
+ /** Set only for a push-to-create journal (task 4.5); `null` otherwise. */
89
+ push_to_create: GitvaultPushToCreateAddress | null;
61
90
  creator_signing_fingerprint: string;
62
91
  creator_encryption_fingerprint: string;
63
92
  created_at: string;
@@ -72,9 +101,17 @@ export interface GitvaultCreationJournal {
72
101
  genesis_sha256: string | null;
73
102
  /** ACTIVE — the emitted recovery receipt. */
74
103
  recovery_receipt: GitvaultRecoveryReceipt | null;
75
- /** A terminal refusal, if reconciliation hit one (the journal is kept for diagnosis, never retried destructively). */
104
+ /**
105
+ * A terminal refusal, if reconciliation hit one (the journal is kept for
106
+ * diagnosis, never retried destructively). `REPO_CREATION_CONFLICT` (task
107
+ * 4.5) marks a push-to-create journal that lost the atomic name-claim race
108
+ * — `details.project_id` names the winner, exactly what
109
+ * `pushToCreateGitvault` needs to resolve to it and proceed as an ordinary
110
+ * push (design D6: "the loser's work is not lost — it just wasn't the
111
+ * creator").
112
+ */
76
113
  refusal: {
77
- code: "VAULT_CREATION_CONFLICT" | "ALLOCATION_SUPERSEDED";
114
+ code: "VAULT_CREATION_CONFLICT" | "ALLOCATION_SUPERSEDED" | "REPO_CREATION_CONFLICT";
78
115
  at: string;
79
116
  details?: Record<string, unknown>;
80
117
  } | null;
@@ -97,7 +134,7 @@ export interface GitvaultCreationJournal {
97
134
  * `checkAllocation` compares the record's fingerprints back against this
98
135
  * principal's — which is what proves the keys we sent are the keys it stored.
99
136
  */
100
- export interface GitvaultAllocateRequest {
137
+ export type GitvaultAllocateRequest = {
101
138
  client_creation_id: string;
102
139
  org_id: string;
103
140
  project_id: string;
@@ -105,7 +142,20 @@ export interface GitvaultAllocateRequest {
105
142
  creator_signing_pubkey: string;
106
143
  /** Raw X25519 public key, canonical base64url (43 chars, decodes to 32 bytes). */
107
144
  creator_encryption_pubkey: string;
108
- }
145
+ } | {
146
+ /**
147
+ * Push-to-create (repo-first-onramp task 4.4/4.5, design D6):
148
+ * `{org_slug, repo_name}` in place of `{org_id, project_id}`. The
149
+ * gateway resolves the slug, atomically claims the name, creates the
150
+ * project, and allocates the vault — all inside this one call
151
+ * (`POST /gitvault/v1/vaults`, same route, alternate body shape).
152
+ */
153
+ client_creation_id: string;
154
+ org_slug: string;
155
+ repo_name: string;
156
+ creator_signing_pubkey: string;
157
+ creator_encryption_pubkey: string;
158
+ };
109
159
  export interface GitvaultPutObjectRequest {
110
160
  repo_id: string;
111
161
  path: string;
@@ -160,8 +210,16 @@ export interface GitvaultCreationTransport {
160
210
  export interface GitvaultCreationOptions {
161
211
  keystore: GitvaultKeystore;
162
212
  transport: GitvaultCreationTransport;
163
- org_id: string;
164
- project_id: string;
213
+ /**
214
+ * Exactly ONE addressing form: either `{org_id, project_id}` (the ordinary
215
+ * path — a project already exists) or `push_to_create` (task 4.5 — the
216
+ * project does not exist yet; the gateway creates it atomically alongside
217
+ * the vault). Passing both, or neither, is a local validation error.
218
+ */
219
+ org_id?: string;
220
+ project_id?: string;
221
+ /** Push-to-create addressing (repo-first-onramp task 4.5, design D6) — mutually exclusive with `{org_id, project_id}`. */
222
+ push_to_create?: GitvaultPushToCreateAddress;
165
223
  /** Resume an existing journal, or pin the idempotency key (tests). Fresh CSPRNG when omitted. */
166
224
  client_creation_id?: string;
167
225
  /** Clock injection. */
@@ -173,6 +231,9 @@ export interface GitvaultCreationOptions {
173
231
  }
174
232
  export interface GitvaultCreationResult {
175
233
  repo_id: string;
234
+ /** The owning org/project, resolved by ACTIVE either way — trust-on-first-use for a push-to-create journal (task 4.5). */
235
+ org_id: string;
236
+ project_id: string;
176
237
  genesis_sha256: string;
177
238
  recovery_receipt: GitvaultRecoveryReceipt;
178
239
  journal: GitvaultCreationJournal;
@@ -206,6 +267,17 @@ export declare function listIncompleteGitvaultJournals(keystore: GitvaultKeystor
206
267
  * preferred, on the theory that it is the attempt most likely still moving.
207
268
  */
208
269
  export declare function findResumableGitvaultJournal(keystore: GitvaultKeystore, orgId: string, projectId: string): GitvaultCreationJournal | null;
270
+ /**
271
+ * The push-to-create sibling of {@link findResumableGitvaultJournal} (task
272
+ * 4.5): find an in-progress LOCAL push-to-create attempt for this exact
273
+ * `(org_slug, repo_name)` address, so a retry after a crash resumes it rather
274
+ * than starting a second competing attempt. A journal that already lost the
275
+ * name-claim race (`REPO_CREATION_CONFLICT`) is excluded — resuming it would
276
+ * only reproduce the same refusal; `pushToCreateGitvault` starts a fresh
277
+ * attempt in that case (and typically does not even reach here, since its
278
+ * own fast-path read resolves the winner's repo directly).
279
+ */
280
+ export declare function findResumablePushToCreateJournal(keystore: GitvaultKeystore, orgSlug: string, repoName: string): GitvaultCreationJournal | null;
209
281
  export declare class GitvaultCreation {
210
282
  private readonly keystore;
211
283
  private readonly transport;
@@ -1 +1 @@
1
- {"version":3,"file":"gitvault-creation-journal.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitvault-creation-journal.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"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"}
@@ -107,7 +107,24 @@ export function listIncompleteGitvaultJournals(keystore) {
107
107
  * preferred, on the theory that it is the attempt most likely still moving.
108
108
  */
109
109
  export function findResumableGitvaultJournal(keystore, orgId, projectId) {
110
- const candidates = listIncompleteGitvaultJournals(keystore).filter((j) => j.org_id === orgId && j.project_id === projectId && j.refusal === null);
110
+ const candidates = listIncompleteGitvaultJournals(keystore).filter((j) => j.push_to_create === null && j.org_id === orgId && j.project_id === projectId && j.refusal === null);
111
+ if (candidates.length === 0)
112
+ return null;
113
+ candidates.sort((a, b) => (a.updated_at < b.updated_at ? 1 : a.updated_at > b.updated_at ? -1 : 0));
114
+ return candidates[0];
115
+ }
116
+ /**
117
+ * The push-to-create sibling of {@link findResumableGitvaultJournal} (task
118
+ * 4.5): find an in-progress LOCAL push-to-create attempt for this exact
119
+ * `(org_slug, repo_name)` address, so a retry after a crash resumes it rather
120
+ * than starting a second competing attempt. A journal that already lost the
121
+ * name-claim race (`REPO_CREATION_CONFLICT`) is excluded — resuming it would
122
+ * only reproduce the same refusal; `pushToCreateGitvault` starts a fresh
123
+ * attempt in that case (and typically does not even reach here, since its
124
+ * own fast-path read resolves the winner's repo directly).
125
+ */
126
+ export function findResumablePushToCreateJournal(keystore, orgSlug, repoName) {
127
+ const candidates = listIncompleteGitvaultJournals(keystore).filter((j) => j.push_to_create !== null && j.push_to_create.org_slug === orgSlug && j.push_to_create.repo_name === repoName && j.refusal === null);
111
128
  if (candidates.length === 0)
112
129
  return null;
113
130
  candidates.sort((a, b) => (a.updated_at < b.updated_at ? 1 : a.updated_at > b.updated_at ? -1 : 0));
@@ -134,6 +151,10 @@ export class GitvaultCreation {
134
151
  * network; no ciphertext exists yet.
135
152
  */
136
153
  static open(options) {
154
+ const usingPushToCreate = options.push_to_create !== undefined;
155
+ if (usingPushToCreate === (options.org_id !== undefined || options.project_id !== undefined)) {
156
+ fail("GITVAULT_BAD_ADDRESS", "pass exactly one of {org_id, project_id} or push_to_create, never both or neither", "opening gitvault creation");
157
+ }
137
158
  const ks = options.keystore;
138
159
  const identity = ks.ensureIdentity();
139
160
  const signing = ks.signingKeypair(identity);
@@ -144,8 +165,18 @@ export class GitvaultCreation {
144
165
  const id = options.client_creation_id ?? newHex32();
145
166
  const existing = readGitvaultJournal(ks, id);
146
167
  if (existing) {
147
- if (existing.org_id !== options.org_id || existing.project_id !== options.project_id) {
148
- fail("VAULT_CREATION_CONFLICT", "journal belongs to a different org/project", "resuming gitvault creation", { client_creation_id: id });
168
+ // Addressing-key mismatch refuses a destructive retry the ordinary
169
+ // (org_id, project_id) form and push-to-create's (org_slug, repo_name)
170
+ // form are each other's cross-check: a journal opened one way must
171
+ // never silently resume under the other, and a push-to-create journal
172
+ // compares its OWN address (`push_to_create` never changes across a
173
+ // journal's life, unlike `org_id`/`project_id`, which start null there
174
+ // and get pinned from the allocation response).
175
+ const mismatch = usingPushToCreate
176
+ ? existing.push_to_create === null || existing.push_to_create.org_slug !== options.push_to_create.org_slug || existing.push_to_create.repo_name !== options.push_to_create.repo_name
177
+ : existing.push_to_create !== null || existing.org_id !== options.org_id || existing.project_id !== options.project_id;
178
+ if (mismatch) {
179
+ fail("VAULT_CREATION_CONFLICT", "journal belongs to a different org/project (or addressing form)", "resuming gitvault creation", { client_creation_id: id });
149
180
  }
150
181
  if (existing.creator_signing_fingerprint !== identity.signing_fingerprint || existing.creator_encryption_fingerprint !== identity.encryption_fingerprint) {
151
182
  fail("VAULT_CREATION_CONFLICT", "journal was prepared by a different identity; refusing the destructive retry", "resuming gitvault creation", { client_creation_id: id });
@@ -157,8 +188,9 @@ export class GitvaultCreation {
157
188
  version: 1,
158
189
  stage: "LOCAL_KEYS_PREPARED",
159
190
  client_creation_id: id,
160
- org_id: options.org_id,
161
- project_id: options.project_id,
191
+ org_id: usingPushToCreate ? null : options.org_id,
192
+ project_id: usingPushToCreate ? null : options.project_id,
193
+ push_to_create: options.push_to_create ?? null,
162
194
  creator_signing_fingerprint: identity.signing_fingerprint,
163
195
  creator_encryption_fingerprint: identity.encryption_fingerprint,
164
196
  created_at: at,
@@ -210,17 +242,53 @@ export class GitvaultCreation {
210
242
  const encryption = this.keystore.encryptionKeypair(identity);
211
243
  // ── 2. ALLOCATED ──
212
244
  if (this.journal.stage === "LOCAL_KEYS_PREPARED") {
213
- const allocation = await this.transport.allocate({
214
- client_creation_id: this.journal.client_creation_id,
215
- org_id: this.journal.org_id,
216
- project_id: this.journal.project_id,
217
- // PUBKEYS on the request; the returned record carries the fingerprints
218
- // the gateway derives from them. See GitvaultAllocateRequest.
219
- creator_signing_pubkey: identity.signing_pubkey,
220
- creator_encryption_pubkey: identity.encryption_pubkey,
221
- });
245
+ // PUBKEYS on the request; the returned record carries the fingerprints
246
+ // the gateway derives from them. See GitvaultAllocateRequest.
247
+ const request = this.journal.push_to_create
248
+ ? {
249
+ client_creation_id: this.journal.client_creation_id,
250
+ org_slug: this.journal.push_to_create.org_slug,
251
+ repo_name: this.journal.push_to_create.repo_name,
252
+ creator_signing_pubkey: identity.signing_pubkey,
253
+ creator_encryption_pubkey: identity.encryption_pubkey,
254
+ }
255
+ : {
256
+ client_creation_id: this.journal.client_creation_id,
257
+ org_id: this.journal.org_id,
258
+ project_id: this.journal.project_id,
259
+ creator_signing_pubkey: identity.signing_pubkey,
260
+ creator_encryption_pubkey: identity.encryption_pubkey,
261
+ };
262
+ let allocation;
263
+ try {
264
+ allocation = await this.transport.allocate(request);
265
+ }
266
+ catch (e) {
267
+ // Push-to-create's race (task 4.4/4.5, design D6): the atomic
268
+ // name-claim was lost to a concurrent pusher. Mark the journal
269
+ // refused with the winner's project_id so `pushToCreateGitvault` can
270
+ // resolve to it and proceed as an ordinary push — "the loser's work
271
+ // is not lost, it just wasn't the creator." Never retried
272
+ // destructively from here; a fresh push-to-create attempt (if one is
273
+ // ever made) starts its own journal.
274
+ const code = e?.code;
275
+ if (this.journal.push_to_create && code === "REPO_CREATION_CONFLICT") {
276
+ const details = e?.details;
277
+ this.refuse("REPO_CREATION_CONFLICT", "lost the push-to-create name-claim race to a concurrent pusher", details);
278
+ }
279
+ throw e;
280
+ }
281
+ // Trust-on-first-use (task 4.5): a push-to-create journal has no
282
+ // org_id/project_id to check the allocation against yet — `checkAllocation`
283
+ // skips those two comparisons while `expected.org_id`/`project_id` are
284
+ // `undefined`, and the (owner-authorized, signature-verified)
285
+ // allocation's own values become the pin from here on.
222
286
  this.verifyAllocation(allocation);
223
- await this.advance("ALLOCATED", { allocation });
287
+ await this.advance("ALLOCATED", {
288
+ allocation,
289
+ org_id: this.journal.org_id ?? allocation.org_id,
290
+ project_id: this.journal.project_id ?? allocation.project_id,
291
+ });
224
292
  }
225
293
  const allocation = this.journal.allocation;
226
294
  const repoId = allocation.repo_id;
@@ -280,6 +348,8 @@ export class GitvaultCreation {
280
348
  this.refuse("VAULT_CREATION_CONFLICT", "journal has no finalized key_envelope");
281
349
  const genesis = buildVaultGenesis({
282
350
  repo_id: repoId,
351
+ // Guaranteed non-null past ALLOCATED, which pins both from the
352
+ // allocation response either way (ordinary or push-to-create).
283
353
  org_id: this.journal.org_id,
284
354
  project_id: this.journal.project_id,
285
355
  allocation_nonce: allocation.allocation_nonce,
@@ -342,6 +412,8 @@ export class GitvaultCreation {
342
412
  }
343
413
  return {
344
414
  repo_id: repoId,
415
+ org_id: this.journal.org_id,
416
+ project_id: this.journal.project_id,
345
417
  genesis_sha256: this.journal.genesis_sha256,
346
418
  recovery_receipt: this.journal.recovery_receipt,
347
419
  journal: this.journal,
@@ -353,8 +425,12 @@ export class GitvaultCreation {
353
425
  client_creation_id: this.journal.client_creation_id,
354
426
  creator_signing_fingerprint: this.journal.creator_signing_fingerprint,
355
427
  creator_encryption_fingerprint: this.journal.creator_encryption_fingerprint,
356
- org_id: this.journal.org_id,
357
- project_id: this.journal.project_id,
428
+ // `undefined`, not `null`, is what tells checkAllocation to skip a
429
+ // comparison — trust-on-first-use for a fresh push-to-create journal
430
+ // (task 4.5). A resumed journal past its first ALLOCATED call already
431
+ // has these pinned and compares them normally.
432
+ org_id: this.journal.org_id ?? undefined,
433
+ project_id: this.journal.project_id ?? undefined,
358
434
  }, this.options.service_public_key);
359
435
  if (problems.length > 0) {
360
436
  fail("GITVAULT_ALLOCATION_INVALID", "allocation does not match this creation attempt", "verifying gitvault allocation", { problems });
@@ -1 +1 @@
1
- {"version":3,"file":"gitvault-creation-journal.js","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitvault-creation-journal.js","sourceRoot":"","sources":["../../src/node/gitvault-creation-journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EAAoB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEjG,gFAAgF;AAEhF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,qBAAqB;IACrB,WAAW;IACX,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,QAAQ;CACA,CAAC;AAiNX,SAAS,IAAI,CAAC,IAAY,EAAE,OAAe,EAAE,OAAe,EAAE,OAAiB;IAC7E,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,oBAA4B;IAC/D,OAAO,aAAa,KAAK,IAAI,oBAAoB,EAAE,CAAC;AACtD,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,mBAAmB,CAAC,QAA0B,EAAE,gBAAwB;IACtF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAAE,IAAI,CAAC,iBAAiB,EAAE,6CAA6C,EAAE,iCAAiC,CAAC,CAAC;IACxJ,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,gBAAgB,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA0B,EAAE,gBAAwB;IACtF,MAAM,IAAI,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IAC5D,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,0BAA0B,EAAE,sDAAsD,EAAE,mCAAmC,EAAE,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC1K,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,8BAA8B,CAAC,QAA0B;IACvE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,MAAM,GAAG,GAA8B,EAAE,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACvC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QACzC,MAAM,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAA0B,EAAE,KAAa,EAAE,SAAiB;IACvG,MAAM,UAAU,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAC3G,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gCAAgC,CAAC,QAA0B,EAAE,OAAe,EAAE,QAAgB;IAC5G,MAAM,UAAU,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,cAAc,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAC3I,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC;AACxB,CAAC;AAED,MAAM,OAAO,gBAAgB;IACV,QAAQ,CAAmB;IAC3B,SAAS,CAA4B;IACrC,GAAG,CAAa;IAChB,OAAO,CAA0B;IAC1C,OAAO,CAA0B;IACjC,OAAO,GAAG,KAAK,CAAC;IAExB,YAAoB,OAAgC,EAAE,OAAgC,EAAE,OAAgB;QACtG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,OAAgC;QAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC;QAC/D,IAAI,iBAAiB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;YAC7F,IAAI,CAAC,sBAAsB,EAAE,mFAAmF,EAAE,2BAA2B,CAAC,CAAC;QACjJ,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,oBAAoB,EAAE,mFAAmF,EAAE,2BAA2B,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvO,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,IAAI,QAAQ,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,qEAAqE;YACrE,uEAAuE;YACvE,mEAAmE;YACnE,sEAAsE;YACtE,oEAAoE;YACpE,uEAAuE;YACvE,gDAAgD;YAChD,MAAM,QAAQ,GAAG,iBAAiB;gBAChC,CAAC,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,KAAK,OAAO,CAAC,cAAe,CAAC,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,KAAK,OAAO,CAAC,cAAe,CAAC,SAAS;gBACtL,CAAC,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;YACzH,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,yBAAyB,EAAE,iEAAiE,EAAE,4BAA4B,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/J,CAAC;YACD,IAAI,QAAQ,CAAC,2BAA2B,KAAK,QAAQ,CAAC,mBAAmB,IAAI,QAAQ,CAAC,8BAA8B,KAAK,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACzJ,IAAI,CAAC,yBAAyB,EAAE,8EAA8E,EAAE,4BAA4B,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5K,CAAC;YACD,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAA4B;YACvC,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,qBAAqB;YAC5B,kBAAkB,EAAE,EAAE;YACtB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO;YAClD,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAW;YAC1D,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;YAC9C,2BAA2B,EAAE,QAAQ,CAAC,mBAAmB;YACzD,8BAA8B,EAAE,QAAQ,CAAC,sBAAsB;YAC/D,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACpF,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7J,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAA4B,EAAE,KAAuC;QACzF,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,IAAoF,EAAE,OAAe,EAAE,OAAiC;QACrJ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5H,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,oGAAoG,EAAE,4BAA4B,EAAE;gBAClK,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBACnD,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACnC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;aAChC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAE,CAAC;QAE9D,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,qBAAqB,EAAE,CAAC;YACjD,uEAAuE;YACvE,8DAA8D;YAC9D,MAAM,OAAO,GAA4B,IAAI,CAAC,OAAO,CAAC,cAAc;gBAClE,CAAC,CAAC;oBACE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;oBACnD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ;oBAC9C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS;oBAChD,sBAAsB,EAAE,QAAQ,CAAC,cAAc;oBAC/C,yBAAyB,EAAE,QAAQ,CAAC,iBAAiB;iBACtD;gBACH,CAAC,CAAC;oBACE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;oBACnD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAO;oBAC5B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;oBACpC,sBAAsB,EAAE,QAAQ,CAAC,cAAc;oBAC/C,yBAAyB,EAAE,QAAQ,CAAC,iBAAiB;iBACtD,CAAC;YACN,IAAI,UAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,8DAA8D;gBAC9D,+DAA+D;gBAC/D,qEAAqE;gBACrE,oEAAoE;gBACpE,0DAA0D;gBAC1D,qEAAqE;gBACrE,qCAAqC;gBACrC,MAAM,IAAI,GAAI,CAA8B,EAAE,IAAI,CAAC;gBACnD,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;oBACrE,MAAM,OAAO,GAAI,CAAkD,EAAE,OAAO,CAAC;oBAC7E,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,gEAAgE,EAAE,OAAO,CAAC,CAAC;gBACnH,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;YACD,iEAAiE;YACjE,4EAA4E;YAC5E,uEAAuE;YACvE,8DAA8D;YAC9D,uDAAuD;YACvD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC9B,UAAU;gBACV,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;gBAChD,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU;aAC7D,CAAC,CAAC;QACL,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,MAAM,KAAK,GAAG,sBAAsB,CAAC;QAErC,yEAAyE;QACzE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,MAAM;gBACf,KAAK;gBACL,oBAAoB,EAAE,UAAU,CAAC,UAAU;gBAC3C,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAChD,CAAC,CAAC;YACH,MAAM,MAAM,GAA4B;gBACtC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;gBAC/D,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC5C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,KAAK;aACjB,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,yFAAyF;QACzF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,SAAS;oBAAE,SAAS;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAC/C,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;oBAClG,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,0FAA0F,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5J,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtF,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,4DAA4D,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAChK,CAAC;oBACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnL,IAAI,OAAO,CAAC,mBAAmB,KAAK,MAAM,CAAC,mBAAmB,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC3G,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,qEAAqE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChJ,CAAC;gBACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,2FAA2F;QAC3F,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,cAAc,CAAC,CAAC;YAC1F,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,CAAC,CAAC;YACrG,MAAM,OAAO,GAAG,iBAAiB,CAAC;gBAChC,OAAO,EAAE,MAAM;gBACf,+DAA+D;gBAC/D,+DAA+D;gBAC/D,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAO;gBAC5B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;gBACpC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;gBAC7C,eAAe,EAAE,OAAO;gBACxB,6BAA6B,EAAE,UAAU,CAAC,UAAU;gBACpD,gBAAgB,EAAE,cAAc,CAAC,OAAO;gBACxC,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAChD,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAwB,CAAC;YACtI,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,6CAA6C,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvI,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,OAA0C,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1I,CAAC;QAED,6EAA6E;QAC7E,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAQ,CAAC;YACtC,MAAM,KAAK,GAAG,WAAW,CAAC,OAA0C,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc;gBAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,2DAA2D,CAAC,CAAC;YAC9I,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACtE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,+FAA+F,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/K,IAAI,MAAM,CAAC,OAAO,KAAK,uBAAuB,EAAE,CAAC;oBAC/C,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,yEAAyE,EAAE,EAAE,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAC/K,CAAC;gBACD,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,oEAAoE,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC5J,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,oBAAoB,CAAC;gBACnC,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAO;gBAC5B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;gBACpC,cAAc,EAAE,IAAI;gBACpB,eAAe,EAAE,OAAO;gBACxB,6BAA6B,EAAE,UAAU,CAAC,UAAU;aACrD,CAAC,CAAC;YACH,wFAAwF;YACxF,gGAAgG;YAChG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACrB,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAO;gBAC5B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;gBACpC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;gBACpC,KAAK;gBACL,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,IAAI;gBACd,oBAAoB,EAAE,IAAI;gBAC1B,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAO;YAC5B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAW;YACpC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAe;YAC5C,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAiB;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;SAC7C,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,UAA8B;QACrD,MAAM,QAAQ,GAAG,eAAe,CAC9B,UAAU,EACV;YACE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YACnD,2BAA2B,EAAE,IAAI,CAAC,OAAO,CAAC,2BAA2B;YACrE,8BAA8B,EAAE,IAAI,CAAC,OAAO,CAAC,8BAA8B;YAC3E,mEAAmE;YACnE,qEAAqE;YACrE,sEAAsE;YACtE,+CAA+C;YAC/C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS;YACxC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,SAAS;SACjD,EACD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,6BAA6B,EAAE,iDAAiD,EAAE,+BAA+B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxI,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,wEAAwE,EAAE,EAAE,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC9K,CAAC;IACH,CAAC;CACF;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgC;IACnE,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9C,CAAC;AAYD,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,SAAS,EAAE,gCAAgC;QAC3C,WAAW,EAAE,kCAAkC;QAC/C,mBAAmB,EAAE,wPAAwP;KAC9Q,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,SAAS,IAAI,CAAC,KAAiB;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,CAAa,EAAE,CAAa;IAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IACzD,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC"}
@@ -338,6 +338,19 @@ export interface GitvaultTransport extends GitvaultCreationTransport {
338
338
  findVaultByProject(request: {
339
339
  project_id: string;
340
340
  }): Promise<GitvaultVaultRecord>;
341
+ /**
342
+ * Resolve a vault by its address-form `org-slug/name` (repo-first-onramp
343
+ * task 4.3, design D6) — `GET /gitvault/v1/vaults?repo=<org-slug>/<name>`.
344
+ * `RESOURCE_NOT_FOUND` for no such org OR no such name within it (the two
345
+ * collapse deliberately, so slug-namespace probing learns nothing extra);
346
+ * `SLUG_RELEASED` (with `successor_slug`/`released_at`/`cooldown_until` on
347
+ * the error) while the slug is in its post-rename cooldown — never
348
+ * auto-followed.
349
+ */
350
+ findVaultByRepo(request: {
351
+ org_slug: string;
352
+ repo_name: string;
353
+ }): Promise<GitvaultVaultRecord>;
341
354
  acquireMaintenanceLease(request: GitvaultMaintenanceLeaseRequest): Promise<GitvaultMaintenanceLease>;
342
355
  heartbeatMaintenanceLease(request: {
343
356
  repo_id: string;