@cotal-ai/core 0.90.1 → 0.91.0

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 (140) hide show
  1. package/dist/agent-file.d.ts +2 -1
  2. package/dist/agent-file.d.ts.map +1 -1
  3. package/dist/agent-file.js +5 -3
  4. package/dist/agent-file.js.map +1 -1
  5. package/dist/auth-provider.d.ts +144 -1
  6. package/dist/auth-provider.d.ts.map +1 -1
  7. package/dist/auth-provider.js +24 -0
  8. package/dist/auth-provider.js.map +1 -1
  9. package/dist/authority-store-config.d.ts +31 -0
  10. package/dist/authority-store-config.d.ts.map +1 -0
  11. package/dist/authority-store-config.js +45 -0
  12. package/dist/authority-store-config.js.map +1 -0
  13. package/dist/backup-config.d.ts +32 -1
  14. package/dist/backup-config.d.ts.map +1 -1
  15. package/dist/backup-config.js +11 -0
  16. package/dist/backup-config.js.map +1 -1
  17. package/dist/broker-identity.d.ts +24 -0
  18. package/dist/broker-identity.d.ts.map +1 -0
  19. package/dist/broker-identity.js +36 -0
  20. package/dist/broker-identity.js.map +1 -0
  21. package/dist/browser-control.d.ts +1 -0
  22. package/dist/browser-control.d.ts.map +1 -1
  23. package/dist/browser-control.js +1 -0
  24. package/dist/browser-control.js.map +1 -1
  25. package/dist/browser-validators-build.d.ts +1 -0
  26. package/dist/browser-validators-build.d.ts.map +1 -1
  27. package/dist/channels.d.ts +14 -0
  28. package/dist/channels.d.ts.map +1 -1
  29. package/dist/channels.js +19 -5
  30. package/dist/channels.js.map +1 -1
  31. package/dist/command.d.ts +57 -0
  32. package/dist/command.d.ts.map +1 -1
  33. package/dist/command.js +49 -2
  34. package/dist/command.js.map +1 -1
  35. package/dist/connector-setup.d.ts +6 -0
  36. package/dist/connector-setup.d.ts.map +1 -1
  37. package/dist/connector.d.ts +3 -0
  38. package/dist/connector.d.ts.map +1 -1
  39. package/dist/connector.js.map +1 -1
  40. package/dist/endpoint-binding.d.ts +66 -1
  41. package/dist/endpoint-binding.d.ts.map +1 -1
  42. package/dist/endpoint-binding.js +167 -118
  43. package/dist/endpoint-binding.js.map +1 -1
  44. package/dist/endpoint-call.js +1 -1
  45. package/dist/endpoint-call.js.map +1 -1
  46. package/dist/endpoint-caller.d.ts +2 -0
  47. package/dist/endpoint-caller.d.ts.map +1 -1
  48. package/dist/endpoint-caller.js.map +1 -1
  49. package/dist/endpoint-grants.d.ts +7 -1
  50. package/dist/endpoint-grants.d.ts.map +1 -1
  51. package/dist/endpoint-grants.js +9 -1
  52. package/dist/endpoint-grants.js.map +1 -1
  53. package/dist/endpoint-invoke.d.ts +9 -0
  54. package/dist/endpoint-invoke.d.ts.map +1 -1
  55. package/dist/endpoint-invoke.js +7 -0
  56. package/dist/endpoint-invoke.js.map +1 -1
  57. package/dist/endpoint-schema-diff.d.ts +20 -0
  58. package/dist/endpoint-schema-diff.d.ts.map +1 -0
  59. package/dist/endpoint-schema-diff.js +15 -0
  60. package/dist/endpoint-schema-diff.js.map +1 -0
  61. package/dist/endpoint.d.ts +90 -5
  62. package/dist/endpoint.d.ts.map +1 -1
  63. package/dist/endpoint.js +329 -31
  64. package/dist/endpoint.js.map +1 -1
  65. package/dist/identity.d.ts +18 -0
  66. package/dist/identity.d.ts.map +1 -1
  67. package/dist/identity.js +28 -1
  68. package/dist/identity.js.map +1 -1
  69. package/dist/index.d.ts +12 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +12 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/issued-authority.d.ts +25 -1
  74. package/dist/issued-authority.d.ts.map +1 -1
  75. package/dist/issued-authority.js +24 -7
  76. package/dist/issued-authority.js.map +1 -1
  77. package/dist/membership-feed.d.ts +16 -12
  78. package/dist/membership-feed.d.ts.map +1 -1
  79. package/dist/membership-feed.js +143 -12
  80. package/dist/membership-feed.js.map +1 -1
  81. package/dist/one-line.d.ts +5 -4
  82. package/dist/one-line.d.ts.map +1 -1
  83. package/dist/one-line.js +6 -5
  84. package/dist/one-line.js.map +1 -1
  85. package/dist/provision.d.ts +4 -1
  86. package/dist/provision.d.ts.map +1 -1
  87. package/dist/provision.js +35 -16
  88. package/dist/provision.js.map +1 -1
  89. package/dist/registry.d.ts +8 -4
  90. package/dist/registry.d.ts.map +1 -1
  91. package/dist/registry.js +58 -20
  92. package/dist/registry.js.map +1 -1
  93. package/dist/run-admission.d.ts +18 -1
  94. package/dist/run-admission.d.ts.map +1 -1
  95. package/dist/run-admission.js +18 -3
  96. package/dist/run-admission.js.map +1 -1
  97. package/dist/sealed-reply.d.ts +21 -0
  98. package/dist/sealed-reply.d.ts.map +1 -0
  99. package/dist/sealed-reply.js +75 -0
  100. package/dist/sealed-reply.js.map +1 -0
  101. package/dist/secret-fs.d.ts +29 -6
  102. package/dist/secret-fs.d.ts.map +1 -1
  103. package/dist/secret-fs.js +107 -18
  104. package/dist/secret-fs.js.map +1 -1
  105. package/dist/space-deletion-targets.d.ts +4 -0
  106. package/dist/space-deletion-targets.d.ts.map +1 -0
  107. package/dist/space-deletion-targets.js +15 -0
  108. package/dist/space-deletion-targets.js.map +1 -0
  109. package/dist/space-initialization-diff.d.ts +47 -0
  110. package/dist/space-initialization-diff.d.ts.map +1 -0
  111. package/dist/space-initialization-diff.js +100 -0
  112. package/dist/space-initialization-diff.js.map +1 -0
  113. package/dist/space-initialization-observation.d.ts +52 -0
  114. package/dist/space-initialization-observation.d.ts.map +1 -0
  115. package/dist/space-initialization-observation.js +133 -0
  116. package/dist/space-initialization-observation.js.map +1 -0
  117. package/dist/space-resource-definitions.d.ts +86 -0
  118. package/dist/space-resource-definitions.d.ts.map +1 -0
  119. package/dist/space-resource-definitions.js +133 -0
  120. package/dist/space-resource-definitions.js.map +1 -0
  121. package/dist/space-schema-diff.d.ts +45 -0
  122. package/dist/space-schema-diff.d.ts.map +1 -0
  123. package/dist/space-schema-diff.js +204 -0
  124. package/dist/space-schema-diff.js.map +1 -0
  125. package/dist/space-schema-observation.d.ts +45 -0
  126. package/dist/space-schema-observation.d.ts.map +1 -0
  127. package/dist/space-schema-observation.js +78 -0
  128. package/dist/space-schema-observation.js.map +1 -0
  129. package/dist/spaces.d.ts.map +1 -1
  130. package/dist/spaces.js +5 -25
  131. package/dist/spaces.js.map +1 -1
  132. package/dist/stream-schema-diff.d.ts +31 -0
  133. package/dist/stream-schema-diff.d.ts.map +1 -0
  134. package/dist/stream-schema-diff.js +45 -0
  135. package/dist/stream-schema-diff.js.map +1 -0
  136. package/dist/streams.d.ts +30 -1
  137. package/dist/streams.d.ts.map +1 -1
  138. package/dist/streams.js +41 -18
  139. package/dist/streams.js.map +1 -1
  140. package/package.json +2 -2
