@intutic/sync-daemon 2.9.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.
- package/dist/disconnect/harnesses.d.ts.map +1 -1
- package/dist/disconnect/harnesses.js +3 -2
- package/dist/disconnect/harnesses.js.map +1 -1
- package/dist/harness/antigravityCliHooks.js +3 -3
- package/dist/harness/antigravityCliHooks.js.map +1 -1
- package/dist/harness/antigravityHooks.d.ts +8 -0
- package/dist/harness/antigravityHooks.d.ts.map +1 -1
- package/dist/harness/antigravityHooks.js +27 -5
- package/dist/harness/antigravityHooks.js.map +1 -1
- package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
- package/dist/harness/claudeCodeHooks.js +58 -16
- package/dist/harness/claudeCodeHooks.js.map +1 -1
- package/dist/harness/clineHooks.d.ts.map +1 -1
- package/dist/harness/clineHooks.js +4 -2
- package/dist/harness/clineHooks.js.map +1 -1
- package/dist/harness/codexHooks.d.ts.map +1 -1
- package/dist/harness/codexHooks.js +4 -2
- package/dist/harness/codexHooks.js.map +1 -1
- package/dist/harness/cursorHooks.d.ts.map +1 -1
- package/dist/harness/cursorHooks.js +8 -3
- package/dist/harness/cursorHooks.js.map +1 -1
- package/dist/harness/gateBody.d.ts +177 -4
- package/dist/harness/gateBody.d.ts.map +1 -1
- package/dist/harness/gateBody.js +1658 -26
- package/dist/harness/gateBody.js.map +1 -1
- package/dist/harness/githubCopilotHooks.js +3 -3
- package/dist/harness/githubCopilotHooks.js.map +1 -1
- package/dist/harness/gooseHooks.d.ts.map +1 -1
- package/dist/harness/gooseHooks.js +8 -1
- package/dist/harness/gooseHooks.js.map +1 -1
- package/dist/harness/grokHooks.js +2 -2
- package/dist/harness/hermesHooks.js +1 -1
- package/dist/harness/hermesHooks.js.map +1 -1
- package/dist/harness/museHooks.d.ts.map +1 -1
- package/dist/harness/museHooks.js +4 -2
- package/dist/harness/museHooks.js.map +1 -1
- package/dist/harness/n8nHooks.js +1 -1
- package/dist/harness/openCodeHooks.d.ts.map +1 -1
- package/dist/harness/openCodeHooks.js +32 -8
- package/dist/harness/openCodeHooks.js.map +1 -1
- package/dist/harness/openclawHooks.d.ts.map +1 -1
- package/dist/harness/openclawHooks.js +19 -8
- package/dist/harness/openclawHooks.js.map +1 -1
- package/dist/harness/piHooks.js +7 -7
- package/dist/harness/windsurfHooks.js +2 -2
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/approvedBypasses.d.ts +17 -4
- package/dist/lib/approvedBypasses.d.ts.map +1 -1
- package/dist/lib/approvedBypasses.js +17 -4
- package/dist/lib/approvedBypasses.js.map +1 -1
- package/dist/lib/approvedPlans.d.ts +73 -0
- package/dist/lib/approvedPlans.d.ts.map +1 -0
- package/dist/lib/approvedPlans.js +124 -0
- package/dist/lib/approvedPlans.js.map +1 -0
- package/dist/lib/decideLogs.d.ts +46 -0
- package/dist/lib/decideLogs.d.ts.map +1 -0
- package/dist/lib/decideLogs.js +160 -0
- package/dist/lib/decideLogs.js.map +1 -0
- package/dist/lib/policySnapshot.d.ts +143 -3
- package/dist/lib/policySnapshot.d.ts.map +1 -1
- package/dist/lib/policySnapshot.js +480 -14
- package/dist/lib/policySnapshot.js.map +1 -1
- package/dist/lib/refusalDetailPy.d.ts +11 -0
- package/dist/lib/refusalDetailPy.d.ts.map +1 -0
- package/dist/lib/refusalDetailPy.js +109 -0
- package/dist/lib/refusalDetailPy.js.map +1 -0
- package/dist/lib/ruleRecordPy.d.ts +11 -0
- package/dist/lib/ruleRecordPy.d.ts.map +1 -0
- package/dist/lib/ruleRecordPy.js +277 -0
- package/dist/lib/ruleRecordPy.js.map +1 -0
- package/dist/lib/scopeMatchPy.d.ts +11 -0
- package/dist/lib/scopeMatchPy.d.ts.map +1 -0
- package/dist/lib/scopeMatchPy.js +278 -0
- package/dist/lib/scopeMatchPy.js.map +1 -0
- package/dist/lib/testOutcomePy.d.ts +11 -0
- package/dist/lib/testOutcomePy.d.ts.map +1 -0
- package/dist/lib/testOutcomePy.js +371 -0
- package/dist/lib/testOutcomePy.js.map +1 -0
- package/dist/skillWriter.d.ts +1 -1
- package/dist/skillWriter.d.ts.map +1 -1
- package/dist/skillWriter.js +7 -0
- package/dist/skillWriter.js.map +1 -1
- package/dist/syncCycle.d.ts +15 -2
- package/dist/syncCycle.d.ts.map +1 -1
- package/dist/syncCycle.js +15 -3
- package/dist/syncCycle.js.map +1 -1
- package/package.json +5 -5
|
@@ -54,7 +54,9 @@
|
|
|
54
54
|
*
|
|
55
55
|
* @module
|
|
56
56
|
*/
|
|
57
|
+
import type { DecidePin, SyncSopEntry } from '@intutic/shared-types';
|
|
57
58
|
import { type McpRegistryRecord, type SsoGroupPolicy } from '@intutic/shared-types';
|
|
59
|
+
import { type GateRuleRecord, type ServedGateRecord } from '@intutic/shared-types';
|
|
58
60
|
import { type GuardPattern } from '../harness/protectedPaths.js';
|
|
59
61
|
/** Directory every gate looks in. Inside `.intutic/hooks`, which is already
|
|
60
62
|
* protected — see the module note. */
|
|
@@ -225,6 +227,78 @@ export interface ResolvedPolicy {
|
|
|
225
227
|
* Absent or null: an older control plane, and no record is written.
|
|
226
228
|
*/
|
|
227
229
|
mcpRegistry?: McpRegistryRecord | null;
|
|
230
|
+
/**
|
|
231
|
+
* The workspace's decide rules (`decideRules`), or the local SOPs' when no
|
|
232
|
+
* control plane is connected ({@link localDecideRules}). Each is written as
|
|
233
|
+
* an `@decide` record, and one stamped `enforce` also as a fallback line
|
|
234
|
+
* that every older gate enforces. Absent or empty: no decide line is
|
|
235
|
+
* written, and the snapshot is byte-identical to a format 1 one.
|
|
236
|
+
*/
|
|
237
|
+
decideRules?: ServedDecideRule[];
|
|
238
|
+
/**
|
|
239
|
+
* The `@rule` records of the workspace's SOPs, as resolve
|
|
240
|
+
* serves them (`gateRecords`, compiled by `compileSopGateRecords`), or the
|
|
241
|
+
* local SOPs' ({@link PolicySnapshotOptions.localSops}). Each is written as
|
|
242
|
+
* an `@rule` line, and one stamped `enforce` also as a `<kind>-fallback:`
|
|
243
|
+
* line that every older gate enforces. Absent or empty: no `@rule` line is
|
|
244
|
+
* written, and the snapshot is byte-identical to one written before them.
|
|
245
|
+
*/
|
|
246
|
+
gateRecords?: ServedGateRecord[];
|
|
247
|
+
/**
|
|
248
|
+
* The workspace's lane holds (3.0: `sop.lane.<class>.<token>`,
|
|
249
|
+
* from its SOPs' `closed_lanes:` and its `closedLanes` setting) and revert
|
|
250
|
+
* holds (§7.3: `revert.<token>`), compiled by resolve (`holdRules`,
|
|
251
|
+
* `laneHoldPatterns` in `@intutic/shared-types`) in the snapshot's rule
|
|
252
|
+
* shape: the token's phrases on the `phrase` subject, which every gate
|
|
253
|
+
* since v12 reads, and for force_push and destroy also the `action`
|
|
254
|
+
* subject a v23 classifier matches (the compound, the out-of-tree
|
|
255
|
+
* `rm -rf`). Every rule of one token has the same id, so one approval
|
|
256
|
+
* releases the call whichever of them held it.
|
|
257
|
+
*/
|
|
258
|
+
holdRules?: ServedHoldRule[];
|
|
259
|
+
/** What the revert holds were compiled from (`revertHolds`): shown, not compiled again. */
|
|
260
|
+
revertHolds?: ServedRevertHold[];
|
|
261
|
+
}
|
|
262
|
+
/** One hold rule as resolve serves it. */
|
|
263
|
+
export interface ServedHoldRule {
|
|
264
|
+
id: string;
|
|
265
|
+
source: string;
|
|
266
|
+
subject: 'phrase' | 'action';
|
|
267
|
+
ignoreCase?: boolean;
|
|
268
|
+
severity: 'hold' | 'shadow';
|
|
269
|
+
reason: string;
|
|
270
|
+
rationale?: string;
|
|
271
|
+
}
|
|
272
|
+
/** One revert hold's rates as resolve serves them. */
|
|
273
|
+
export interface ServedRevertHold {
|
|
274
|
+
subject: string;
|
|
275
|
+
revertRate: number | null;
|
|
276
|
+
rejectionRate: number | null;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* One `decide:` line, as `GET /api/v1/policy/resolve` serves it or as
|
|
280
|
+
* {@link localDecideRules} reads it from a local SOP. The writer validates it
|
|
281
|
+
* itself: a line it cannot read still refuses what it names.
|
|
282
|
+
*/
|
|
283
|
+
export interface ServedDecideRule {
|
|
284
|
+
/** The control plane's SOP id, or `local:<file>` / `local:<folder>:<file>`. */
|
|
285
|
+
sopId: string;
|
|
286
|
+
/** The SOP's title, as the record and the fallback line's reason name it. */
|
|
287
|
+
sopTitle: string;
|
|
288
|
+
/** The SOP's body; the record carries its first 4,096 bytes. */
|
|
289
|
+
ruleText: string;
|
|
290
|
+
/** The line's JSON value, or a local line's text after `decide:`. */
|
|
291
|
+
ir: unknown;
|
|
292
|
+
/**
|
|
293
|
+
* The policy source's stamp: `shadow` under the server's kill switch, for a
|
|
294
|
+
* SHADOW guardrail, or for an SOP whose front matter says `mode: shadow`
|
|
295
|
+
* (the server's resolve and {@link localDecideRules} alike). Absent otherwise.
|
|
296
|
+
*/
|
|
297
|
+
rollout?: 'shadow' | 'enforce';
|
|
298
|
+
/** The hash the server computed. When it is not this writer's, the pins were earned by another rule and are dropped. */
|
|
299
|
+
ruleHash?: string;
|
|
300
|
+
/** The calibrations the rule may enforce under. */
|
|
301
|
+
pins: DecidePin[];
|
|
228
302
|
}
|
|
229
303
|
export interface PolicySnapshotOptions {
|
|
230
304
|
controlPlaneUrl: string;
|
|
@@ -239,6 +313,13 @@ export interface PolicySnapshotOptions {
|
|
|
239
313
|
* the Claude Code hook that used to bake them in.
|
|
240
314
|
*/
|
|
241
315
|
localHoldTokens?: readonly string[];
|
|
316
|
+
/**
|
|
317
|
+
* The workspace's local SOPs (`.intutic/sops`), whose `@rule` records
|
|
318
|
+
* (`compileSopGateRecords`) and lane holds (`closed_lanes:`) the snapshot
|
|
319
|
+
* carries beside what resolve served. A SOP with `roles:` compiles nothing:
|
|
320
|
+
* a gate knows no agent role.
|
|
321
|
+
*/
|
|
322
|
+
localSops?: readonly SyncSopEntry[];
|
|
242
323
|
}
|
|
243
324
|
/**
|
|
244
325
|
* Decides whether a control-plane rule is safe to put on a blocking path.
|
|
@@ -248,12 +329,67 @@ export interface PolicySnapshotOptions {
|
|
|
248
329
|
* other rule.
|
|
249
330
|
*/
|
|
250
331
|
export declare function validateRule(toolPattern: string, ruleId: string): string | null;
|
|
332
|
+
/**
|
|
333
|
+
* The `gateRecords` of a resolve response, or of a snapshot's JSON, in the
|
|
334
|
+
* served shape (`ServedGateRecord`, `@intutic/shared-types`). A record is
|
|
335
|
+
* kept when it has that shape; one that then does not decode is not written
|
|
336
|
+
* as an `@rule` line, and its fallback line refuses in its place
|
|
337
|
+
* ({@link compileGateRecords}). A record without a `sopId` takes its ref's.
|
|
338
|
+
*/
|
|
339
|
+
export declare function parseServedGateRecords(value: unknown): ServedGateRecord[];
|
|
340
|
+
/**
|
|
341
|
+
* The marker `intutic decide disable` leaves in `~/.intutic/decide/`: while
|
|
342
|
+
* it exists, every decide rule this machine writes into a snapshot is
|
|
343
|
+
* stamped `local-disable`, so it runs as shadow and gets no fallback line.
|
|
344
|
+
* A line that does not read still refuses: that refusal is not the engine's.
|
|
345
|
+
*/
|
|
346
|
+
export declare const DECIDE_DISABLED_FILE = "disabled";
|
|
347
|
+
/** Whether `intutic decide disable` is in force on this machine. Read at each write, from the home directory then. */
|
|
348
|
+
export declare function decideLocallyDisabled(): boolean;
|
|
349
|
+
/** Where an `intutic decide eval` pass leaves the pins it earned: `evals/<ruleHash>/<digest>.json`, each a pin. */
|
|
350
|
+
export declare const DEFAULT_DECIDE_DIR: string;
|
|
351
|
+
/**
|
|
352
|
+
* The `decide:` lines of the workspace's local SOPs, for a snapshot written
|
|
353
|
+
* with no control plane. Each line's text is kept as written, so the writer
|
|
354
|
+
* reads it exactly as the proxy does, unreadable lines included. A readable
|
|
355
|
+
* rule's pins are the ones `decideDir/evals/<ruleHash>/` holds; a file that is
|
|
356
|
+
* not a pin is ignored. An SOP whose front matter says `mode: shadow` has its
|
|
357
|
+
* rules stamped shadow, as the control plane's resolve stamps them
|
|
358
|
+
* (`listServedDecideRules`): the record says `server-shadow`, and no fallback
|
|
359
|
+
* line is written.
|
|
360
|
+
*/
|
|
361
|
+
export declare function localDecideRules(entries: readonly SyncSopEntry[], opts?: {
|
|
362
|
+
decideDir?: string;
|
|
363
|
+
}): Promise<ServedDecideRule[]>;
|
|
251
364
|
/** Fetches resolved policy for the workspace. Returns null on any failure —
|
|
252
365
|
* the caller keeps the previous snapshot rather than replacing it with nothing. */
|
|
253
366
|
export declare function fetchResolvedPolicy(opts: PolicySnapshotOptions): Promise<ResolvedPolicy | null>;
|
|
254
367
|
/** Builds the rule set a snapshot would carry, without writing it. Exported so
|
|
255
368
|
* a test can assert the contents rather than re-deriving them. */
|
|
256
|
-
export declare function buildSnapshotRules(policy: ResolvedPolicy, localHoldTokens?: readonly string[], localHoldMode?: LocalHoldMode): GuardPattern[];
|
|
369
|
+
export declare function buildSnapshotRules(policy: ResolvedPolicy, localHoldTokens?: readonly string[], localHoldMode?: LocalHoldMode, localSops?: readonly SyncSopEntry[]): GuardPattern[];
|
|
370
|
+
/** What the snapshot carries for its rule records: the records, and the fallback lines of the enforcing ones. */
|
|
371
|
+
export interface CompiledGateRecords {
|
|
372
|
+
records: GateRuleRecord[];
|
|
373
|
+
fallbacks: GuardPattern[];
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* The policy's `@rule` records, served ones first and then the local SOPs'
|
|
377
|
+
* (`compileSopGateRecords`, `@intutic/shared-types`), and the fallback line
|
|
378
|
+
* of each enforcing one (`gateRuleFallback`). Under SILENT_LOG every record
|
|
379
|
+
* is stamped shadow and has no fallback line, as decide rules are.
|
|
380
|
+
*/
|
|
381
|
+
export declare function compileGateRecords(policy: ResolvedPolicy, localSops?: readonly SyncSopEntry[]): CompiledGateRecords;
|
|
382
|
+
/**
|
|
383
|
+
* The hold rules of a local SOP's closed lanes, in the shape
|
|
384
|
+
* resolve serves the workspace's (`laneHoldPatterns`, `@intutic/shared-types`):
|
|
385
|
+
* per token, a `sop.lane.<class>.<token>` rule on the `phrase` subject,
|
|
386
|
+
* which a gate whose classifier predates the token still holds, and for
|
|
387
|
+
* force_push and destroy also one on the `action` subject, under the same
|
|
388
|
+
* id, so one approval releases the call whichever rule held it. Only SOPs
|
|
389
|
+
* with no `roles:` (a gate knows no role). With no control plane (`block`) a
|
|
390
|
+
* lane hold refuses.
|
|
391
|
+
*/
|
|
392
|
+
export declare function localLaneHoldRules(localSops: readonly SyncSopEntry[], mode: LocalHoldMode): ServedHoldRule[];
|
|
257
393
|
/**
|
|
258
394
|
* What a local `review_before:` token compiles to. `hold`: refused, recorded
|
|
259
395
|
* for review, and let through once when approved — which needs a control
|
|
@@ -272,7 +408,7 @@ export declare function offlineHoldReason(token: string): string;
|
|
|
272
408
|
* path. Both carry the same digest, so a test — and the gate — can tell that the
|
|
273
409
|
* projection really came from the JSON.
|
|
274
410
|
*/
|
|
275
|
-
export declare function writePolicySnapshot(policy: ResolvedPolicy, snapshotDir?: string, localHoldTokens?: readonly string[], localHolds?: LocalHoldMode): Promise<{
|
|
411
|
+
export declare function writePolicySnapshot(policy: ResolvedPolicy, snapshotDir?: string, localHoldTokens?: readonly string[], localHolds?: LocalHoldMode, localSops?: readonly SyncSopEntry[]): Promise<{
|
|
276
412
|
digest: string;
|
|
277
413
|
ruleCount: number;
|
|
278
414
|
}>;
|
|
@@ -290,13 +426,17 @@ export declare function writePolicySnapshot(policy: ResolvedPolicy, snapshotDir?
|
|
|
290
426
|
*/
|
|
291
427
|
export declare function localResolvedPolicy(): ResolvedPolicy;
|
|
292
428
|
/**
|
|
293
|
-
* Writes the snapshot of {@link localResolvedPolicy}, marked `source: local
|
|
429
|
+
* Writes the snapshot of {@link localResolvedPolicy}, marked `source: local`,
|
|
430
|
+
* with the local SOPs' decide rules ({@link localDecideRules}) when given.
|
|
294
431
|
* The local holds refuse (`block`) rather than hold: with no control plane
|
|
295
432
|
* nothing could approve them. Never fetches.
|
|
296
433
|
*/
|
|
297
434
|
export declare function writeLocalPolicySnapshot(opts?: {
|
|
298
435
|
localHoldTokens?: readonly string[];
|
|
299
436
|
snapshotDir?: string;
|
|
437
|
+
decideRules?: ServedDecideRule[];
|
|
438
|
+
/** See {@link PolicySnapshotOptions.localSops}. */
|
|
439
|
+
localSops?: readonly SyncSopEntry[];
|
|
300
440
|
}): Promise<{
|
|
301
441
|
digest: string;
|
|
302
442
|
ruleCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policySnapshot.d.ts","sourceRoot":"","sources":["../../src/lib/policySnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAQH,OAAO,
|
|
1
|
+
{"version":3,"file":"policySnapshot.d.ts","sourceRoot":"","sources":["../../src/lib/policySnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAoD,YAAY,EAAc,MAAM,uBAAuB,CAAA;AAClI,OAAO,EA0BL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAYL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,8BAA8B,CAAA;AAIrC;uCACuC;AACvC,eAAO,MAAM,oBAAoB,QAA+C,CAAA;AAChF,eAAO,MAAM,aAAa,yBAAyB,CAAA;AACnD,eAAO,MAAM,cAAc,0BAA0B,CAAA;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,aAAa,CAAA;AAE/C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,yBAAyB,EAAE,OAAO,GAAG,MAAe,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,2BAA2B,EAAE,OAAO,GAAG,MAAgB,CAAA;AAEpE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B,EAAE,OAAO,GAAG,MAAgB,CAAA;AAEpE;;;;mEAImE;AACnE,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd;;;;;WAKG;QACH,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAC,CAAA;IACF,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;;;;;;OAUG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B;;;;;;OAMG;IACH,kBAAkB,EAAE,OAAO,CAAA;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACtC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5B,2FAA2F;IAC3F,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;CACjC;AAED,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,qEAAqE;IACrE,EAAE,EAAE,OAAO,CAAA;IACX;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC9B,wHAAwH;IACxH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CACpC;AAgDD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmD/E;AA6HD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAmBzE;AAuKD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,aAAa,CAAA;AAE9C,sHAAsH;AACtH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,mHAAmH;AACnH,eAAO,MAAM,kBAAkB,QAAgD,CAAA;AAE/E;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqB7B;AAgBD;oFACoF;AACpF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGhC;AAkHD;mEACmE;AACnE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,eAAe,GAAE,SAAS,MAAM,EAAO,EACvC,aAAa,GAAE,aAAsB,EACrC,SAAS,GAAE,SAAS,YAAY,EAAO,GACtC,YAAY,EAAE,CAMhB;AAED,iHAAiH;AACjH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,SAAS,EAAE,YAAY,EAAE,CAAA;CAC1B;AAyDD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,GAAE,SAAS,YAAY,EAAO,GAAG,mBAAmB,CA4BvH;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,cAAc,EAAE,CAiB5G;AA+LD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAA;AAE5C,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAkCD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,WAAW,GAAE,MAA6B,EAC1C,eAAe,GAAE,SAAS,MAAM,EAAO,EACvC,UAAU,GAAE,aAAsB,EAClC,SAAS,GAAE,SAAS,YAAY,EAAO,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAEhD;AA+MD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAQpD;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,GAAE;IACJ,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CAC/B,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAMhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,GAAE,MAA6B,GACzC,OAAO,CAAC,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC,CAEjD;AA0BD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAcvD"}
|