@indigoai-us/hq-cloud 6.14.48 → 6.14.49
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.
- package/.github/workflows/publish.yml +23 -1
- package/dist/cli/reindex.d.ts.map +1 -1
- package/dist/cli/reindex.js +25 -6
- package/dist/cli/reindex.js.map +1 -1
- package/dist/cli/reindex.test.js +86 -1
- package/dist/cli/reindex.test.js.map +1 -1
- package/dist/cognito-auth.d.ts +45 -0
- package/dist/cognito-auth.d.ts.map +1 -1
- package/dist/cognito-auth.js +157 -36
- package/dist/cognito-auth.js.map +1 -1
- package/dist/read-only-state-dir.test.d.ts +27 -0
- package/dist/read-only-state-dir.test.d.ts.map +1 -0
- package/dist/read-only-state-dir.test.js +167 -0
- package/dist/read-only-state-dir.test.js.map +1 -0
- package/package.json +2 -2
- package/src/cli/reindex.test.ts +109 -1
- package/src/cli/reindex.ts +24 -6
- package/src/cognito-auth.ts +164 -37
- package/src/read-only-state-dir.test.ts +188 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cognito-auth.d.ts","sourceRoot":"","sources":["../src/cognito-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,+KAA+K;IAC/K,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,qFAAqF;AACrF,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,gBAAgB;IACvD,SAAgB,cAAc,EAAE,OAAO,CAAC;IACxC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAG1C,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,OAAO,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM;CAQ9B;
|
|
1
|
+
{"version":3,"file":"cognito-auth.d.ts","sourceRoot":"","sources":["../src/cognito-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cognito-auth.js
CHANGED
|
@@ -49,16 +49,44 @@ export class CognitoRefreshError extends CognitoAuthError {
|
|
|
49
49
|
// ---------------------------------------------------------------------------
|
|
50
50
|
// Token cache (~/.hq/cognito-tokens.json)
|
|
51
51
|
// ---------------------------------------------------------------------------
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Root for hq CLI state: the token cache and its refresh lock.
|
|
54
|
+
*
|
|
55
|
+
* `HQ_STATE_DIR` overrides it, mirroring the existing `HQ_MACHINE_CREDS_FILE`
|
|
56
|
+
* override for the creds path. Before this existed the location was
|
|
57
|
+
* `os.homedir()/.hq` with NO escape hatch, which made every auth path — machine
|
|
58
|
+
* identity included — require a writable HOME. A child job running with a
|
|
59
|
+
* read-only HQ state directory therefore died on a *cache write* before it ever
|
|
60
|
+
* reached the network:
|
|
61
|
+
*
|
|
62
|
+
* EACCES: permission denied, open '…/.hq/cognito-tokens.json.lock.candidate.…'
|
|
63
|
+
*
|
|
64
|
+
* Pointing HQ_STATE_DIR at a writable tmpfs lets such a job authenticate while
|
|
65
|
+
* leaving the credentials themselves wherever they are.
|
|
66
|
+
*
|
|
67
|
+
* Resolved per call (not once at import) so a caller can set it during startup
|
|
68
|
+
* and so tests can exercise both branches.
|
|
69
|
+
*/
|
|
70
|
+
export function hqStateDir() {
|
|
71
|
+
const override = process.env.HQ_STATE_DIR?.trim();
|
|
72
|
+
return override !== undefined && override.length > 0
|
|
73
|
+
? override
|
|
74
|
+
: path.join(os.homedir(), ".hq");
|
|
75
|
+
}
|
|
76
|
+
/** The Cognito token cache file inside {@link hqStateDir}. */
|
|
77
|
+
export function tokenCacheFile() {
|
|
78
|
+
return path.join(hqStateDir(), "cognito-tokens.json");
|
|
79
|
+
}
|
|
80
|
+
function tokenInvalidationPrefix() {
|
|
81
|
+
return `${tokenCacheFile()}.invalid.`;
|
|
82
|
+
}
|
|
55
83
|
/** Stable, non-secret identity for one access-token generation. */
|
|
56
84
|
export function accessTokenFingerprint(accessToken) {
|
|
57
85
|
return crypto.createHash("sha256").update(accessToken).digest("hex");
|
|
58
86
|
}
|
|
59
87
|
function invalidationPathForFingerprint(fingerprint) {
|
|
60
88
|
return /^[a-f0-9]{64}$/i.test(fingerprint)
|
|
61
|
-
? `${
|
|
89
|
+
? `${tokenInvalidationPrefix()}${fingerprint.toLowerCase()}`
|
|
62
90
|
: null;
|
|
63
91
|
}
|
|
64
92
|
/**
|
|
@@ -72,8 +100,8 @@ export function invalidateCachedTokensByFingerprint(fingerprint) {
|
|
|
72
100
|
const invalidationPath = invalidationPathForFingerprint(fingerprint);
|
|
73
101
|
if (!invalidationPath)
|
|
74
102
|
return;
|
|
75
|
-
if (!fs.existsSync(
|
|
76
|
-
fs.mkdirSync(
|
|
103
|
+
if (!fs.existsSync(hqStateDir())) {
|
|
104
|
+
fs.mkdirSync(hqStateDir(), { recursive: true, mode: 0o700 });
|
|
77
105
|
}
|
|
78
106
|
try {
|
|
79
107
|
fs.writeFileSync(invalidationPath, "", { mode: 0o600, flag: "wx" });
|
|
@@ -90,46 +118,78 @@ function tokenIsInvalidated(accessToken) {
|
|
|
90
118
|
const marker = invalidationPathForFingerprint(accessTokenFingerprint(accessToken));
|
|
91
119
|
return marker !== null && fs.existsSync(marker);
|
|
92
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* True for the errno family a read-only / not-writable state directory raises.
|
|
123
|
+
*
|
|
124
|
+
* A job whose HQ state dir is mounted read-only (container, restricted
|
|
125
|
+
* sandbox, root-owned dir entered as another user) must still be able to
|
|
126
|
+
* AUTHENTICATE — persisting the session is an optimisation, not a requirement.
|
|
127
|
+
*/
|
|
128
|
+
function isNotWritableError(err) {
|
|
129
|
+
const code = err?.code;
|
|
130
|
+
return code === "EROFS" || code === "EACCES" || code === "EPERM";
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Process-local fallback used when the state directory cannot be written.
|
|
134
|
+
*
|
|
135
|
+
* Keeps the cache semantics intact for the life of the process instead of
|
|
136
|
+
* failing the call outright. It is deliberately NOT a substitute for the shared
|
|
137
|
+
* on-disk cache: a fresh subprocess starts empty and re-mints.
|
|
138
|
+
*/
|
|
139
|
+
let inMemoryCachedTokens = null;
|
|
93
140
|
export function loadCachedTokens() {
|
|
94
|
-
if (!fs.existsSync(
|
|
95
|
-
return
|
|
141
|
+
if (!fs.existsSync(tokenCacheFile()))
|
|
142
|
+
return inMemoryCachedTokens;
|
|
96
143
|
try {
|
|
97
|
-
const raw = fs.readFileSync(
|
|
144
|
+
const raw = fs.readFileSync(tokenCacheFile(), "utf-8");
|
|
98
145
|
const tokens = JSON.parse(raw);
|
|
99
146
|
if (!tokens.accessToken || tokenIsInvalidated(tokens.accessToken))
|
|
100
147
|
return null;
|
|
101
148
|
return tokens;
|
|
102
149
|
}
|
|
103
150
|
catch {
|
|
104
|
-
return
|
|
151
|
+
return inMemoryCachedTokens;
|
|
105
152
|
}
|
|
106
153
|
}
|
|
107
154
|
export function saveCachedTokens(tokens) {
|
|
108
|
-
|
|
109
|
-
|
|
155
|
+
// Remember in-process FIRST: whatever happens to the disk write below, this
|
|
156
|
+
// process must not lose a session it already successfully minted.
|
|
157
|
+
inMemoryCachedTokens = tokens;
|
|
158
|
+
try {
|
|
159
|
+
if (!fs.existsSync(hqStateDir())) {
|
|
160
|
+
fs.mkdirSync(hqStateDir(), { recursive: true, mode: 0o700 });
|
|
161
|
+
}
|
|
162
|
+
const invalidationPath = invalidationPathForFingerprint(accessTokenFingerprint(tokens.accessToken));
|
|
163
|
+
if (invalidationPath && fs.existsSync(invalidationPath)) {
|
|
164
|
+
fs.unlinkSync(invalidationPath);
|
|
165
|
+
}
|
|
166
|
+
const tmpPath = path.join(hqStateDir(), `.cognito-tokens.json.tmp.${process.pid}`);
|
|
167
|
+
fs.writeFileSync(tmpPath, JSON.stringify(tokens, null, 2), { mode: 0o600 });
|
|
168
|
+
fs.renameSync(tmpPath, tokenCacheFile());
|
|
110
169
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
170
|
+
catch (err) {
|
|
171
|
+
// A read-only state dir degrades to the in-memory cache. Any other error
|
|
172
|
+
// (disk full, corrupt path) is still a real fault and propagates.
|
|
173
|
+
if (!isNotWritableError(err))
|
|
174
|
+
throw err;
|
|
114
175
|
}
|
|
115
|
-
const tmpPath = path.join(HQ_DIR, `.cognito-tokens.json.tmp.${process.pid}`);
|
|
116
|
-
fs.writeFileSync(tmpPath, JSON.stringify(tokens, null, 2), { mode: 0o600 });
|
|
117
|
-
fs.renameSync(tmpPath, TOKEN_FILE);
|
|
118
176
|
}
|
|
119
177
|
export function clearCachedTokens() {
|
|
120
|
-
if (fs.existsSync(
|
|
121
|
-
fs.unlinkSync(
|
|
122
|
-
if (!fs.existsSync(
|
|
178
|
+
if (fs.existsSync(tokenCacheFile()))
|
|
179
|
+
fs.unlinkSync(tokenCacheFile());
|
|
180
|
+
if (!fs.existsSync(hqStateDir()))
|
|
123
181
|
return;
|
|
124
|
-
const markerPrefix = `${path.basename(
|
|
125
|
-
for (const entry of fs.readdirSync(
|
|
182
|
+
const markerPrefix = `${path.basename(tokenCacheFile())}.invalid.`;
|
|
183
|
+
for (const entry of fs.readdirSync(hqStateDir())) {
|
|
126
184
|
if (entry.startsWith(markerPrefix)) {
|
|
127
|
-
fs.unlinkSync(path.join(
|
|
185
|
+
fs.unlinkSync(path.join(hqStateDir(), entry));
|
|
128
186
|
}
|
|
129
187
|
}
|
|
130
188
|
}
|
|
131
189
|
/** Advisory lockfile guarding the read→refresh→save cycle (see withRefreshLock). */
|
|
132
|
-
|
|
190
|
+
function refreshLockFile() {
|
|
191
|
+
return `${tokenCacheFile()}.lock`;
|
|
192
|
+
}
|
|
133
193
|
/** Thrown when the refresh lock can't be acquired within the deadline. */
|
|
134
194
|
export class RefreshLockTimeoutError extends Error {
|
|
135
195
|
constructor() {
|
|
@@ -140,7 +200,7 @@ export class RefreshLockTimeoutError extends Error {
|
|
|
140
200
|
/** The pid recorded in the lockfile, or null if absent/empty/malformed. */
|
|
141
201
|
function readLockOwnerPid() {
|
|
142
202
|
try {
|
|
143
|
-
const pid = Number.parseInt(fs.readFileSync(
|
|
203
|
+
const pid = Number.parseInt(fs.readFileSync(refreshLockFile(), "utf-8").trim(), 10);
|
|
144
204
|
return Number.isInteger(pid) && pid > 0 ? pid : null;
|
|
145
205
|
}
|
|
146
206
|
catch {
|
|
@@ -188,23 +248,42 @@ function processAlive(pid) {
|
|
|
188
248
|
async function withRefreshLock(fn) {
|
|
189
249
|
const timeoutMs = 20_000;
|
|
190
250
|
const pollMs = 50;
|
|
191
|
-
|
|
192
|
-
fs.
|
|
251
|
+
try {
|
|
252
|
+
if (!fs.existsSync(hqStateDir())) {
|
|
253
|
+
fs.mkdirSync(hqStateDir(), { recursive: true, mode: 0o700 });
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
if (!isNotWritableError(err))
|
|
258
|
+
throw err;
|
|
259
|
+
return await fn();
|
|
193
260
|
}
|
|
194
261
|
// Publish a fully-written inode with an atomic hard link. Creating the lock
|
|
195
262
|
// itself and then writing the pid leaves an observable empty-file window in
|
|
196
263
|
// which a contender can misclassify and unlink a live holder's lock.
|
|
197
|
-
const candidate = `${
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
264
|
+
const candidate = `${refreshLockFile()}.candidate.${process.pid}.${crypto.randomBytes(8).toString("hex")}`;
|
|
265
|
+
try {
|
|
266
|
+
fs.writeFileSync(candidate, String(process.pid), {
|
|
267
|
+
flag: "wx",
|
|
268
|
+
mode: 0o600,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
catch (err) {
|
|
272
|
+
if (!isNotWritableError(err))
|
|
273
|
+
throw err;
|
|
274
|
+
// The state dir is not writable, so NO process can be persisting to this
|
|
275
|
+
// cache — there is nothing to serialize against and the lock's only job is
|
|
276
|
+
// moot. Run unlocked rather than failing the caller's authentication on a
|
|
277
|
+
// lockfile we neither need nor can create. (Before this, a read-only state
|
|
278
|
+
// dir raised EACCES here, killing machine auth before any network call.)
|
|
279
|
+
return await fn();
|
|
280
|
+
}
|
|
202
281
|
const deadline = Date.now() + timeoutMs;
|
|
203
282
|
let held = false;
|
|
204
283
|
try {
|
|
205
284
|
for (;;) {
|
|
206
285
|
try {
|
|
207
|
-
fs.linkSync(candidate,
|
|
286
|
+
fs.linkSync(candidate, refreshLockFile());
|
|
208
287
|
held = true;
|
|
209
288
|
break;
|
|
210
289
|
}
|
|
@@ -214,7 +293,7 @@ async function withRefreshLock(fn) {
|
|
|
214
293
|
const owner = readLockOwnerPid();
|
|
215
294
|
if (owner === null || (owner !== process.pid && !processAlive(owner))) {
|
|
216
295
|
try {
|
|
217
|
-
fs.unlinkSync(
|
|
296
|
+
fs.unlinkSync(refreshLockFile()); // crashed/malformed holder — reclaim
|
|
218
297
|
}
|
|
219
298
|
catch {
|
|
220
299
|
/* raced with another reclaimer */
|
|
@@ -232,7 +311,7 @@ async function withRefreshLock(fn) {
|
|
|
232
311
|
// Release ONLY our own lock — never clobber a successor's.
|
|
233
312
|
if (held && readLockOwnerPid() === process.pid) {
|
|
234
313
|
try {
|
|
235
|
-
fs.unlinkSync(
|
|
314
|
+
fs.unlinkSync(refreshLockFile());
|
|
236
315
|
}
|
|
237
316
|
catch {
|
|
238
317
|
/* already released */
|
|
@@ -430,6 +509,44 @@ export function loadMachineCreds() {
|
|
|
430
509
|
export function isMachineIdentity() {
|
|
431
510
|
return loadMachineCreds() !== null;
|
|
432
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Whether the caller declared this process MUST run as a machine identity
|
|
514
|
+
* (`HQ_REQUIRE_MACHINE_IDENTITY=1`).
|
|
515
|
+
*
|
|
516
|
+
* Set it on unattended runners — child jobs, workers, skill subprocesses. It
|
|
517
|
+
* converts the worst failure mode in this module into a clear one.
|
|
518
|
+
*
|
|
519
|
+
* Without it, a machine context that cannot find its credentials does not
|
|
520
|
+
* error: `isMachineIdentity()` returns false and the caller quietly proceeds to
|
|
521
|
+
* the HUMAN Cognito path. On a headless box that means "launching browser
|
|
522
|
+
* sign-in" and a hang until something times out — observed in production, and
|
|
523
|
+
* reported by a client as child jobs "falling back to refreshing a human HQ
|
|
524
|
+
* session". The cause (a different HOME, so a different creds path) is nowhere
|
|
525
|
+
* in that message.
|
|
526
|
+
*/
|
|
527
|
+
export function machineIdentityRequired() {
|
|
528
|
+
const raw = process.env.HQ_REQUIRE_MACHINE_IDENTITY?.trim().toLowerCase();
|
|
529
|
+
return raw === "1" || raw === "true" || raw === "yes";
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Throw a typed, diagnosable error when machine identity is REQUIRED but the
|
|
533
|
+
* creds file is not readable. Names the exact path checked and how it was
|
|
534
|
+
* derived, so the fix (set `HQ_MACHINE_CREDS_FILE`, or restore HOME) is
|
|
535
|
+
* readable straight off the error. No-op when not required or already a
|
|
536
|
+
* machine identity.
|
|
537
|
+
*/
|
|
538
|
+
export function assertMachineIdentityWhenRequired() {
|
|
539
|
+
if (!machineIdentityRequired() || isMachineIdentity())
|
|
540
|
+
return;
|
|
541
|
+
const explicit = process.env.HQ_MACHINE_CREDS_FILE?.trim();
|
|
542
|
+
const source = explicit !== undefined && explicit.length > 0
|
|
543
|
+
? "HQ_MACHINE_CREDS_FILE"
|
|
544
|
+
: `os.homedir()=${os.homedir()}`;
|
|
545
|
+
throw new CognitoAuthError(`HQ_REQUIRE_MACHINE_IDENTITY is set but no usable machine credentials were ` +
|
|
546
|
+
`found at ${machineCredsFilePath()} (path from ${source}). Refusing to ` +
|
|
547
|
+
`fall back to an interactive human session. Set HQ_MACHINE_CREDS_FILE to ` +
|
|
548
|
+
`the credentials file, or run with the HOME that owns it.`);
|
|
549
|
+
}
|
|
433
550
|
const DEFAULT_MINT_RETRY = {
|
|
434
551
|
maxRetries: 5,
|
|
435
552
|
baseDelayMs: 250,
|
|
@@ -931,6 +1048,10 @@ export async function getValidAccessToken(config, options = {}) {
|
|
|
931
1048
|
const machine = await getValidMachineTokens(config);
|
|
932
1049
|
return machine.idToken;
|
|
933
1050
|
}
|
|
1051
|
+
// Past this point we are on the HUMAN path (cache -> refresh -> browser).
|
|
1052
|
+
// An unattended runner that declared itself a machine must fail here with a
|
|
1053
|
+
// diagnosable error rather than silently trying to sign a person in.
|
|
1054
|
+
assertMachineIdentityWhenRequired();
|
|
934
1055
|
let cached = loadCachedTokens();
|
|
935
1056
|
// Stale-pool detection: if the cached access token was issued by a
|
|
936
1057
|
// different Cognito App Client than the one we're talking to now, drop the
|
package/dist/cognito-auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cognito-auth.js","sourceRoot":"","sources":["../src/cognito-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,IAAI,MAAM,MAAM,CAAC;AAuCxB,qFAAqF;AACrF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IACvC,cAAc,CAAU;IACxB,UAAU,CAAU;IACpB,kBAAkB,CAAU;IAE5C,YACE,OAAe,EACf,cAAuB,EACvB,UAAmB,EACnB,kBAA2B;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;CACF;AAED,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC5D,MAAM,yBAAyB,GAAG,GAAG,UAAU,WAAW,CAAC;AAE3D,mEAAmE;AACnE,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,8BAA8B,CAAC,WAAmB;IACzD,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,GAAG,yBAAyB,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE;QAC5D,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mCAAmC,CACjD,WAA+B;IAE/B,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAC;IACrE,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GACR,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG;YAC7C,CAAC,CAAE,GAAyB,CAAC,IAAI;YACjC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,MAAM,MAAM,GAAG,8BAA8B,CAC3C,sBAAsB,CAAC,WAAW,CAAC,CACpC,CAAC;IACF,OAAO,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,gBAAgB,GAAG,8BAA8B,CACrD,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,CAC3C,CAAC;IACF,IAAI,gBAAgB,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxD,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,4BAA4B,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7E,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO;IACnC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,iBAAiB,GAAG,GAAG,UAAU,OAAO,CAAC;AAE/C,0EAA0E;AAC1E,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,2EAA2E;AAC3E,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,UAAU,eAAe,CAAI,EAAoB;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC;IACzB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,SAAS,GAAG,GAAG,iBAAiB,cAAc,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3G,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC/C,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC;QACH,SAAS,CAAC;YACR,IAAI,CAAC;gBACH,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;gBAC1C,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM;YACR,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,GAAG,CAAC;gBAChE,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;gBACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtE,IAAI,CAAC;wBACH,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,qCAAqC;oBACzE,CAAC;oBAAC,MAAM,CAAC;wBACP,kCAAkC;oBACpC,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;oBAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;gBAChE,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,2DAA2D;QAC3D,IAAI,IAAI,IAAI,gBAAgB,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,aAAa,GAAG,EAAE;IAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACnE,CAAC,CAAE,MAAkC;YACrC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAqB,EACrB,KAAmB,EACnB,gBAAwB;IAExB,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,WAAW,GAAG,CAClB,MAA+B,EAC/B,GAAW,EACI,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;IAChC,MAAM,cAAc,GAClB,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC;QACrC,WAAW,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,UAAU,GACd,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACtE,MAAM,yBAAyB,GAC7B,CAAC,UAAU,KAAK,OAAO;QACrB,SAAS,KAAK,IAAI;QAClB,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,UAAU,KAAK,SAAS;YACvB,SAAS,KAAK,IAAI;YAClB,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,YAAY,KAAK,IAAI;YACrB,cAAc,KAAK,IAAI,CAAC,CAAC;IAC7B,wEAAwE;IACxE,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC;IACvD,MAAM,kBAAkB,GACtB,UAAU,KAAK,kBAAkB;QACjC,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACnE,yEAAyE;IACzE,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,kEAAkE;IAClE,2EAA2E;IAC3E,qEAAqE;IACrE,uEAAuE;IACvE,4EAA4E;IAC5E,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,mBAAmB,GACvB,UAAU,KAAK,KAAK,CAAC,QAAQ;QAC7B,KAAK,KAAK,KAAK,CAAC,QAAQ;QACxB,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,eAAe,GAAc,EAAE,CAAC;IACtC,IAAI,cAAc,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACnD,eAAe,CAAC,IAAI,CAAC,cAAc,KAAK,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACzC,eAAe,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,kBAAkB,GACtB,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE/D,OAAO,CACL,YAAY,CAAC,SAAS,KAAK,QAAQ;QACnC,cAAc,KAAK,gBAAgB;QACnC,QAAQ,CAAC,SAAS,KAAK,IAAI;QAC3B,UAAU,KAAK,gBAAgB;QAC/B,yBAAyB;QACzB,kBAAkB;QAClB,mBAAmB;QACnB,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAmCD,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB;IAClC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAOpD,CAAC;QACF,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,0DAA0D;QAC1D,MAAM,mBAAmB,GACvB,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;YAC7D,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS;gBAC3B,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;gBACjC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBAChC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO;gBACzB,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;gBACjC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBAChC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvC,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS;gBAC3B,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;gBACjC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBAChC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IACE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAChC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACvB,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;YAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACrB,mBAAmB,EACnB,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACrE,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;oBAC5D,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE;oBAChC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;oBACnC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;oBAC9B,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,gBAAgB,EAAE,KAAK,IAAI,CAAC;AACrC,CAAC;AAyBD,MAAM,kBAAkB,GAA+B;IACrD,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAwB;IACjE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;4EAE4E;AAC5E,SAAS,cAAc,CACrB,OAAe,EACf,IAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,yBAAyB,CACtC,MAAyB,EACzB,KAAoB,EACpB,KAAwB;IAExB,MAAM,YAAY,GAAG,KAAK,IAAI,gBAAgB,EAAE,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,gBAAgB,CACxB,mCAAmC,oBAAoB,EAAE,EAAE,CAC5D,CAAC;IACJ,CAAC;IACD,sEAAsE;IACtE,uEAAuE;IACvE,oDAAoD;IACpD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC1D,MAAM,SAAS,GAA+B,EAAE,GAAG,kBAAkB,EAAE,GAAG,KAAK,EAAE,CAAC;IAElF,IAAI,SAAS,GAA4B,IAAI,CAAC;IAC9C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,uBAAuB,MAAM,iBAAiB,EAC9C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,4BAA4B;gBAC5C,cAAc,EAAE,gDAAgD;aACjE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,QAAQ,EAAE,oBAAoB;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE;oBACd,QAAQ,EAAE,YAAY,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,YAAY,CAAC,MAAM;iBAC9B;aACF,CAAC;SACH,CACF,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAyB,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAC9B,8BAA8B,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAC/F,CAAC;YACF,uEAAuE;YACvE,kEAAkE;YAClE,IACE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;gBAC1C,OAAO,GAAG,SAAS,CAAC,UAAU,EAC9B,CAAC;gBACD,SAAS,GAAG,GAAG,CAAC;gBAChB,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,gBAAgB,CACxB,wCAAwC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1G,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAkB;YAC5B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,uEAAuE;YACvE,qEAAqE;YACrE,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,IAAI;YACzD,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,IAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,gBAAgB,CACxB,qFAAqF,CACtF,CAAC;QACJ,CAAC;QACD,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0EAA0E;IAC1E,4DAA4D;IAC5D,MAAM,SAAS,IAAI,IAAI,gBAAgB,CAAC,sCAAsC,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAyB,EACzB,KAAoB,EACpB,KAAwB;IAExB,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,CAAC;AAwBD,IAAI,sBAAsB,GAA4B,IAAI,CAAC;AAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkC,CAAC;AAEvE,SAAS,kBAAkB,CACzB,MAAyB,EACzB,KAAmB;IAEnB,6EAA6E;IAC7E,6EAA6E;IAC7E,kEAAkE;IAClE,OAAO,MAAM;SACV,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAC3C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;QACrC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,OAAO;QACvC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;KACnC,CAAC,CACH;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAyB;IAEzB,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,gBAAgB,CACxB,mCAAmC,oBAAoB,EAAE,EAAE,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAClE,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7D,yEAAyE;IACzE,IACE,sBAAsB,EAAE,WAAW,KAAK,WAAW;QACnD,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC;QAC/C,+BAA+B,CAC7B,sBAAsB,CAAC,MAAM,EAC7B,YAAY,EACZ,gBAAgB,CACjB,EACD,CAAC;QACD,OAAO,sBAAsB,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,4EAA4E;IAC5E,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACjE,IAAI,kBAAkB;QAAE,OAAO,kBAAkB,CAAC;IAElD,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;QAC7B,MAAM,gBAAgB,GAAG,KAAK,IAA4B,EAAE;YAC1D,uEAAuE;YACvE,sEAAsE;YACtE,sBAAsB;YACtB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBACvC,iEAAiE;gBACjE,uEAAuE;gBACvE,qEAAqE;gBACrE,oBAAoB;gBACpB,IACE,+BAA+B,CAC7B,MAAM,EACN,YAAY,EACZ,gBAAgB,CACjB,EACD,CAAC;oBACD,IAAI,MAAM,CAAC,YAAY,KAAK,EAAE;wBAAE,OAAO,MAAM,CAAC;oBAC9C,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;oBACnD,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBAC7B,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,OAAO,yBAAyB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,MAAM,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,uBAAuB,CAAC;gBAAE,MAAM,GAAG,CAAC;YACzD,yEAAyE;YACzE,iEAAiE;YACjE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBACvC,IACE,+BAA+B,CAC7B,MAAM,EACN,YAAY,EACZ,gBAAgB,CACjB,EACD,CAAC;oBACD,oEAAoE;oBACpE,sEAAsE;oBACtE,kEAAkE;oBAClE,IAAI,MAAM,CAAC,YAAY,KAAK,EAAE;wBAAE,OAAO,MAAM,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,MAAM,IAAI,gBAAgB,CACxB,0GAA0G,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAChC,sBAAsB,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,0EAA0E;QAC1E,2CAA2C;QAC3C,IAAI,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE,CAAC;YACzD,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG;SACP,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,eAAe,CAC/B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CACtD,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,SAAS,WAAW,CAAC,MAAyB;IAC5C,OAAO,WAAW,MAAM,CAAC,cAAc,SAAS,MAAM,CAAC,MAAM,oBAAoB,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,oBAAoB,IAAI,WAAW,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3E,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtD,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACnE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;IAEd,2EAA2E;IAC3E,SAAS,eAAe,CAAC,IAAY,EAAE,aAAqB;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,mDAAmD;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;gBAChE,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;oBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAE5C,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,GAAG,CAAC,oCAAoC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACrE,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,gBAAgB,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC,CAAC;oBACjE,OAAO;gBACT,CAAC;gBACD,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;oBAC5B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;oBACpE,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,gBAAgB,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBACjE,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACjC,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBAC9D,OAAO;gBACT,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CACL;;;;yBAIe,CAChB,CAAC;gBACF,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,6CAA6C,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACjF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBAClC,qCAAqC;gBACvC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,UAAU,CAC3B,GAAG,EAAE;gBACH,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,gBAAgB,CAAC,kCAAkC,CAAC,CAAC,CAAC;YACnE,CAAC,EACD,EAAE,GAAG,EAAE,GAAG,IAAI,CACf,CAAC;YAEF,SAAS,OAAO;gBACd,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAcD,KAAK,UAAU,qBAAqB,CAClC,MAAyB,EACzB,IAAY,EACZ,QAAgB,EAChB,IAAY;IAEZ,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,IAAI;QACJ,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC;KAChC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,gBAAgB,CACxB,0BAA0B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CACjD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAgB,CACxB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;QAC9C,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,iBAAiB,CACxB,MAAqB,EACrB,MAAyB;IAEzB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/D,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAyB,EACzB,mBAA2B,EAC3B,kBAA2B;IAE3B,MAAM,SAAS,GAAG,KAAK,IAA4B,EAAE;QACnD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,wEAAwE;QACxE,mBAAmB;QACnB,IAAI,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4EAA4E;QAC5E,qEAAqE;QACrE,4EAA4E;QAC5E,MAAM,YAAY,GAChB,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;YACzC,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,mBAAmB,CAAC;QAC1B,MAAM,kBAAkB,GAAG,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;YACpE,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5C,CAAC,CAAC,kBAAkB;gBAClB,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC;gBAC5C,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;YAC/B,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;QAEH,IAAI,WAA4C,CAAC;QACjD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,GAAa,CAAC;YAClB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;oBACvD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;oBAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,WAAW,GAAG,IAAI,mBAAmB,CACnC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACrF,KAAK,EACL,SAAS,EACT,kBAAkB,CACnB,CAAC;gBACF,IAAI,OAAO,KAAK,CAAC;oBAAE,SAAS;gBAC5B,MAAM,WAAW,CAAC;YACpB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,SAAS,GACb,GAAG,CAAC,MAAM,KAAK,GAAG;oBAClB,GAAG,CAAC,MAAM,KAAK,GAAG;oBAClB,GAAG,CAAC,MAAM,KAAK,GAAG;oBAClB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;gBACpB,MAAM,cAAc,GAClB,GAAG,CAAC,MAAM,KAAK,GAAG;oBAClB,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG;wBAChB,GAAG,CAAC,MAAM,GAAG,GAAG;wBAChB,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtC,WAAW,GAAG,IAAI,mBAAmB,CACnC,cAAc;oBACZ,CAAC,CAAC,2EAA2E;oBAC7E,CAAC,CAAC,2BAA2B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,EACrD,cAAc,EACd,GAAG,CAAC,MAAM,EACV,kBAAkB,CACnB,CAAC;gBACF,IAAI,SAAS,IAAI,OAAO,KAAK,CAAC;oBAAE,SAAS;gBACzC,MAAM,WAAW,CAAC;YACpB,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;YACxD,MAAM,MAAM,GAAkB;gBAC5B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,0EAA0E;gBAC1E,yEAAyE;gBACzE,yEAAyE;gBACzE,YAAY,EAAE,IAAI,CAAC,aAAa,IAAI,YAAY;gBAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;gBAC9C,SAAS,EAAE,QAAQ;aACpB,CAAC;YACF,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,CACJ,WAAW;YACX,IAAI,mBAAmB,CAAC,oCAAoC,EAAE,KAAK,CAAC,CACrE,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,uBAAuB,CAAC;YAAE,MAAM,GAAG,CAAC;QACzD,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,mBAAmB,CAC3B,mGAAmG,EACnG,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAyB,EACzB,UAAqC,EAAE;IAEvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;IAEhD,wEAAwE;IACxE,iDAAiD;IACjD,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAEhC,mEAAmE;IACnE,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,sBAAsB;IACtB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,cAAc,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClE,mCAAmC,CACjC,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,CAC3C,CAAC;YACF,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IAE7D,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,aAAa,CACnC,MAAM,EACN,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,CACnB,CAAC;YACF,OAAO,SAAS,CAAC,WAAW,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,mBAAmB,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC7D,mCAAmC,CACjC,GAAG,CAAC,kBAAkB,IAAI,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,CACrE,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW;gBAAE,MAAM,GAAG,CAAC;YAC5B,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CACxB,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"cognito-auth.js","sourceRoot":"","sources":["../src/cognito-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Child-job authentication against a read-only HQ state directory.
|
|
3
|
+
*
|
|
4
|
+
* WHY (client report + live reproduction 2026-08-10)
|
|
5
|
+
* --------------------------------------------------
|
|
6
|
+
* "The parent runner can authenticate and reach every provider, but the skill
|
|
7
|
+
* subprocesses cannot use that machine authentication. They fall back to
|
|
8
|
+
* refreshing a human HQ session, which then fails because the job's HQ state
|
|
9
|
+
* directory is read-only."
|
|
10
|
+
*
|
|
11
|
+
* Two independent defects produced that:
|
|
12
|
+
*
|
|
13
|
+
* 1. The state dir was hardcoded to `os.homedir()/.hq` with no override, while
|
|
14
|
+
* the CREDS path already had one (HQ_MACHINE_CREDS_FILE). So auth required
|
|
15
|
+
* a writable HOME even for a machine identity: with valid machine creds and
|
|
16
|
+
* a read-only `~/.hq`, `getValidMachineTokens` died on the lock candidate
|
|
17
|
+
* write with EACCES *before any network call*.
|
|
18
|
+
*
|
|
19
|
+
* 2. A machine context that cannot find its creds does not error —
|
|
20
|
+
* `isMachineIdentity()` returns false and the caller proceeds to the human
|
|
21
|
+
* path, which on a headless box tries to open a browser and hangs.
|
|
22
|
+
*
|
|
23
|
+
* These tests pin the fixes: HQ_STATE_DIR redirects state, writes degrade
|
|
24
|
+
* instead of throwing, and HQ_REQUIRE_MACHINE_IDENTITY makes the downgrade loud.
|
|
25
|
+
*/
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=read-only-state-dir.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-only-state-dir.test.d.ts","sourceRoot":"","sources":["../src/read-only-state-dir.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Child-job authentication against a read-only HQ state directory.
|
|
3
|
+
*
|
|
4
|
+
* WHY (client report + live reproduction 2026-08-10)
|
|
5
|
+
* --------------------------------------------------
|
|
6
|
+
* "The parent runner can authenticate and reach every provider, but the skill
|
|
7
|
+
* subprocesses cannot use that machine authentication. They fall back to
|
|
8
|
+
* refreshing a human HQ session, which then fails because the job's HQ state
|
|
9
|
+
* directory is read-only."
|
|
10
|
+
*
|
|
11
|
+
* Two independent defects produced that:
|
|
12
|
+
*
|
|
13
|
+
* 1. The state dir was hardcoded to `os.homedir()/.hq` with no override, while
|
|
14
|
+
* the CREDS path already had one (HQ_MACHINE_CREDS_FILE). So auth required
|
|
15
|
+
* a writable HOME even for a machine identity: with valid machine creds and
|
|
16
|
+
* a read-only `~/.hq`, `getValidMachineTokens` died on the lock candidate
|
|
17
|
+
* write with EACCES *before any network call*.
|
|
18
|
+
*
|
|
19
|
+
* 2. A machine context that cannot find its creds does not error —
|
|
20
|
+
* `isMachineIdentity()` returns false and the caller proceeds to the human
|
|
21
|
+
* path, which on a headless box tries to open a browser and hangs.
|
|
22
|
+
*
|
|
23
|
+
* These tests pin the fixes: HQ_STATE_DIR redirects state, writes degrade
|
|
24
|
+
* instead of throwing, and HQ_REQUIRE_MACHINE_IDENTITY makes the downgrade loud.
|
|
25
|
+
*/
|
|
26
|
+
import * as fs from "fs";
|
|
27
|
+
import * as os from "os";
|
|
28
|
+
import * as path from "path";
|
|
29
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
30
|
+
let originalHome;
|
|
31
|
+
let originalStateDir;
|
|
32
|
+
let originalCredsEnv;
|
|
33
|
+
let originalRequireEnv;
|
|
34
|
+
let tmpHome;
|
|
35
|
+
beforeEach(() => {
|
|
36
|
+
originalHome = process.env.HOME;
|
|
37
|
+
originalStateDir = process.env.HQ_STATE_DIR;
|
|
38
|
+
originalCredsEnv = process.env.HQ_MACHINE_CREDS_FILE;
|
|
39
|
+
originalRequireEnv = process.env.HQ_REQUIRE_MACHINE_IDENTITY;
|
|
40
|
+
tmpHome = fs.mkdtempSync(path.join(os.tmpdir(), "hq-ro-state-test-"));
|
|
41
|
+
process.env.HOME = tmpHome;
|
|
42
|
+
delete process.env.HQ_STATE_DIR;
|
|
43
|
+
delete process.env.HQ_MACHINE_CREDS_FILE;
|
|
44
|
+
delete process.env.HQ_REQUIRE_MACHINE_IDENTITY;
|
|
45
|
+
vi.resetModules();
|
|
46
|
+
});
|
|
47
|
+
afterEach(() => {
|
|
48
|
+
const restore = (key, value) => {
|
|
49
|
+
if (value === undefined)
|
|
50
|
+
delete process.env[key];
|
|
51
|
+
else
|
|
52
|
+
process.env[key] = value;
|
|
53
|
+
};
|
|
54
|
+
restore("HOME", originalHome);
|
|
55
|
+
restore("HQ_STATE_DIR", originalStateDir);
|
|
56
|
+
restore("HQ_MACHINE_CREDS_FILE", originalCredsEnv);
|
|
57
|
+
restore("HQ_REQUIRE_MACHINE_IDENTITY", originalRequireEnv);
|
|
58
|
+
try {
|
|
59
|
+
fs.chmodSync(path.join(tmpHome, ".hq"), 0o700);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
/* dir may not exist */
|
|
63
|
+
}
|
|
64
|
+
fs.rmSync(tmpHome, { recursive: true, force: true });
|
|
65
|
+
});
|
|
66
|
+
const TOKENS = {
|
|
67
|
+
accessToken: "access-token-value",
|
|
68
|
+
idToken: "id-token-value",
|
|
69
|
+
refreshToken: "",
|
|
70
|
+
expiresAt: Date.now() + 3_600_000,
|
|
71
|
+
tokenType: "Bearer",
|
|
72
|
+
};
|
|
73
|
+
describe("HQ_STATE_DIR override", () => {
|
|
74
|
+
it("defaults to ~/.hq when unset", async () => {
|
|
75
|
+
const mod = await import("./cognito-auth.js");
|
|
76
|
+
expect(mod.hqStateDir()).toBe(path.join(tmpHome, ".hq"));
|
|
77
|
+
expect(mod.tokenCacheFile()).toBe(path.join(tmpHome, ".hq", "cognito-tokens.json"));
|
|
78
|
+
});
|
|
79
|
+
it("redirects state to a writable dir, so a read-only HOME can still cache", async () => {
|
|
80
|
+
const writable = fs.mkdtempSync(path.join(os.tmpdir(), "hq-writable-"));
|
|
81
|
+
process.env.HQ_STATE_DIR = writable;
|
|
82
|
+
const mod = await import("./cognito-auth.js");
|
|
83
|
+
expect(mod.hqStateDir()).toBe(writable);
|
|
84
|
+
mod.saveCachedTokens({ ...TOKENS });
|
|
85
|
+
// Landed in the override, NOT under HOME.
|
|
86
|
+
expect(fs.existsSync(path.join(writable, "cognito-tokens.json"))).toBe(true);
|
|
87
|
+
expect(fs.existsSync(path.join(tmpHome, ".hq", "cognito-tokens.json"))).toBe(false);
|
|
88
|
+
expect(mod.loadCachedTokens()?.accessToken).toBe(TOKENS.accessToken);
|
|
89
|
+
fs.rmSync(writable, { recursive: true, force: true });
|
|
90
|
+
});
|
|
91
|
+
it("is read per call, so it can be set after the module loads", async () => {
|
|
92
|
+
const mod = await import("./cognito-auth.js");
|
|
93
|
+
const before = mod.hqStateDir();
|
|
94
|
+
process.env.HQ_STATE_DIR = "/tmp/hq-state-late-binding";
|
|
95
|
+
expect(mod.hqStateDir()).not.toBe(before);
|
|
96
|
+
expect(mod.hqStateDir()).toBe("/tmp/hq-state-late-binding");
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe("read-only state directory degrades instead of failing auth", () => {
|
|
100
|
+
it("saveCachedTokens does not throw when the state dir is not writable", async () => {
|
|
101
|
+
const stateDir = path.join(tmpHome, ".hq");
|
|
102
|
+
fs.mkdirSync(stateDir, { recursive: true, mode: 0o700 });
|
|
103
|
+
fs.chmodSync(stateDir, 0o500); // read-only
|
|
104
|
+
const mod = await import("./cognito-auth.js");
|
|
105
|
+
// Previously: EACCES on the tmp write, killing the caller's auth.
|
|
106
|
+
expect(() => mod.saveCachedTokens({ ...TOKENS })).not.toThrow();
|
|
107
|
+
// Nothing persisted...
|
|
108
|
+
expect(fs.existsSync(path.join(stateDir, "cognito-tokens.json"))).toBe(false);
|
|
109
|
+
// ...but the session this process just minted is not lost.
|
|
110
|
+
expect(mod.loadCachedTokens()?.accessToken).toBe(TOKENS.accessToken);
|
|
111
|
+
});
|
|
112
|
+
it("still propagates a genuine write fault (not a permission problem)", async () => {
|
|
113
|
+
// A FILE where the state dir should be is a real misconfiguration (ENOTDIR),
|
|
114
|
+
// not a read-only mount — it must not be silently swallowed.
|
|
115
|
+
const asFile = path.join(tmpHome, "state-as-file");
|
|
116
|
+
fs.writeFileSync(asFile, "not a directory");
|
|
117
|
+
process.env.HQ_STATE_DIR = path.join(asFile, "nested");
|
|
118
|
+
const mod = await import("./cognito-auth.js");
|
|
119
|
+
expect(() => mod.saveCachedTokens({ ...TOKENS })).toThrow();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
describe("HQ_REQUIRE_MACHINE_IDENTITY makes the silent downgrade loud", () => {
|
|
123
|
+
it("is off by default — human fallback stays available", async () => {
|
|
124
|
+
const mod = await import("./cognito-auth.js");
|
|
125
|
+
expect(mod.machineIdentityRequired()).toBe(false);
|
|
126
|
+
expect(() => mod.assertMachineIdentityWhenRequired()).not.toThrow();
|
|
127
|
+
});
|
|
128
|
+
it("throws a diagnosable error naming the path checked when creds are missing", async () => {
|
|
129
|
+
process.env.HQ_REQUIRE_MACHINE_IDENTITY = "1";
|
|
130
|
+
const mod = await import("./cognito-auth.js");
|
|
131
|
+
expect(mod.isMachineIdentity()).toBe(false);
|
|
132
|
+
try {
|
|
133
|
+
mod.assertMachineIdentityWhenRequired();
|
|
134
|
+
throw new Error("expected assertMachineIdentityWhenRequired to throw");
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
const message = err.message;
|
|
138
|
+
// Names the exact path AND how it was derived — the missing diagnosis in
|
|
139
|
+
// the original "falling back to a human session" report.
|
|
140
|
+
expect(message).toContain(".hq-agent/machine-creds.json");
|
|
141
|
+
expect(message).toContain("os.homedir()");
|
|
142
|
+
expect(message).toContain("HQ_MACHINE_CREDS_FILE");
|
|
143
|
+
expect(message).not.toContain("browser");
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
it("names HQ_MACHINE_CREDS_FILE as the source when it is set but unusable", async () => {
|
|
147
|
+
process.env.HQ_REQUIRE_MACHINE_IDENTITY = "true";
|
|
148
|
+
process.env.HQ_MACHINE_CREDS_FILE = path.join(tmpHome, "nope.json");
|
|
149
|
+
const mod = await import("./cognito-auth.js");
|
|
150
|
+
expect(() => mod.assertMachineIdentityWhenRequired()).toThrow(/path from HQ_MACHINE_CREDS_FILE/);
|
|
151
|
+
});
|
|
152
|
+
it("is a no-op once machine creds ARE resolvable", async () => {
|
|
153
|
+
const credsPath = path.join(tmpHome, "machine-creds.json");
|
|
154
|
+
fs.writeFileSync(credsPath, JSON.stringify({
|
|
155
|
+
username: "agt-test@agents.getindigo.ai",
|
|
156
|
+
secret: "secret-value",
|
|
157
|
+
entityType: "agent",
|
|
158
|
+
entityUid: "agt_01TESTTESTTESTTESTTESTTEST",
|
|
159
|
+
}));
|
|
160
|
+
process.env.HQ_REQUIRE_MACHINE_IDENTITY = "1";
|
|
161
|
+
process.env.HQ_MACHINE_CREDS_FILE = credsPath;
|
|
162
|
+
const mod = await import("./cognito-auth.js");
|
|
163
|
+
expect(mod.isMachineIdentity()).toBe(true);
|
|
164
|
+
expect(() => mod.assertMachineIdentityWhenRequired()).not.toThrow();
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=read-only-state-dir.test.js.map
|