@@ -195,9 +195,18 @@ export function assertNotRevoked(view) {
195
195
  if (view.revoked !== undefined)
196
196
  throw new EpEnvelopeError("permission-denied", `run ${view.admission.runId} was revoked by ${view.revoked.by} (${view.revoked.reason}); no further channel effect runs (SPEC 14.8)`);
197
197
  }
198
+ /** Native admission-store inputs, without creation, verification or admitted authority. */
199
+ export function admissionStoreDefinition(space) {
200
+ return {
201
+ bucket: admissionBucket(space),
202
+ createOptions: { allow_direct: false },
203
+ hardenAfterCreate: { ...AUTHORITY_STORE_IMMUTABLE_FLAGS, ...WRITE_ONCE_PER_KEY },
204
+ };
205
+ }
198
206
  /** Create-or-verify the admission store: `allow_direct=false`, file, no eviction. */
199
207
  export async function ensureAdmissionStore(jsm, kvm, space) {
200
- const bucket = admissionBucket(space);
208
+ const definition = admissionStoreDefinition(space);
209
+ const bucket = definition.bucket;
201
210
  const stream = `KV_${bucket}`;
202
211
  // WRITE-ONCE PER KEY, AT THE BROKER. Both rows are create-only and the marker is permanent
203
212
  // (SPEC 14.8), and the create-only CAS enforces neither on its own: the `run-admitter` holds a
@@ -207,13 +216,19 @@ export async function ensureAdmissionStore(jsm, kvm, space) {
207
216
  // replacement leaves no marker for the deletion-marker read to catch. The three immutability
208
217
  // flags close rollup, message delete and purge; write-once closes the rest, so the admission a
209
218
  // host reads is the one that was admitted, and each run and each marker still gets its one write.
210
- const shape = { ...AUTHORITY_STORE_IMMUTABLE_FLAGS, ...WRITE_ONCE_PER_KEY };
219
+ const shape = definition.hardenAfterCreate;
211
220
  if (await jsm.streams.info(stream).catch(() => undefined) === undefined) {
212
- await kvm.create(bucket, { allow_direct: false });
221
+ await kvm.create(bucket, definition.createOptions);
213
222
  const created = (await jsm.streams.info(stream)).config;
214
223
  await jsm.streams.update(stream, { ...created, ...shape });
215
224
  }
216
225
  const cfg = (await jsm.streams.info(stream)).config;
226
+ assertAdmissionStoreConfig(cfg, space);
227
+ }
228
+ /** Pure native admission-store invariant checks, without an admission or migration effect. */
229
+ export function assertAdmissionStoreConfig(cfg, space) {
230
+ const definition = admissionStoreDefinition(space);
231
+ const bucket = definition.bucket, shape = definition.hardenAfterCreate;
217
232
  if (cfg.allow_direct !== false || cfg.storage !== "file" || (cfg.max_age ?? 0) !== 0 || (cfg.max_msgs ?? -1) > 0 || (cfg.max_bytes ?? -1) > 0
218
233
  || !Array.isArray(cfg.subjects) || cfg.subjects.length !== 1 || cfg.subjects[0] !== `$KV.${bucket}.>`)
219
234
  throw new Error(`the run admission store ${bucket} has a drifted shape (allow_direct=${String(cfg.allow_direct)}); an authority store is never silently adopted - reprovision it (SPEC 14.8)`);
@@ -1 +1 @@
1
- {"version":3,"file":"run-admission.js","sourceRoot":"","sources":["../src/run-admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-admission.js","sourceRoot":"","sources":["../src/run-admission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** Whether `key` is an encoded curve public key: `X`, 55 more base32 characters and a valid
2
+ * checksum. */
3
+ export declare function isCurvePublicKey(key: string): boolean;
4
+ /** Seal `value`, as JSON, to the curve key `recipient` under a one-time sender key. `sealed` is
5
+ * base64url. Throws for a recipient that is not a curve public key. */
6
+ export declare function sealJson(value: unknown, recipient: string): {
7
+ sealer: string;
8
+ sealed: string;
9
+ };
10
+ /** A one-time curve key for receiving one sealed reply. It opens at most once and is cleared
11
+ * then, or by {@link SealRecipient.clear}. */
12
+ export declare class SealRecipient {
13
+ readonly publicKey: string;
14
+ private key;
15
+ constructor();
16
+ /** The JSON value `sealer` sealed to this key, or undefined when the bytes do not open or are
17
+ * not JSON, or this key was already used or cleared. */
18
+ openJson(sealed: string, sealer: string): unknown;
19
+ clear(): void;
20
+ }
21
+ //# sourceMappingURL=sealed-reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-reply.d.ts","sourceRoot":"","sources":["../src/sealed-reply.ts"],"names":[],"mappings":"AAgBA;gBACgB;AAChB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED;wEACwE;AACxE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAS9F;AAED;+CAC+C;AAC/C,qBAAa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAsB;;IAOjC;6DACyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAcjD,KAAK,IAAI,IAAI;CAId"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * One-time sealing of a reply to its caller. The caller mints a {@link SealRecipient}, sends only
3
+ * its public `X…` curve key, and keeps the private half in memory. The replier calls
4
+ * {@link sealJson}, which seals under a fresh one-time sender key and clears that key before it
5
+ * returns, and sends the sender's public key beside the sealed bytes. Only the recipient opens
6
+ * them.
7
+ *
8
+ * The cryptography is `@nats-io/nkeys` curve keys, unchanged: NaCl box (X25519 and
9
+ * XSalsa20-Poly1305) framed as `xkv1`, a random 24-byte nonce, then the box. That is the xkey format
10
+ * NATS uses to seal auth-callout responses. A sealed reply is confidential to its recipient. It
11
+ * does not identify the replier, because the sender key is one-time, so the rail that carried the
12
+ * reply stays the trust anchor and the opener checks every field it expects inside.
13
+ */
14
+ import { createCurve, fromPublic } from "@nats-io/nkeys";
15
+ import { base64url, fromBase64url } from "./base64url.js";
16
+ /** Whether `key` is an encoded curve public key: `X`, 55 more base32 characters and a valid
17
+ * checksum. */
18
+ export function isCurvePublicKey(key) {
19
+ if (!/^X[A-Z2-7]{55}$/.test(key))
20
+ return false;
21
+ try {
22
+ fromPublic(key);
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ /** Seal `value`, as JSON, to the curve key `recipient` under a one-time sender key. `sealed` is
30
+ * base64url. Throws for a recipient that is not a curve public key. */
31
+ export function sealJson(value, recipient) {
32
+ if (!isCurvePublicKey(recipient))
33
+ throw new Error("the seal recipient is not a curve public key");
34
+ const sender = createCurve();
35
+ try {
36
+ const sealed = sender.seal(new TextEncoder().encode(JSON.stringify(value)), recipient);
37
+ return { sealer: sender.getPublicKey(), sealed: base64url(sealed) };
38
+ }
39
+ finally {
40
+ sender.clear();
41
+ }
42
+ }
43
+ /** A one-time curve key for receiving one sealed reply. It opens at most once and is cleared
44
+ * then, or by {@link SealRecipient.clear}. */
45
+ export class SealRecipient {
46
+ publicKey;
47
+ key;
48
+ constructor() {
49
+ this.key = createCurve();
50
+ this.publicKey = this.key.getPublicKey();
51
+ }
52
+ /** The JSON value `sealer` sealed to this key, or undefined when the bytes do not open or are
53
+ * not JSON, or this key was already used or cleared. */
54
+ openJson(sealed, sealer) {
55
+ const key = this.key;
56
+ this.key = undefined;
57
+ if (!key)
58
+ return undefined;
59
+ try {
60
+ const opened = key.open(fromBase64url(sealed), sealer);
61
+ return opened ? JSON.parse(new TextDecoder().decode(opened)) : undefined;
62
+ }
63
+ catch {
64
+ return undefined;
65
+ }
66
+ finally {
67
+ key.clear();
68
+ }
69
+ }
70
+ clear() {
71
+ this.key?.clear();
72
+ this.key = undefined;
73
+ }
74
+ }
75
+ //# sourceMappingURL=sealed-reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-reply.js","sourceRoot":"","sources":["../src/sealed-reply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE1D;gBACgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,CAAC;QACH,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;wEACwE;AACxE,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,SAAiB;IACxD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED;+CAC+C;AAC/C,MAAM,OAAO,aAAa;IACf,SAAS,CAAS;IACnB,GAAG,CAAsB;IAEjC;QACE,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IAED;6DACyD;IACzD,QAAQ,CAAC,MAAc,EAAE,MAAc;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IACvB,CAAC;CACF"}
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * Lock a file or directory down to the current user (+ SYSTEM + Administrators) only.
3
3
  *
4
- * POSIX: `chmod` (0o600 file / 0o700 dir), which also tightens a path that already existed.
4
+ * POSIX: a file takes {@link openPrivate}'s rule, so a symlink, a non-regular file or another user's
5
+ * file is refused with `EPERM` and left unchanged, and an owned file is set to 0o600 through the
6
+ * descriptor. A directory is set to 0o700 with `chmod` by path, which follows a symlinked directory:
7
+ * a symlinked `~/.cotal` or project `.cotal` is a working setup, so it is not refused.
5
8
  * win32: harden the NTFS ACL with `icacls`: `/inheritance:r` drops inherited ACEs; `/remove:g` drops
6
9
  * any pre-existing EXPLICIT broad grant (Everyone / Authenticated Users / Users) that `/grant:r`
7
10
  * alone would leave intact (e.g. on a pre-planted or pre-existing target); `/grant:r` then sets ONLY
@@ -13,12 +16,32 @@
13
16
  */
14
17
  export declare function hardenPrivate(path: string, kind: "file" | "dir"): void;
15
18
  /**
16
- * Write a private secret file: mode 0o600 on the descriptor before the bytes, whether or not the
17
- * name already existed, then {@link hardenPrivate} for the win32 ACL. FAIL-CLOSED — if hardening
18
- * throws, the hardening error propagates (the caller never proceeds as if the secret were safe) and
19
- * the just-written file is best-effort deleted so it isn't left readable.
19
+ * Open a private log for appending under {@link openPrivate}'s rule: created 0o600, never through a
20
+ * final symlink, refused unless it is this user's regular file, and an owned log set to 0o600. The
21
+ * caller owns the returned descriptor.
22
+ */
23
+ export declare function openPrivateAppend(path: string): number;
24
+ /**
25
+ * Write a private secret file through {@link openPrivate}: mode 0o600 on the descriptor before the
26
+ * bytes, whether or not the name already existed, and on POSIX a refusal for a final symlink, a
27
+ * non-regular file or a file another user owns. Then {@link hardenPrivate} for the win32 ACL.
28
+ * FAIL-CLOSED — if hardening throws, the hardening error propagates (the caller never proceeds as if
29
+ * the secret were safe) and the just-written file is best-effort deleted so it isn't left readable.
20
30
  */
21
31
  export declare function writeSecretFile(path: string, data: string | Buffer): void;
32
+ /**
33
+ * Write an owner-private record in place under {@link openPrivate}'s rule, without the win32 ACL
34
+ * step {@link writeSecretFile} adds: for a record that is not a secret, such as a pid identity pin
35
+ * or a process marker. On POSIX a symlink, a non-regular file or a file another user owns is refused
36
+ * with `EPERM` and left unchanged.
37
+ */
38
+ export declare function writePrivateRecord(path: string, data: string | Buffer): void;
39
+ /**
40
+ * Create an owner-private record that must not exist yet, under {@link openPrivate}'s rule with
41
+ * `O_EXCL` and without the win32 ACL step: for a temporary that a rename then publishes. On POSIX any
42
+ * existing name, a symlink included, fails with `EEXIST` and is left as it was.
43
+ */
44
+ export declare function createPrivateRecord(path: string, data: string | Buffer): void;
22
45
  /**
23
46
  * Like {@link writeSecretFile} but ATOMIC: write a private temp sibling (same 0o600 + win32-ACL
24
47
  * hardening), then rename it over the target. `renameSync` is an atomic replace on POSIX and via
@@ -51,7 +74,7 @@ export declare function __setPublishLinkForTest(fn: ((from: string, to: string)
51
74
  * two creators that collided on the name would plain-overwrite each other's bytes, and then the
52
75
  * one whose `link` succeeded would return the candidate IT minted while the published file held
53
76
  * the OTHER one's identity: the exact split this function exists to prevent, reintroduced one
54
- * step earlier. `wx` on the temp makes a collision fail loudly instead of silently swapping bytes.
77
+ * step earlier. `O_EXCL` on the temp makes a collision fail loudly instead of silently swapping bytes.
55
78
  */
56
79
  export declare function writeSecretFileCreateOnly(path: string, data: string | Buffer): void;
57
80
  /** Create a private directory chain (recursive) and harden it — call BEFORE writing secrets into it
@@ -1 +1 @@
1
- {"version":3,"file":"secret-fs.d.ts","sourceRoot":"","sources":["../src/secret-fs.ts"],"names":[],"mappings":"AAkDA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CA2BtE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzE;AA0BD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa/E;AAiDD;wEACwE;AACxE,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAElG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCnF;AAED;;2EAE2E;AAC3E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG9C"}
1
+ {"version":3,"file":"secret-fs.d.ts","sourceRoot":"","sources":["../src/secret-fs.ts"],"names":[],"mappings":"AAqDA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CA4BtE;AAkDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7E;AA+BD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa/E;AAiDD;wEACwE;AACxE,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAElG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiCnF;AAED;;2EAE2E;AAC3E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG9C"}
package/dist/secret-fs.js CHANGED
@@ -8,9 +8,9 @@
8
8
  * path). The fix is to harden the NTFS ACL explicitly with the built-in `icacls` (no new
9
9
  * dependency). See {@link hardenPrivate}.
10
10
  */
11
- import { chmodSync, closeSync, fchmodSync, linkSync, lstatSync, mkdirSync, openSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
11
+ import { chmodSync, closeSync, constants, fchmodSync, fstatSync, ftruncateSync, linkSync, lstatSync, mkdirSync, openSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
12
12
  import { execFileSync } from "node:child_process";
13
- import { join } from "node:path";
13
+ import { dirname, join } from "node:path";
14
14
  const isWin = process.platform === "win32";
15
15
  /** Absolute path to a System32 tool — `icacls`/`whoami` are resolved from `%SystemRoot%` (not PATH)
16
16
  * so a hijacked PATH can't substitute a malicious binary during the secret-hardening window. */
@@ -36,7 +36,10 @@ const BROAD_SIDS = ["S-1-1-0", "S-1-5-11", "S-1-5-32-545"];
36
36
  /**
37
37
  * Lock a file or directory down to the current user (+ SYSTEM + Administrators) only.
38
38
  *
39
- * POSIX: `chmod` (0o600 file / 0o700 dir), which also tightens a path that already existed.
39
+ * POSIX: a file takes {@link openPrivate}'s rule, so a symlink, a non-regular file or another user's
40
+ * file is refused with `EPERM` and left unchanged, and an owned file is set to 0o600 through the
41
+ * descriptor. A directory is set to 0o700 with `chmod` by path, which follows a symlinked directory:
42
+ * a symlinked `~/.cotal` or project `.cotal` is a working setup, so it is not refused.
40
43
  * win32: harden the NTFS ACL with `icacls`: `/inheritance:r` drops inherited ACEs; `/remove:g` drops
41
44
  * any pre-existing EXPLICIT broad grant (Everyone / Authenticated Users / Users) that `/grant:r`
42
45
  * alone would leave intact (e.g. on a pre-planted or pre-existing target); `/grant:r` then sets ONLY
@@ -48,7 +51,10 @@ const BROAD_SIDS = ["S-1-1-0", "S-1-5-11", "S-1-5-32-545"];
48
51
  */
49
52
  export function hardenPrivate(path, kind) {
50
53
  if (!isWin) {
51
- chmodSync(path, kind === "dir" ? 0o700 : 0o600);
54
+ if (kind === "file")
55
+ closeSync(openPrivate(path, constants.O_RDONLY));
56
+ else
57
+ chmodSync(path, 0o700);
52
58
  return;
53
59
  }
54
60
  const perm = kind === "dir" ? "(OI)(CI)(F)" : "(F)";
@@ -69,27 +75,109 @@ export function hardenPrivate(path, kind) {
69
75
  `Cotal will not leave a secret with a permissive ACL - ensure the path is on an NTFS volume and %SystemRoot%\\System32\\icacls.exe is available.`);
70
76
  }
71
77
  }
78
+ /** A refused private open. The name was left as it was. */
79
+ function notPrivate(path, why) {
80
+ const refused = new Error(`refusing to write "${path}": it ${why}; it was left unchanged`);
81
+ refused.code = "EPERM";
82
+ return refused;
83
+ }
84
+ /**
85
+ * Open `path` for writing as this user's private file, mode 0o600 when the open creates it.
86
+ *
87
+ * POSIX: the open never follows a final symlink (`O_NOFOLLOW`) and never waits on a FIFO
88
+ * (`O_NONBLOCK`). The opened inode must be a regular file this user owns; anything else is refused
89
+ * with code `EPERM` and left unchanged. An owned file is then set to 0o600 through the descriptor,
90
+ * which names no path, so a name swapped after the open cannot redirect the change.
91
+ *
92
+ * win32: POSIX owners, modes and `O_NOFOLLOW` are not that platform's protection model; its boundary
93
+ * is the NTFS ACL (see {@link hardenPrivate}). So the open there takes mode 0o600 with no owner check.
94
+ */
95
+ function openPrivate(path, flags) {
96
+ if (isWin) {
97
+ const fd = openSync(path, flags, 0o600);
98
+ try {
99
+ fchmodSync(fd, 0o600);
100
+ }
101
+ catch (e) {
102
+ closeSync(fd);
103
+ throw e;
104
+ }
105
+ return fd;
106
+ }
107
+ let fd;
108
+ try {
109
+ fd = openSync(path, flags | constants.O_NOFOLLOW | constants.O_NONBLOCK, 0o600);
110
+ }
111
+ catch (e) {
112
+ if (e.code === "ELOOP")
113
+ throw notPrivate(path, "is a symlink");
114
+ throw e;
115
+ }
116
+ try {
117
+ const info = fstatSync(fd);
118
+ if (!info.isFile())
119
+ throw notPrivate(path, "is not a regular file");
120
+ if (info.uid !== process.getuid())
121
+ throw notPrivate(path, `is owned by uid ${info.uid}, not this user`);
122
+ fchmodSync(fd, 0o600);
123
+ return fd;
124
+ }
125
+ catch (e) {
126
+ closeSync(fd);
127
+ throw e;
128
+ }
129
+ }
130
+ /**
131
+ * Open a private log for appending under {@link openPrivate}'s rule: created 0o600, never through a
132
+ * final symlink, refused unless it is this user's regular file, and an owned log set to 0o600. The
133
+ * caller owns the returned descriptor.
134
+ */
135
+ export function openPrivateAppend(path) {
136
+ return openPrivate(path, constants.O_WRONLY | constants.O_CREAT | constants.O_APPEND);
137
+ }
72
138
  /**
73
- * Write a private secret file: mode 0o600 on the descriptor before the bytes, whether or not the
74
- * name already existed, then {@link hardenPrivate} for the win32 ACL. FAIL-CLOSED — if hardening
75
- * throws, the hardening error propagates (the caller never proceeds as if the secret were safe) and
76
- * the just-written file is best-effort deleted so it isn't left readable.
139
+ * Write a private secret file through {@link openPrivate}: mode 0o600 on the descriptor before the
140
+ * bytes, whether or not the name already existed, and on POSIX a refusal for a final symlink, a
141
+ * non-regular file or a file another user owns. Then {@link hardenPrivate} for the win32 ACL.
142
+ * FAIL-CLOSED — if hardening throws, the hardening error propagates (the caller never proceeds as if
143
+ * the secret were safe) and the just-written file is best-effort deleted so it isn't left readable.
77
144
  */
78
145
  export function writeSecretFile(path, data) {
79
- writePrivate(path, data, "w");
146
+ writePrivate(path, data, false);
80
147
  }
81
- /** The fail-closed write {@link writeSecretFile} documents, with the open flag as a parameter so
82
- * {@link writeSecretFileCreateOnlyRaw} can pass `wx`. */
83
- function writePrivate(path, data, flag) {
84
- const fd = openSync(path, flag, 0o600);
148
+ /**
149
+ * Write an owner-private record in place under {@link openPrivate}'s rule, without the win32 ACL
150
+ * step {@link writeSecretFile} adds: for a record that is not a secret, such as a pid identity pin
151
+ * or a process marker. On POSIX a symlink, a non-regular file or a file another user owns is refused
152
+ * with `EPERM` and left unchanged.
153
+ */
154
+ export function writePrivateRecord(path, data) {
155
+ writeBytes(path, data, false);
156
+ }
157
+ /**
158
+ * Create an owner-private record that must not exist yet, under {@link openPrivate}'s rule with
159
+ * `O_EXCL` and without the win32 ACL step: for a temporary that a rename then publishes. On POSIX any
160
+ * existing name, a symlink included, fails with `EEXIST` and is left as it was.
161
+ */
162
+ export function createPrivateRecord(path, data) {
163
+ writeBytes(path, data, true);
164
+ }
165
+ /** {@link openPrivate}, then truncate and write the bytes; the descriptor is closed on every path. */
166
+ function writeBytes(path, data, exclusive) {
167
+ // No O_TRUNC: a name openPrivate refuses keeps its bytes, so truncation waits until it passed.
168
+ const fd = openPrivate(path, constants.O_WRONLY | constants.O_CREAT | (exclusive ? constants.O_EXCL : 0));
85
169
  try {
86
- // The open mode applies only when the open creates the file; an existing one keeps its own.
87
- fchmodSync(fd, 0o600);
170
+ ftruncateSync(fd);
88
171
  writeFileSync(fd, data);
89
172
  }
90
173
  finally {
91
174
  closeSync(fd);
92
175
  }
176
+ }
177
+ /** The fail-closed write {@link writeSecretFile} documents, with exclusive create as a parameter so
178
+ * {@link writeSecretFileCreateOnlyRaw} can ask for `O_EXCL`. */
179
+ function writePrivate(path, data, exclusive) {
180
+ writeBytes(path, data, exclusive);
93
181
  if (!isWin)
94
182
  return;
95
183
  try {
@@ -167,7 +255,7 @@ function writeSecretFileCreateOnlyRaw(path, data) {
167
255
  throw taken;
168
256
  }
169
257
  }
170
- writePrivate(path, data, "wx");
258
+ writePrivate(path, data, true);
171
259
  }
172
260
  /**
173
261
  * Publish a completed temp inode at its final name. Separated from {@link writeSecretFileCreateOnly}
@@ -201,10 +289,11 @@ export function __setPublishLinkForTest(fn) {
201
289
  * two creators that collided on the name would plain-overwrite each other's bytes, and then the
202
290
  * one whose `link` succeeded would return the candidate IT minted while the published file held
203
291
  * the OTHER one's identity: the exact split this function exists to prevent, reintroduced one
204
- * step earlier. `wx` on the temp makes a collision fail loudly instead of silently swapping bytes.
292
+ * step earlier. `O_EXCL` on the temp makes a collision fail loudly instead of silently swapping bytes.
205
293
  */
206
294
  export function writeSecretFileCreateOnly(path, data) {
207
- const tmp = `${path}.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`;
295
+ // Keep the sibling name independent of the destination, which may already fill NAME_MAX.
296
+ const tmp = join(dirname(path), `.cotal-create.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`);
208
297
  // Exclusive, so EEXIST here means the temp name belongs to ANOTHER creator. Cleanup below must
209
298
  // never run in that case: unlinking it would delete a live creator's bytes out from under it.
210
299
  writeSecretFileCreateOnlyRaw(tmp, data);
@@ -1 +1 @@
1
- {"version":3,"file":"secret-fs.js","sourceRoot":"","sources":["../src/secret-fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-fs.js","sourceRoot":"","sources":["../src/secret-fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Native streams belonging to one space, including the backing streams of its KV and object buckets.
2
+ * A transfer stream is included only when its exact name was observed on this broker. */
3
+ export declare function spaceDeletionStreams(space: string, observedNames?: readonly string[]): string[];
4
+ //# sourceMappingURL=space-deletion-targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-deletion-targets.d.ts","sourceRoot":"","sources":["../src/space-deletion-targets.ts"],"names":[],"mappings":"AAOA;yFACyF;AACzF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,EAAE,CASnG"}
@@ -0,0 +1,15 @@
1
+ import { aclBucket, artifactBucket, channelBucket, chatStream, deliveryBucket, dlvStream, dmStream, inboxStream, isTransferStream, managerBucket, membershipBucket, membersBucket, objectStoreStream, presenceBucket, taskStream, } from "./subjects.js";
2
+ import { endpointPlaneStreamNames } from "./endpoint-binding.js";
3
+ /** Native streams belonging to one space, including the backing streams of its KV and object buckets.
4
+ * A transfer stream is included only when its exact name was observed on this broker. */
5
+ export function spaceDeletionStreams(space, observedNames = []) {
6
+ const base = [
7
+ chatStream(space), dmStream(space), taskStream(space), inboxStream(space), dlvStream(space),
8
+ `KV_${presenceBucket(space)}`, `KV_${channelBucket(space)}`, `KV_${membersBucket(space)}`,
9
+ `KV_${aclBucket(space)}`, `KV_${membershipBucket(space)}`,
10
+ `KV_${deliveryBucket(space)}`, `KV_${managerBucket(space)}`,
11
+ ...endpointPlaneStreamNames(space), objectStoreStream(artifactBucket(space)),
12
+ ];
13
+ return [...base, ...observedNames.filter((name) => isTransferStream(space, name))];
14
+ }
15
+ //# sourceMappingURL=space-deletion-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-deletion-targets.js","sourceRoot":"","sources":["../src/space-deletion-targets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EACzF,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAC7E,iBAAiB,EAAE,cAAc,EAAE,UAAU,GAC9C,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;yFACyF;AACzF,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,gBAAmC,EAAE;IACvF,MAAM,IAAI,GAAG;QACX,UAAU,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;QAC3F,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE;QACzF,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE;QACzD,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE;QAC3D,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC7E,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type SpaceInitializationObservation } from "./space-initialization-observation.js";
2
+ import type { ChannelRegistryFile } from "./channels.js";
3
+ import type { ChannelConfig, ChannelDefaults, DeliveryClass } from "./types.js";
4
+ type RegistryValue = ChannelConfig | ChannelDefaults;
5
+ export interface SpaceInitializationDiffRow {
6
+ key: string;
7
+ state: SpaceInitializationObservation["state"] | "not-observed" | "field-policy-required" | "observed-fields-match" | "patch-differs";
8
+ observedRevision: number | null;
9
+ seedRequested: boolean;
10
+ profileDefault: "not-applicable" | "not-established" | "preserve-explicit" | "propose-profile";
11
+ changedFields: readonly string[];
12
+ unmodeledFieldCount: number;
13
+ /** Private proposed data, not an accepted plan. The observed revision can already be stale. */
14
+ candidate: {
15
+ expectedRevision: number;
16
+ value: RegistryValue;
17
+ } | null;
18
+ }
19
+ /** Compare native seed-before-profile semantics against observed existing rows. Only present,
20
+ * closed, valid values receive a private candidate pinned to their observed revision. Missing,
21
+ * deleted, unreadable or unvisited rows never become empty values or create requests. This
22
+ * pure result carries no connection, current authority, accepted write plan or apply port. */
23
+ export declare function diffSpaceInitialization(space: string, deliveryClass: DeliveryClass, observed: {
24
+ space: string;
25
+ registry: {
26
+ bucket: string;
27
+ stream: string;
28
+ };
29
+ observations: readonly SpaceInitializationObservation[];
30
+ }, seed?: ChannelRegistryFile): {
31
+ kind: "space-initialization-diff";
32
+ space: string;
33
+ registry: {
34
+ bucket: string;
35
+ stream: string;
36
+ };
37
+ rows: SpaceInitializationDiffRow[];
38
+ scope: "existing-row native seed/profile comparison; private revision candidates are not accepted write plans";
39
+ registryFieldPolicy: "closed-native-fields";
40
+ revisionGuardsApplied: false;
41
+ connectionAuthorityChecked: false;
42
+ absenceAuthoritativelyProven: false;
43
+ applyPermitted: false;
44
+ writes: readonly [];
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=space-initialization-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-initialization-diff.d.ts","sourceRoot":"","sources":["../src/space-initialization-diff.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqC,KAAK,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAC/H,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhF,KAAK,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC,GAAG,cAAc,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,CAAC;IACtI,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;IAC/F,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+FAA+F;IAC/F,SAAS,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI,CAAC;CACtE;AAiBD;;;+FAG+F;AAC/F,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,YAAY,EAAE,SAAS,8BAA8B,EAAE,CAAA;CAAE,EAClI,IAAI,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;EAwD3B"}