@cortexkit/antigravity-auth-core 2.2.1 → 3.0.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 (230) hide show
  1. package/README.md +24 -2
  2. package/dist/abort-forwarding.d.ts +3 -0
  3. package/dist/abort-forwarding.d.ts.map +1 -0
  4. package/dist/abort-forwarding.js +19 -0
  5. package/dist/abort-forwarding.js.map +1 -0
  6. package/dist/account-identity.d.ts +52 -0
  7. package/dist/account-identity.d.ts.map +1 -0
  8. package/dist/account-identity.js +66 -0
  9. package/dist/account-identity.js.map +1 -0
  10. package/dist/account-manager.d.ts +228 -43
  11. package/dist/account-manager.d.ts.map +1 -1
  12. package/dist/account-manager.js +942 -903
  13. package/dist/account-manager.js.map +1 -1
  14. package/dist/account-migration.d.ts +309 -0
  15. package/dist/account-migration.d.ts.map +1 -0
  16. package/dist/account-migration.js +2282 -0
  17. package/dist/account-migration.js.map +1 -0
  18. package/dist/account-repository-codecs.d.ts +82 -0
  19. package/dist/account-repository-codecs.d.ts.map +1 -0
  20. package/dist/account-repository-codecs.js +609 -0
  21. package/dist/account-repository-codecs.js.map +1 -0
  22. package/dist/account-repository-types.d.ts +831 -0
  23. package/dist/account-repository-types.d.ts.map +1 -0
  24. package/dist/account-repository-types.js +137 -0
  25. package/dist/account-repository-types.js.map +1 -0
  26. package/dist/account-repository.d.ts +442 -0
  27. package/dist/account-repository.d.ts.map +1 -0
  28. package/dist/account-repository.js +2253 -0
  29. package/dist/account-repository.js.map +1 -0
  30. package/dist/account-selector.d.ts +470 -0
  31. package/dist/account-selector.d.ts.map +1 -0
  32. package/dist/account-selector.js +1383 -0
  33. package/dist/account-selector.js.map +1 -0
  34. package/dist/account-storage.d.ts.map +1 -1
  35. package/dist/account-storage.js +5 -0
  36. package/dist/account-storage.js.map +1 -1
  37. package/dist/agy-transport.d.ts.map +1 -1
  38. package/dist/agy-transport.js +21 -35
  39. package/dist/agy-transport.js.map +1 -1
  40. package/dist/antigravity-command-menu.d.ts +171 -0
  41. package/dist/antigravity-command-menu.d.ts.map +1 -0
  42. package/dist/antigravity-command-menu.js +523 -0
  43. package/dist/antigravity-command-menu.js.map +1 -0
  44. package/dist/atomic-write.d.ts +18 -1
  45. package/dist/atomic-write.d.ts.map +1 -1
  46. package/dist/atomic-write.js +15 -3
  47. package/dist/atomic-write.js.map +1 -1
  48. package/dist/common-auth-embedded/NOTICE.txt +21 -0
  49. package/dist/common-auth-embedded/auth-menu/accounts.d.ts +97 -0
  50. package/dist/common-auth-embedded/auth-menu/accounts.js +387 -0
  51. package/dist/common-auth-embedded/auth-menu/ansi.d.ts +26 -0
  52. package/dist/common-auth-embedded/auth-menu/ansi.js +98 -0
  53. package/dist/common-auth-embedded/auth-menu/confirm.d.ts +7 -0
  54. package/dist/common-auth-embedded/auth-menu/confirm.js +21 -0
  55. package/dist/common-auth-embedded/auth-menu/doctor.d.ts +52 -0
  56. package/dist/common-auth-embedded/auth-menu/doctor.js +81 -0
  57. package/dist/common-auth-embedded/auth-menu/index.d.ts +17 -0
  58. package/dist/common-auth-embedded/auth-menu/index.js +12 -0
  59. package/dist/common-auth-embedded/auth-menu/login.d.ts +55 -0
  60. package/dist/common-auth-embedded/auth-menu/login.js +83 -0
  61. package/dist/common-auth-embedded/auth-menu/menu.d.ts +59 -0
  62. package/dist/common-auth-embedded/auth-menu/menu.js +73 -0
  63. package/dist/common-auth-embedded/auth-menu/opencode-v1.d.ts +49 -0
  64. package/dist/common-auth-embedded/auth-menu/opencode-v1.js +47 -0
  65. package/dist/common-auth-embedded/auth-menu/select.d.ts +21 -0
  66. package/dist/common-auth-embedded/auth-menu/select.js +159 -0
  67. package/dist/common-auth-embedded/auth-menu/terminal.d.ts +43 -0
  68. package/dist/common-auth-embedded/auth-menu/terminal.js +19 -0
  69. package/dist/common-auth-embedded/claustrum/consumer.d.ts +102 -0
  70. package/dist/common-auth-embedded/claustrum/consumer.js +298 -0
  71. package/dist/common-auth-embedded/claustrum/custody.d.ts +175 -0
  72. package/dist/common-auth-embedded/claustrum/custody.js +354 -0
  73. package/dist/common-auth-embedded/claustrum/enrollment.d.ts +158 -0
  74. package/dist/common-auth-embedded/claustrum/enrollment.js +759 -0
  75. package/dist/common-auth-embedded/claustrum/errors.d.ts +16 -0
  76. package/dist/common-auth-embedded/claustrum/errors.js +8 -0
  77. package/dist/common-auth-embedded/claustrum/host-slot.d.ts +39 -0
  78. package/dist/common-auth-embedded/claustrum/host-slot.js +72 -0
  79. package/dist/common-auth-embedded/claustrum/index.d.ts +18 -0
  80. package/dist/common-auth-embedded/claustrum/index.js +22 -0
  81. package/dist/common-auth-embedded/claustrum/interlock.d.ts +27 -0
  82. package/dist/common-auth-embedded/claustrum/interlock.js +29 -0
  83. package/dist/common-auth-embedded/claustrum/roster.d.ts +208 -0
  84. package/dist/common-auth-embedded/claustrum/roster.js +536 -0
  85. package/dist/common-auth-embedded/commands/builtins.d.ts +71 -0
  86. package/dist/common-auth-embedded/commands/builtins.js +534 -0
  87. package/dist/common-auth-embedded/commands/index.d.ts +10 -0
  88. package/dist/common-auth-embedded/commands/index.js +5 -0
  89. package/dist/common-auth-embedded/commands/menu.d.ts +61 -0
  90. package/dist/common-auth-embedded/commands/menu.js +300 -0
  91. package/dist/common-auth-embedded/commands/model.d.ts +238 -0
  92. package/dist/common-auth-embedded/commands/model.js +16 -0
  93. package/dist/common-auth-embedded/commands/pi.d.ts +23 -0
  94. package/dist/common-auth-embedded/commands/pi.js +206 -0
  95. package/dist/common-auth-embedded/commands/seam.d.ts +72 -0
  96. package/dist/common-auth-embedded/commands/seam.js +301 -0
  97. package/dist/common-auth-embedded/fs/atomic-write.d.ts +20 -0
  98. package/dist/common-auth-embedded/fs/atomic-write.js +80 -0
  99. package/dist/common-auth-embedded/fs/index.d.ts +7 -0
  100. package/dist/common-auth-embedded/fs/index.js +6 -0
  101. package/dist/common-auth-embedded/fs/lock-constants.d.ts +14 -0
  102. package/dist/common-auth-embedded/fs/lock-constants.js +14 -0
  103. package/dist/common-auth-embedded/fs/refresh-file-lock.d.ts +33 -0
  104. package/dist/common-auth-embedded/fs/refresh-file-lock.js +501 -0
  105. package/dist/common-auth-embedded/fs/with-lock.d.ts +33 -0
  106. package/dist/common-auth-embedded/fs/with-lock.js +48 -0
  107. package/dist/common-auth-embedded/logger/capture-sink.d.ts +14 -0
  108. package/dist/common-auth-embedded/logger/capture-sink.js +13 -0
  109. package/dist/common-auth-embedded/logger/engine.d.ts +100 -0
  110. package/dist/common-auth-embedded/logger/engine.js +246 -0
  111. package/dist/common-auth-embedded/logger/index.d.ts +6 -0
  112. package/dist/common-auth-embedded/logger/index.js +3 -0
  113. package/dist/common-auth-embedded/logger/redact.d.ts +11 -0
  114. package/dist/common-auth-embedded/logger/redact.js +83 -0
  115. package/dist/common-auth-embedded/pi-slot/index.d.ts +3 -0
  116. package/dist/common-auth-embedded/pi-slot/index.js +2 -0
  117. package/dist/common-auth-embedded/pi-slot/lock.js +212 -0
  118. package/dist/common-auth-embedded/pi-slot/slot.d.ts +49 -0
  119. package/dist/common-auth-embedded/pi-slot/slot.js +383 -0
  120. package/dist/common-auth-embedded/quota/codec.d.ts +11 -0
  121. package/dist/common-auth-embedded/quota/codec.js +12 -0
  122. package/dist/common-auth-embedded/quota/format.d.ts +46 -0
  123. package/dist/common-auth-embedded/quota/format.js +138 -0
  124. package/dist/common-auth-embedded/quota/index.d.ts +10 -0
  125. package/dist/common-auth-embedded/quota/index.js +5 -0
  126. package/dist/common-auth-embedded/quota/map.d.ts +63 -0
  127. package/dist/common-auth-embedded/quota/map.js +105 -0
  128. package/dist/common-auth-embedded/quota/merge.d.ts +48 -0
  129. package/dist/common-auth-embedded/quota/merge.js +162 -0
  130. package/dist/common-auth-embedded/quota/projection.d.ts +64 -0
  131. package/dist/common-auth-embedded/quota/projection.js +134 -0
  132. package/dist/common-auth-embedded/routing/admission.d.ts +93 -0
  133. package/dist/common-auth-embedded/routing/admission.js +142 -0
  134. package/dist/common-auth-embedded/routing/index.d.ts +8 -0
  135. package/dist/common-auth-embedded/routing/index.js +4 -0
  136. package/dist/common-auth-embedded/routing/ordered.d.ts +47 -0
  137. package/dist/common-auth-embedded/routing/ordered.js +58 -0
  138. package/dist/common-auth-embedded/routing/pins.d.ts +22 -0
  139. package/dist/common-auth-embedded/routing/pins.js +34 -0
  140. package/dist/common-auth-embedded/routing/sticky.d.ts +158 -0
  141. package/dist/common-auth-embedded/routing/sticky.js +339 -0
  142. package/dist/common-auth-embedded/source-output.json +1090 -0
  143. package/dist/common-auth-embedded/store/attribution.d.ts +28 -0
  144. package/dist/common-auth-embedded/store/attribution.js +60 -0
  145. package/dist/common-auth-embedded/store/errors.d.ts +55 -0
  146. package/dist/common-auth-embedded/store/errors.js +38 -0
  147. package/dist/common-auth-embedded/store/hooks.d.ts +12 -0
  148. package/dist/common-auth-embedded/store/hooks.js +34 -0
  149. package/dist/common-auth-embedded/store/identity.d.ts +39 -0
  150. package/dist/common-auth-embedded/store/identity.js +79 -0
  151. package/dist/common-auth-embedded/store/index.d.ts +21 -0
  152. package/dist/common-auth-embedded/store/index.js +7 -0
  153. package/dist/common-auth-embedded/store/mutate.d.ts +189 -0
  154. package/dist/common-auth-embedded/store/mutate.js +500 -0
  155. package/dist/common-auth-embedded/store/pool.d.ts +196 -0
  156. package/dist/common-auth-embedded/store/pool.js +120 -0
  157. package/dist/common-auth-embedded/store/provider-state.d.ts +131 -0
  158. package/dist/common-auth-embedded/store/provider-state.js +226 -0
  159. package/dist/common-auth-embedded/store/publication.d.ts +47 -0
  160. package/dist/common-auth-embedded/store/publication.js +304 -0
  161. package/dist/common-auth-embedded/store/pull.d.ts +36 -0
  162. package/dist/common-auth-embedded/store/pull.js +143 -0
  163. package/dist/common-auth-embedded/store/refresh-lock.d.ts +63 -0
  164. package/dist/common-auth-embedded/store/refresh-lock.js +136 -0
  165. package/dist/common-auth-embedded/store/refresh.d.ts +72 -0
  166. package/dist/common-auth-embedded/store/refresh.js +225 -0
  167. package/dist/common-auth-embedded/store/reserved.js +13 -0
  168. package/dist/common-auth-embedded/store/rows.d.ts +313 -0
  169. package/dist/common-auth-embedded/store/rows.js +1258 -0
  170. package/dist/common-auth-embedded/store/runtime.d.ts +36 -0
  171. package/dist/common-auth-embedded/store/runtime.js +68 -0
  172. package/dist/common-auth-embedded/store/schema.d.ts +443 -0
  173. package/dist/common-auth-embedded/store/schema.js +754 -0
  174. package/dist/common-auth-embedded/store/settings.d.ts +63 -0
  175. package/dist/common-auth-embedded/store/settings.js +120 -0
  176. package/dist/common-auth-embedded/store/torn.d.ts +78 -0
  177. package/dist/common-auth-embedded/store/torn.js +294 -0
  178. package/dist/common-auth-embedded/util/any-signal.js +42 -0
  179. package/dist/common-auth-runtime.d.ts +73 -0
  180. package/dist/common-auth-runtime.d.ts.map +1 -0
  181. package/dist/common-auth-runtime.js +65 -0
  182. package/dist/common-auth-runtime.js.map +1 -0
  183. package/dist/credential-redaction.d.ts +13 -0
  184. package/dist/credential-redaction.d.ts.map +1 -0
  185. package/dist/credential-redaction.js +230 -0
  186. package/dist/credential-redaction.js.map +1 -0
  187. package/dist/fetch-timeout.d.ts +4 -2
  188. package/dist/fetch-timeout.d.ts.map +1 -1
  189. package/dist/fetch-timeout.js +121 -14
  190. package/dist/fetch-timeout.js.map +1 -1
  191. package/dist/index.d.ts +16 -1
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +15 -0
  194. package/dist/index.js.map +1 -1
  195. package/dist/quota-manager.d.ts.map +1 -1
  196. package/dist/quota-manager.js +35 -10
  197. package/dist/quota-manager.js.map +1 -1
  198. package/dist/quota-presentation.d.ts +10 -0
  199. package/dist/quota-presentation.d.ts.map +1 -0
  200. package/dist/quota-presentation.js +60 -0
  201. package/dist/quota-presentation.js.map +1 -0
  202. package/dist/quota-types.d.ts +2 -0
  203. package/dist/quota-types.d.ts.map +1 -1
  204. package/dist/rotation.d.ts +8 -0
  205. package/dist/rotation.d.ts.map +1 -1
  206. package/dist/rotation.js +24 -0
  207. package/dist/rotation.js.map +1 -1
  208. package/dist/transform/claude.d.ts +7 -3
  209. package/dist/transform/claude.d.ts.map +1 -1
  210. package/dist/transform/claude.js +6 -2
  211. package/dist/transform/claude.js.map +1 -1
  212. package/dist/transform/types.d.ts +1 -1
  213. package/dist/transform/types.d.ts.map +1 -1
  214. package/dist/vault-account-source.d.ts +183 -0
  215. package/dist/vault-account-source.d.ts.map +1 -0
  216. package/dist/vault-account-source.js +296 -0
  217. package/dist/vault-account-source.js.map +1 -0
  218. package/dist/vault-enrollment-authority.d.ts +16 -0
  219. package/dist/vault-enrollment-authority.d.ts.map +1 -0
  220. package/dist/vault-enrollment-authority.js +19 -0
  221. package/dist/vault-enrollment-authority.js.map +1 -0
  222. package/dist/vault-family.d.ts +11 -0
  223. package/dist/vault-family.d.ts.map +1 -0
  224. package/dist/vault-family.js +24 -0
  225. package/dist/vault-family.js.map +1 -0
  226. package/dist/vault-provider-state.d.ts +162 -0
  227. package/dist/vault-provider-state.d.ts.map +1 -0
  228. package/dist/vault-provider-state.js +422 -0
  229. package/dist/vault-provider-state.js.map +1 -0
  230. package/package.json +39 -2
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Antigravity accounts served from a Claustrum vault ("custody mode").
3
+ *
4
+ * Terms used below:
5
+ * - roster: the non-secret list of vault accounts this host may route to
6
+ * (route id, credential id, account identity, enabled/declined state).
7
+ * - receipt: what Claustrum serves for one send attempt: a fresh bearer, the
8
+ * Antigravity project for the model request, the account identity the vault
9
+ * asserted, and the record version it served for the credential.
10
+ * - host auth slot: the host's own Google credential record. Pi temporarily
11
+ * replaces it with a non-secret marker and retains a backup; OpenCode may
12
+ * keep its existing login. Neither is read by this vault account source.
13
+ *
14
+ * The host passes in the library's public `./claustrum` module; every library
15
+ * type here is taken from that module's own declarations.
16
+ *
17
+ * Rules:
18
+ * - Each send attempt to Google (each endpoint fallback, each 401 retry,
19
+ * quota and profile reads) gets a new admission with a fresh receipt, and
20
+ * takes its bearer and project from that receipt only. Nothing is cached or
21
+ * refreshed locally.
22
+ * - Google bearers are opaque: a receipt is accepted only when the vault
23
+ * asserted the credential and the account the selected route names. No
24
+ * token is parsed for an identity, and API-key credentials are refused.
25
+ * - Nothing is served unless custody is active. The host's local credentials
26
+ * stay dormant: this source never reads or refreshes them.
27
+ */
28
+ import type { CommonAuthClaustrumModule } from './common-auth-runtime.ts';
29
+ import { type AntigravityVaultHost } from './vault-family.ts';
30
+ import { type AntigravityVaultStateFs, type AntigravityVaultStateUpdate, type VaultProviderStateCommitResult, type VaultStateAttribution } from './vault-provider-state.ts';
31
+ type ClaustrumConsumerClass = CommonAuthClaustrumModule['ClaustrumConsumer'];
32
+ type ClaustrumConsumerInstance = InstanceType<ClaustrumConsumerClass>;
33
+ export type VaultConsumerOptions = ConstructorParameters<ClaustrumConsumerClass>[0];
34
+ export type VaultScopedClient = Awaited<ReturnType<VaultConsumerOptions['connect']>>;
35
+ export type VaultScopedReceipt = Awaited<ReturnType<ClaustrumConsumerInstance['authorize']>>;
36
+ export type VaultRoster = NonNullable<ReturnType<ClaustrumConsumerInstance['snapshot']>>;
37
+ export type VaultRosterRow = VaultRoster['rows'][number];
38
+ export type VaultReporterSource = Parameters<ClaustrumConsumerInstance['reportFailure']>[2];
39
+ export type VaultLogger = NonNullable<VaultConsumerOptions['logger']>;
40
+ /** The consumer methods this source calls. */
41
+ export type VaultClaustrumConsumer = Pick<ClaustrumConsumerInstance, 'snapshot' | 'refresh' | 'start' | 'authorize' | 'reportFailure' | 'decline' | 'accept' | 'close'>;
42
+ /**
43
+ * The part of `./claustrum` this source uses. The module namespace itself
44
+ * assigns to it; tests can pass a smaller stand-in.
45
+ */
46
+ export interface VaultClaustrumPort extends Pick<CommonAuthClaustrumModule, 'decideScopedRetryAfter401' | 'isDeclined' | 'mutateVaultRoster'> {
47
+ ClaustrumConsumer: new (options: VaultConsumerOptions) => VaultClaustrumConsumer;
48
+ }
49
+ export type AntigravityVaultSourceFailureKind = 'closed' | 'not-active' | 'route-unavailable' | 'api-key-refused' | 'identity-unasserted' | 'identity-contradicted' | 'project-missing' | 'invalid-receipt' | 'not-issued' | 'state-unavailable';
50
+ /**
51
+ * A refusal by this source before any request reaches Google. Refusals made
52
+ * by the Claustrum library itself arrive as the library's own errors.
53
+ */
54
+ export declare class AntigravityVaultSourceError extends Error {
55
+ readonly kind: AntigravityVaultSourceFailureKind;
56
+ constructor(kind: AntigravityVaultSourceFailureKind, message: string);
57
+ }
58
+ /**
59
+ * A selectable vault account: the route plus the credential id and account
60
+ * identity the roster named when it was captured, before any await. `admit`
61
+ * refuses the ref once the current roster routes it to another credential or
62
+ * account.
63
+ */
64
+ export interface VaultRouteRef {
65
+ readonly routeId: string;
66
+ readonly credentialId: string;
67
+ readonly accountIdentity: string;
68
+ /** The roster row's display label; may hold personal data. */
69
+ readonly label: string;
70
+ readonly email?: string;
71
+ }
72
+ /**
73
+ * The inputs of one send attempt, all taken from one Claustrum receipt. Use it
74
+ * for exactly one attempt. `accessToken` is non-enumerable, so spreads and JSON
75
+ * never copy it.
76
+ */
77
+ export interface VaultSendAdmission {
78
+ readonly routeId: string;
79
+ readonly credentialId: string;
80
+ readonly accountIdentity: string;
81
+ /** The record version Claustrum served; a 401 is reported against it. */
82
+ readonly recordVersion: number;
83
+ /** Antigravity project to put in the model request body. */
84
+ readonly projectId: string;
85
+ readonly accessToken: string;
86
+ readonly expiresAtMs: number | null;
87
+ }
88
+ export interface VaultSendOptions {
89
+ /**
90
+ * Request kind (`model`, `quota`, `profile`). The library logs it with its
91
+ * decision whether to retry a 401.
92
+ */
93
+ site: string;
94
+ signal?: AbortSignal;
95
+ reporterSource?: VaultReporterSource;
96
+ }
97
+ export interface AntigravityVaultSourceOptions {
98
+ claustrum: VaultClaustrumPort;
99
+ host: AntigravityVaultHost;
100
+ rosterPath: string;
101
+ /** Enrollment token file that setup wrote for this host (`host`). */
102
+ tokenPath: string;
103
+ connect: () => Promise<VaultScopedClient>;
104
+ isCustodyActive: () => boolean | Promise<boolean>;
105
+ /**
106
+ * How a 401 reached this plugin, passed to Claustrum with the 401 report
107
+ * that `send` makes.
108
+ */
109
+ reporterSource: VaultReporterSource;
110
+ /**
111
+ * Credential-free per-account state file (see `vault-provider-state.ts`) and
112
+ * the `./fs` functions that lock and write it. Without it `commitState` has
113
+ * nowhere to write and is refused.
114
+ */
115
+ state?: {
116
+ path: string;
117
+ fs: AntigravityVaultStateFs;
118
+ };
119
+ reservedRouteIds?: () => Iterable<string>;
120
+ routePrefix?: string;
121
+ onRoster?: (roster: VaultRoster) => void;
122
+ onError?: (error: unknown) => void;
123
+ pollIntervalMs?: number;
124
+ now?: () => number;
125
+ logger?: VaultLogger;
126
+ }
127
+ export interface AntigravityVaultAccountSource {
128
+ readonly host: AntigravityVaultHost;
129
+ start(): void;
130
+ refresh(): Promise<VaultRoster | undefined>;
131
+ /** Selectable accounts from the last committed roster. */
132
+ routes(): VaultRouteRef[];
133
+ /** A fresh receipt for one physical send on `ref`. */
134
+ admit(ref: VaultRouteRef, signal?: AbortSignal): Promise<VaultSendAdmission>;
135
+ /**
136
+ * Admit and dispatch. When the original response status of the dispatch is
137
+ * 401, retry once with a fresh receipt only if the vault now serves a newer
138
+ * version of the same credential and account; a final 401 is reported with
139
+ * the receipt that dispatch used. When the caller tries another Antigravity
140
+ * endpoint after a failure, that attempt is a new `send` with a new
141
+ * admission.
142
+ */
143
+ send(ref: VaultRouteRef, dispatch: (admission: VaultSendAdmission, signal?: AbortSignal) => Promise<Response>, options: VaultSendOptions): Promise<Response>;
144
+ /**
145
+ * Report to Claustrum that the request sent with `admission` got a 401, so
146
+ * the vault can mark that served record version bad. Pass the original
147
+ * response status; only 401 is reported, once per admission, against that
148
+ * admission's own receipt and record version. Other statuses return false.
149
+ */
150
+ reportServedStatus(admission: VaultSendAdmission, status: number, reporterSource?: VaultReporterSource): Promise<boolean>;
151
+ /**
152
+ * The non-secret facts that tie an observation (usage, quota) to the send
153
+ * that produced it: route, credential id, asserted account and served record
154
+ * version. Carries no token or project; pass it to `commitState`.
155
+ */
156
+ attribution(admission: VaultSendAdmission): VaultStateAttribution;
157
+ /**
158
+ * Update the account's provider state; see `commitVaultProviderState`. The
159
+ * write is refused unless the roster and a fresh receipt still show the
160
+ * attributed credential, account and record version. If the vault has since
161
+ * served a newer record version, even for the same account, the observation
162
+ * is dropped rather than attributed to the newer version.
163
+ */
164
+ commitState(attribution: VaultStateAttribution, update: AntigravityVaultStateUpdate): Promise<VaultProviderStateCommitResult>;
165
+ decline(ref: VaultRouteRef): Promise<void>;
166
+ accept(ref: VaultRouteRef): Promise<void>;
167
+ /** Close the vault connection; later calls are refused. */
168
+ close(): void;
169
+ }
170
+ /**
171
+ * Path of the Claustrum connection file to pass as the client's
172
+ * `connectionFile`, resolved by `@cortexkit/claustrum-client`'s own
173
+ * `resolveClaustrumConnectionPath`: `explicit` when given, else the
174
+ * `SUBC_CONNECTION_FILE` or `CLAUSTRUM_SUBC_CONNECTION` environment variable,
175
+ * else the client's default path. The client package is imported only when
176
+ * this is called, so importing core never loads it, and its errors pass
177
+ * through unchanged. Resolving the path opens no connection and reads no
178
+ * enrollment or host credential.
179
+ */
180
+ export declare function resolveClaustrumConnectionPath(explicit?: string): Promise<string>;
181
+ export declare function createAntigravityVaultAccountSource(options: AntigravityVaultSourceOptions): AntigravityVaultAccountSource;
182
+ export {};
183
+ //# sourceMappingURL=vault-account-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-account-source.d.ts","sourceRoot":"","sources":["../src/vault-account-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Antigravity accounts served from a Claustrum vault ("custody mode").
3
+ *
4
+ * Terms used below:
5
+ * - roster: the non-secret list of vault accounts this host may route to
6
+ * (route id, credential id, account identity, enabled/declined state).
7
+ * - receipt: what Claustrum serves for one send attempt: a fresh bearer, the
8
+ * Antigravity project for the model request, the account identity the vault
9
+ * asserted, and the record version it served for the credential.
10
+ * - host auth slot: the host's own Google credential record. Pi temporarily
11
+ * replaces it with a non-secret marker and retains a backup; OpenCode may
12
+ * keep its existing login. Neither is read by this vault account source.
13
+ *
14
+ * The host passes in the library's public `./claustrum` module; every library
15
+ * type here is taken from that module's own declarations.
16
+ *
17
+ * Rules:
18
+ * - Each send attempt to Google (each endpoint fallback, each 401 retry,
19
+ * quota and profile reads) gets a new admission with a fresh receipt, and
20
+ * takes its bearer and project from that receipt only. Nothing is cached or
21
+ * refreshed locally.
22
+ * - Google bearers are opaque: a receipt is accepted only when the vault
23
+ * asserted the credential and the account the selected route names. No
24
+ * token is parsed for an identity, and API-key credentials are refused.
25
+ * - Nothing is served unless custody is active. The host's local credentials
26
+ * stay dormant: this source never reads or refreshes them.
27
+ */
28
+ import { ANTIGRAVITY_VAULT_FAMILY, ANTIGRAVITY_VAULT_REQUIRE_ASSERTION, } from "./vault-family.js";
29
+ import { commitVaultProviderState, } from "./vault-provider-state.js";
30
+ /**
31
+ * A refusal by this source before any request reaches Google. Refusals made
32
+ * by the Claustrum library itself arrive as the library's own errors.
33
+ */
34
+ export class AntigravityVaultSourceError extends Error {
35
+ kind;
36
+ constructor(kind, message) {
37
+ super(message);
38
+ this.name = 'AntigravityVaultSourceError';
39
+ this.kind = kind;
40
+ }
41
+ }
42
+ /**
43
+ * Path of the Claustrum connection file to pass as the client's
44
+ * `connectionFile`, resolved by `@cortexkit/claustrum-client`'s own
45
+ * `resolveClaustrumConnectionPath`: `explicit` when given, else the
46
+ * `SUBC_CONNECTION_FILE` or `CLAUSTRUM_SUBC_CONNECTION` environment variable,
47
+ * else the client's default path. The client package is imported only when
48
+ * this is called, so importing core never loads it, and its errors pass
49
+ * through unchanged. Resolving the path opens no connection and reads no
50
+ * enrollment or host credential.
51
+ */
52
+ export async function resolveClaustrumConnectionPath(explicit) {
53
+ const client = await import('@cortexkit/claustrum-client');
54
+ return client.resolveClaustrumConnectionPath(explicit);
55
+ }
56
+ function isNonEmpty(value) {
57
+ return typeof value === 'string' && value.trim().length > 0;
58
+ }
59
+ /** Rows whose route, credential and account are all known and serviceable. */
60
+ function routeRefs(roster, isDeclined) {
61
+ if (!roster)
62
+ return [];
63
+ const refs = [];
64
+ for (const row of roster.rows) {
65
+ if (!isServiceableRow(row, roster, isDeclined))
66
+ continue;
67
+ refs.push(Object.freeze({
68
+ routeId: row.routeId,
69
+ credentialId: row.credentialId,
70
+ accountIdentity: row.accountIdentity,
71
+ label: row.label,
72
+ ...(row.email !== undefined && { email: row.email }),
73
+ }));
74
+ }
75
+ return refs;
76
+ }
77
+ function isServiceableRow(row, roster, isDeclined) {
78
+ return (row.enabled &&
79
+ row.state === 'active' &&
80
+ row.credentialType === 'oauth' &&
81
+ row.stale !== true &&
82
+ row.unclaimed !== true &&
83
+ isNonEmpty(row.accountIdentity) &&
84
+ !isDeclined(roster.declined, row.credentialId, row.accountIdentity));
85
+ }
86
+ /**
87
+ * Check a receipt against the selected route and turn it into an admission.
88
+ * Throws before anything is sent when the receipt does not prove the route's
89
+ * credential and account, or carries no project.
90
+ */
91
+ function admissionFromReceipt(ref, receipt) {
92
+ if (receipt.credentialType !== 'oauth')
93
+ throw new AntigravityVaultSourceError('api-key-refused', 'Antigravity vault routes serve OAuth credentials only');
94
+ if (receipt.accountIdentitySource !== 'asserted' ||
95
+ receipt.assertedCredentialId === undefined ||
96
+ receipt.assertedAccountIdentity === undefined)
97
+ throw new AntigravityVaultSourceError('identity-unasserted', 'The vault did not assert the credential and account for this send');
98
+ if (receipt.credentialId !== ref.credentialId ||
99
+ receipt.assertedCredentialId !== ref.credentialId ||
100
+ receipt.assertedAccountIdentity !== ref.accountIdentity ||
101
+ receipt.accountIdentity !== ref.accountIdentity ||
102
+ receipt.expectedAccountIdentity !== ref.accountIdentity)
103
+ throw new AntigravityVaultSourceError('identity-contradicted', 'The vault served a different credential or account than the selected route');
104
+ if (!isNonEmpty(receipt.projectId) || /\s/.test(receipt.projectId))
105
+ throw new AntigravityVaultSourceError('project-missing', 'The vault served no Antigravity project for this send');
106
+ if (!isNonEmpty(receipt.accessToken) ||
107
+ !Number.isSafeInteger(receipt.recordVersion) ||
108
+ receipt.recordVersion < 0)
109
+ throw new AntigravityVaultSourceError('invalid-receipt', 'The vault receipt carries no usable token or record version');
110
+ const admission = {
111
+ routeId: ref.routeId,
112
+ credentialId: receipt.credentialId,
113
+ accountIdentity: receipt.assertedAccountIdentity,
114
+ recordVersion: receipt.recordVersion,
115
+ projectId: receipt.projectId,
116
+ expiresAtMs: receipt.expiresAtMs,
117
+ };
118
+ Object.defineProperty(admission, 'accessToken', {
119
+ value: receipt.accessToken,
120
+ enumerable: false,
121
+ });
122
+ return Object.freeze(admission);
123
+ }
124
+ export function createAntigravityVaultAccountSource(options) {
125
+ const { claustrum } = options;
126
+ const consumer = new claustrum.ClaustrumConsumer({
127
+ rosterPath: options.rosterPath,
128
+ tokenPath: options.tokenPath,
129
+ family: { ...ANTIGRAVITY_VAULT_FAMILY },
130
+ connect: options.connect,
131
+ isCustodyActive: options.isCustodyActive,
132
+ requireAssertion: ANTIGRAVITY_VAULT_REQUIRE_ASSERTION,
133
+ ...(options.reservedRouteIds && {
134
+ reservedRouteIds: options.reservedRouteIds,
135
+ }),
136
+ ...(options.routePrefix !== undefined && {
137
+ routePrefix: options.routePrefix,
138
+ }),
139
+ ...(options.onRoster && { onRoster: options.onRoster }),
140
+ ...(options.onError && { onError: options.onError }),
141
+ ...(options.pollIntervalMs !== undefined && {
142
+ pollIntervalMs: options.pollIntervalMs,
143
+ }),
144
+ ...(options.now && { now: options.now }),
145
+ ...(options.logger && { logger: options.logger }),
146
+ });
147
+ const issued = new WeakMap();
148
+ const isDeclined = claustrum.isDeclined.bind(claustrum);
149
+ let closed = false;
150
+ const assertOpen = (signal) => {
151
+ if (closed)
152
+ throw new AntigravityVaultSourceError('closed', 'Antigravity vault source is closed');
153
+ signal?.throwIfAborted();
154
+ };
155
+ /** Require approved vault access before obtaining credentials for an operation. */
156
+ const assertServing = async (signal) => {
157
+ assertOpen(signal);
158
+ if (!(await options.isCustodyActive()))
159
+ throw new AntigravityVaultSourceError('not-active', 'Antigravity vault custody is not active for this host');
160
+ assertOpen(signal);
161
+ };
162
+ /** The ref must still name a serviceable row of the last committed roster. */
163
+ const assertCurrentRoute = (ref) => {
164
+ const roster = consumer.snapshot();
165
+ const row = roster?.rows.find((entry) => entry.routeId === ref.routeId);
166
+ if (!roster ||
167
+ !row ||
168
+ row.credentialId !== ref.credentialId ||
169
+ row.accountIdentity !== ref.accountIdentity ||
170
+ !isServiceableRow(row, roster, isDeclined))
171
+ throw new AntigravityVaultSourceError('route-unavailable', 'The selected vault route is declined, removed or changed');
172
+ };
173
+ const admit = async (ref, signal) => {
174
+ await assertServing(signal);
175
+ assertCurrentRoute(ref);
176
+ const receipt = await consumer.authorize(ref.routeId, signal);
177
+ assertOpen(signal);
178
+ const admission = admissionFromReceipt(ref, receipt);
179
+ issued.set(admission, { receipt, reported: false });
180
+ return admission;
181
+ };
182
+ const issuedEntry = (admission) => {
183
+ const entry = issued.get(admission);
184
+ if (!entry)
185
+ throw new AntigravityVaultSourceError('not-issued', 'This admission was not issued by this vault source');
186
+ return entry;
187
+ };
188
+ const reportServedStatus = async (admission, status, reporterSource) => {
189
+ const entry = issuedEntry(admission);
190
+ if (status !== 401 || entry.reported)
191
+ return false;
192
+ assertOpen();
193
+ entry.reported = true;
194
+ await consumer.reportFailure(entry.receipt, 401, reporterSource ?? options.reporterSource);
195
+ return true;
196
+ };
197
+ /**
198
+ * Fresh proof that the attributed credential, account and record version
199
+ * are still what the vault serves. The proving receipt's token and project
200
+ * are dropped here; they never reach a send.
201
+ */
202
+ const verifyAttribution = async (attribution) => {
203
+ await assertServing();
204
+ // Authorizing without a committed roster would make the consumer discover
205
+ // and commit one, which takes the roster lock the caller already holds.
206
+ if (!consumer.snapshot())
207
+ throw new AntigravityVaultSourceError('state-unavailable', 'No committed vault roster to verify the account against');
208
+ const ref = {
209
+ routeId: attribution.routeId,
210
+ credentialId: attribution.credentialId,
211
+ accountIdentity: attribution.accountIdentity,
212
+ label: '',
213
+ };
214
+ const proof = admissionFromReceipt(ref, await consumer.authorize(attribution.routeId));
215
+ if (proof.recordVersion !== attribution.recordVersion)
216
+ throw new AntigravityVaultSourceError('state-unavailable', 'The vault now serves another record version for this account');
217
+ };
218
+ return {
219
+ host: options.host,
220
+ start: () => {
221
+ assertOpen();
222
+ consumer.start();
223
+ },
224
+ refresh: async () => {
225
+ assertOpen();
226
+ return consumer.refresh();
227
+ },
228
+ routes: () => (closed ? [] : routeRefs(consumer.snapshot(), isDeclined)),
229
+ admit,
230
+ send: async (ref, dispatch, sendOptions) => {
231
+ const signal = sendOptions.signal;
232
+ let admission = await admit(ref, signal);
233
+ let response = await dispatch(admission, signal);
234
+ if (response.status === 401 && !signal?.aborted) {
235
+ let current;
236
+ try {
237
+ current = await admit(ref, signal);
238
+ }
239
+ catch {
240
+ // No retry: the original 401 response is kept and reported below
241
+ // with the receipt of the dispatch that received it.
242
+ }
243
+ const servedReceipt = issuedEntry(admission).receipt;
244
+ const currentReceipt = current && issuedEntry(current).receipt;
245
+ if (current &&
246
+ claustrum.decideScopedRetryAfter401(sendOptions.site, servedReceipt, currentReceipt, options.logger)) {
247
+ await response.body?.cancel().catch(() => { });
248
+ admission = current;
249
+ response = await dispatch(current, signal);
250
+ }
251
+ }
252
+ if (response.status === 401)
253
+ await reportServedStatus(admission, 401, sendOptions.reporterSource).catch((error) => options.onError?.(error));
254
+ return response;
255
+ },
256
+ reportServedStatus,
257
+ attribution: (admission) => {
258
+ issuedEntry(admission);
259
+ return Object.freeze({
260
+ routeId: admission.routeId,
261
+ credentialId: admission.credentialId,
262
+ accountIdentity: admission.accountIdentity,
263
+ recordVersion: admission.recordVersion,
264
+ });
265
+ },
266
+ commitState: async (attribution, update) => {
267
+ assertOpen();
268
+ if (!options.state)
269
+ throw new AntigravityVaultSourceError('state-unavailable', 'No provider-state sidecar is configured for this vault source');
270
+ return commitVaultProviderState({
271
+ claustrum,
272
+ fs: options.state.fs,
273
+ rosterPath: options.rosterPath,
274
+ statePath: options.state.path,
275
+ attribution,
276
+ verify: verifyAttribution,
277
+ update,
278
+ });
279
+ },
280
+ decline: async (ref) => {
281
+ assertOpen();
282
+ await consumer.decline(ref.routeId);
283
+ },
284
+ accept: async (ref) => {
285
+ assertOpen();
286
+ await consumer.accept(ref.routeId);
287
+ },
288
+ close: () => {
289
+ if (closed)
290
+ return;
291
+ closed = true;
292
+ consumer.close();
293
+ },
294
+ };
295
+ }
296
+ //# sourceMappingURL=vault-account-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-account-source.js","sourceRoot":"","sources":["../src/vault-account-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type CommonAuthClaustrumModule } from './common-auth-runtime.ts';
2
+ export type EnrollmentAuthority = 'vault' | 'local' | 'unreadable';
3
+ type EnrollmentPaths = Parameters<CommonAuthClaustrumModule['readClaustrumEnrollmentStatus']>[0];
4
+ type EnrollmentReader = Pick<CommonAuthClaustrumModule, 'enrollmentAuthority'>;
5
+ export declare const VAULT_ACCOUNT_REMEDY = "Vault account access is unavailable. Connect accounts in the vault, or disconnect the vault to use local accounts.";
6
+ /**
7
+ * The operator's approval to access the vault selects its accounts instead of local OAuth accounts,
8
+ * regardless of a saved local-mode preference.
9
+ * An approved record whose token disappeared still excludes local accounts.
10
+ * Failed reads never authorize local work. Call at the start of each unit of
11
+ * work; a refresh that already started must finish saving the replacement
12
+ * OAuth credentials.
13
+ */
14
+ export declare function enrollmentAuthority(paths: EnrollmentPaths, proposedName: string, reader?: EnrollmentReader): Promise<EnrollmentAuthority>;
15
+ export {};
16
+ //# sourceMappingURL=vault-enrollment-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-enrollment-authority.d.ts","sourceRoot":"","sources":["../src/vault-enrollment-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,0BAA0B,CAAA;AAEjC,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAA;AAClE,KAAK,eAAe,GAAG,UAAU,CAC/B,yBAAyB,CAAC,+BAA+B,CAAC,CAC3D,CAAC,CAAC,CAAC,CAAA;AACJ,KAAK,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,EAAE,qBAAqB,CAAC,CAAA;AAE9E,eAAO,MAAM,oBAAoB,uHACqF,CAAA;AAEtH;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B"}
@@ -0,0 +1,19 @@
1
+ import { loadCommonAuthClaustrum, } from "./common-auth-runtime.js";
2
+ export const VAULT_ACCOUNT_REMEDY = 'Vault account access is unavailable. Connect accounts in the vault, or disconnect the vault to use local accounts.';
3
+ /**
4
+ * The operator's approval to access the vault selects its accounts instead of local OAuth accounts,
5
+ * regardless of a saved local-mode preference.
6
+ * An approved record whose token disappeared still excludes local accounts.
7
+ * Failed reads never authorize local work. Call at the start of each unit of
8
+ * work; a refresh that already started must finish saving the replacement
9
+ * OAuth credentials.
10
+ */
11
+ export async function enrollmentAuthority(paths, proposedName, reader) {
12
+ try {
13
+ return await (reader ?? (await loadCommonAuthClaustrum())).enrollmentAuthority(paths, proposedName);
14
+ }
15
+ catch {
16
+ return 'unreadable';
17
+ }
18
+ }
19
+ //# sourceMappingURL=vault-enrollment-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-enrollment-authority.js","sourceRoot":"","sources":["../src/vault-enrollment-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,GACxB,MAAM,0BAA0B,CAAA;AAQjC,MAAM,CAAC,MAAM,oBAAoB,GAC/B,oHAAoH,CAAA;AAEtH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAsB,EACtB,YAAoB,EACpB,MAAyB;IAEzB,IAAI,CAAC;QACH,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAC5C,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAA;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type AntigravityVaultHost = 'opencode' | 'pi';
2
+ export declare const ANTIGRAVITY_VAULT_FAMILY: Readonly<{
3
+ readonly refreshAdapter: "antigravity";
4
+ readonly category: "antigravity-native";
5
+ readonly apiKeys: false;
6
+ }>;
7
+ export declare const ANTIGRAVITY_VAULT_REQUIRE_ASSERTION: true;
8
+ export type AntigravityVaultEnrollmentName = `antigravity-auth-${AntigravityVaultHost}`;
9
+ export declare const ANTIGRAVITY_VAULT_ENROLLMENT_NAMES: Readonly<Record<AntigravityVaultHost, AntigravityVaultEnrollmentName>>;
10
+ export declare function getAntigravityVaultEnrollmentName(host: AntigravityVaultHost): AntigravityVaultEnrollmentName;
11
+ //# sourceMappingURL=vault-family.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-family.d.ts","sourceRoot":"","sources":["../src/vault-family.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,IAAI,CAAA;AAEpD,eAAO,MAAM,wBAAwB;;;;EAI1B,CAAA;AAEX,eAAO,MAAM,mCAAmC,EAAG,IAAa,CAAA;AAEhE,MAAM,MAAM,8BAA8B,GACxC,oBAAoB,oBAAoB,EAAE,CAAA;AAE5C,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CACvD,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAI5D,CAAA;AAMF,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,oBAAoB,GACzB,8BAA8B,CAShC"}
@@ -0,0 +1,24 @@
1
+ export const ANTIGRAVITY_VAULT_FAMILY = Object.freeze({
2
+ refreshAdapter: 'antigravity',
3
+ category: 'antigravity-native',
4
+ apiKeys: false,
5
+ });
6
+ export const ANTIGRAVITY_VAULT_REQUIRE_ASSERTION = true;
7
+ export const ANTIGRAVITY_VAULT_ENROLLMENT_NAMES = Object.freeze({
8
+ opencode: 'antigravity-auth-opencode',
9
+ pi: 'antigravity-auth-pi',
10
+ });
11
+ function assertNeverHost(host) {
12
+ throw new TypeError(`Unsupported Antigravity vault host: ${String(host)}`);
13
+ }
14
+ export function getAntigravityVaultEnrollmentName(host) {
15
+ switch (host) {
16
+ case 'opencode':
17
+ return ANTIGRAVITY_VAULT_ENROLLMENT_NAMES.opencode;
18
+ case 'pi':
19
+ return ANTIGRAVITY_VAULT_ENROLLMENT_NAMES.pi;
20
+ default:
21
+ return assertNeverHost(host);
22
+ }
23
+ }
24
+ //# sourceMappingURL=vault-family.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-family.js","sourceRoot":"","sources":["../src/vault-family.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,cAAc,EAAE,aAAa;IAC7B,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,KAAK;CACN,CAAC,CAAA;AAEX,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAa,CAAA;AAKhE,MAAM,CAAC,MAAM,kCAAkC,GAE3C,MAAM,CAAC,MAAM,CAAC;IAChB,QAAQ,EAAE,2BAA2B;IACrC,EAAE,EAAE,qBAAqB;CAC1B,CAAC,CAAA;AAEF,SAAS,eAAe,CAAC,IAAW;IAClC,MAAM,IAAI,SAAS,CAAC,uCAAuC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,IAA0B;IAE1B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,kCAAkC,CAAC,QAAQ,CAAA;QACpD,KAAK,IAAI;YACP,OAAO,kCAAkC,CAAC,EAAE,CAAA;QAC9C;YACE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;AACH,CAAC"}