approval-md 0.2.0 → 0.3.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/README.md +63 -24
- package/SPEC.md +57 -11
- package/dist/src/channels/contract.d.ts +34 -1
- package/dist/src/channels/contract.js +200 -7
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/telegram.d.ts +123 -11
- package/dist/src/channels/telegram.js +218 -23
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/channels/web.d.ts +9 -0
- package/dist/src/channels/web.js +17 -0
- package/dist/src/channels/web.js.map +1 -1
- package/dist/src/cli/amend.js +214 -30
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/attest.d.ts +9 -0
- package/dist/src/cli/attest.js +134 -7
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/channel-telegram.d.ts +99 -26
- package/dist/src/cli/channel-telegram.js +311 -13
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel.d.ts +9 -0
- package/dist/src/cli/channel.js +9 -0
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/codex-bridge.d.ts +819 -0
- package/dist/src/cli/codex-bridge.js +1607 -0
- package/dist/src/cli/codex-bridge.js.map +1 -0
- package/dist/src/cli/codex.d.ts +1 -1
- package/dist/src/cli/codex.js +304 -7
- package/dist/src/cli/codex.js.map +1 -1
- package/dist/src/cli/daemon.js +4 -1
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.js +467 -12
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.js +25 -2
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/help.d.ts +6 -2
- package/dist/src/cli/help.js +165 -60
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook-codex.d.ts +49 -1
- package/dist/src/cli/hook-codex.js +60 -1
- package/dist/src/cli/hook-codex.js.map +1 -1
- package/dist/src/cli/hook.d.ts +459 -3
- package/dist/src/cli/hook.js +1062 -114
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/import.js +1 -1
- package/dist/src/cli/import.js.map +1 -1
- package/dist/src/cli/main.js +5 -3
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/policy-apply.d.ts +195 -0
- package/dist/src/cli/policy-apply.js +573 -0
- package/dist/src/cli/policy-apply.js.map +1 -0
- package/dist/src/cli/policy.js +14 -1
- package/dist/src/cli/policy.js.map +1 -1
- package/dist/src/cli/preflight.d.ts +151 -13
- package/dist/src/cli/preflight.js +398 -41
- package/dist/src/cli/preflight.js.map +1 -1
- package/dist/src/cli/sandbox.js +17 -1
- package/dist/src/cli/sandbox.js.map +1 -1
- package/dist/src/cli/scaffold.d.ts +1 -1
- package/dist/src/cli/scaffold.js +1 -1
- package/dist/src/cli/setup-channel.d.ts +9 -0
- package/dist/src/cli/setup-channel.js +28 -1
- package/dist/src/cli/setup-channel.js.map +1 -1
- package/dist/src/cli/setup-common.d.ts +3 -1
- package/dist/src/cli/setup-common.js +3 -2
- package/dist/src/cli/setup-common.js.map +1 -1
- package/dist/src/cli/setup.d.ts +2 -0
- package/dist/src/cli/setup.js +94 -2
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/up.js +115 -51
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/values.js +3 -4
- package/dist/src/cli/values.js.map +1 -1
- package/dist/src/cli/verb-registry.js +174 -9
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +2 -2
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/codex/broker.d.ts +229 -0
- package/dist/src/codex/broker.js +548 -0
- package/dist/src/codex/broker.js.map +1 -0
- package/dist/src/codex/runner.d.ts +178 -0
- package/dist/src/codex/runner.js +231 -0
- package/dist/src/codex/runner.js.map +1 -0
- package/dist/src/codex/serve.d.ts +56 -0
- package/dist/src/codex/serve.js +98 -0
- package/dist/src/codex/serve.js.map +1 -0
- package/dist/src/codex/workspace-commit.d.ts +219 -0
- package/dist/src/codex/workspace-commit.js +549 -0
- package/dist/src/codex/workspace-commit.js.map +1 -0
- package/dist/src/core/advance-cycle.d.ts +51 -0
- package/dist/src/core/advance-cycle.js +66 -2
- package/dist/src/core/advance-cycle.js.map +1 -1
- package/dist/src/core/agents-md.d.ts +20 -18
- package/dist/src/core/agents-md.js +33 -31
- package/dist/src/core/agents-md.js.map +1 -1
- package/dist/src/core/attest.d.ts +215 -0
- package/dist/src/core/attest.js +317 -7
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +18 -0
- package/dist/src/core/audit.js +13 -0
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/channel-owner.d.ts +213 -0
- package/dist/src/core/channel-owner.js +358 -0
- package/dist/src/core/channel-owner.js.map +1 -0
- package/dist/src/core/command-class.d.ts +154 -0
- package/dist/src/core/command-class.js +673 -20
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/commit-guard.d.ts +272 -0
- package/dist/src/core/commit-guard.js +424 -0
- package/dist/src/core/commit-guard.js.map +1 -0
- package/dist/src/core/daemon-actor.d.ts +45 -0
- package/dist/src/core/daemon-actor.js +54 -0
- package/dist/src/core/daemon-actor.js.map +1 -0
- package/dist/src/core/dark-session.d.ts +109 -8
- package/dist/src/core/dark-session.js +266 -82
- package/dist/src/core/dark-session.js.map +1 -1
- package/dist/src/core/decision-refusal.d.ts +23 -2
- package/dist/src/core/decision-refusal.js +24 -2
- package/dist/src/core/decision-refusal.js.map +1 -1
- package/dist/src/core/env-file.d.ts +5 -0
- package/dist/src/core/env-file.js +60 -1
- package/dist/src/core/env-file.js.map +1 -1
- package/dist/src/core/execute.d.ts +15 -2
- package/dist/src/core/execute.js +15 -2
- package/dist/src/core/execute.js.map +1 -1
- package/dist/src/core/gate.d.ts +86 -1
- package/dist/src/core/gate.js +81 -1
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/gesture-refusal.d.ts +166 -0
- package/dist/src/core/gesture-refusal.js +188 -0
- package/dist/src/core/gesture-refusal.js.map +1 -0
- package/dist/src/core/harness-version.d.ts +1 -1
- package/dist/src/core/harness-version.js +3 -1
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/instance.d.ts +59 -2
- package/dist/src/core/instance.js +113 -0
- package/dist/src/core/instance.js.map +1 -1
- package/dist/src/core/log.d.ts +39 -1
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/policy-explain.d.ts +10 -0
- package/dist/src/core/policy-explain.js +32 -0
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +41 -1
- package/dist/src/core/policy-load.js +21 -3
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +43 -0
- package/dist/src/core/policy-match.js +52 -0
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +52 -0
- package/dist/src/core/policy-proposal.js +102 -2
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/protected-path-guard.d.ts +117 -4
- package/dist/src/core/protected-path-guard.js +362 -48
- package/dist/src/core/protected-path-guard.js.map +1 -1
- package/dist/src/core/question-preempted.d.ts +141 -0
- package/dist/src/core/question-preempted.js +152 -0
- package/dist/src/core/question-preempted.js.map +1 -0
- package/dist/src/core/read-scope.d.ts +172 -0
- package/dist/src/core/read-scope.js +252 -0
- package/dist/src/core/read-scope.js.map +1 -0
- package/dist/src/core/sandbox.d.ts +81 -0
- package/dist/src/core/sandbox.js +190 -1
- package/dist/src/core/sandbox.js.map +1 -1
- package/dist/src/core/sender-identity.d.ts +476 -0
- package/dist/src/core/sender-identity.js +572 -0
- package/dist/src/core/sender-identity.js.map +1 -0
- package/dist/src/core/shlex.d.ts +102 -0
- package/dist/src/core/shlex.js +159 -0
- package/dist/src/core/shlex.js.map +1 -0
- package/dist/src/core/values.d.ts +18 -8
- package/dist/src/core/values.js +36 -1
- package/dist/src/core/values.js.map +1 -1
- package/dist/src/daemon/advance.d.ts +10 -0
- package/dist/src/daemon/advance.js +25 -4
- package/dist/src/daemon/advance.js.map +1 -1
- package/dist/src/daemon/daemon.js +9 -0
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/daemon/git-evidence.d.ts +2 -2
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/mcp/server.js +8 -0
- package/dist/src/mcp/server.js.map +1 -1
- package/docs/cli-reference.md +932 -32
- package/docs/codex-enforced-session.md +75 -2
- package/docs/codex-workspace-broker.md +118 -0
- package/package.json +3 -1
- package/schema/event.schema.json +538 -9
- package/schema/fixtures/event/invalid/approval-granted-sender-hashed-false.json +20 -0
- package/schema/fixtures/event/invalid/approval-granted-sender-hashed-raw-id.json +20 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-human-actor.json +16 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-no-actor-no-sender.json +15 -0
- package/schema/fixtures/event/invalid/audit-gesture-refused-unknown-gesture.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-agent-actor.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-no-question-id.json +16 -0
- package/schema/fixtures/event/invalid/audit-question-preempted-unknown-source.json +15 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-absolute-path.json +14 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/gate-path-signed-off-missing-path.json +13 -0
- package/schema/fixtures/event/valid/approval-granted-sender-hashed.json +20 -0
- package/schema/fixtures/event/valid/audit-gesture-refused-review-note.json +21 -0
- package/schema/fixtures/event/valid/audit-gesture-refused-sender-key-unavailable.json +19 -0
- package/schema/fixtures/event/valid/audit-gesture-refused.json +19 -0
- package/schema/fixtures/event/valid/audit-question-preempted-no-verdict.json +16 -0
- package/schema/fixtures/event/valid/audit-question-preempted.json +20 -0
- package/schema/fixtures/event/valid/gate-path-signed-off.json +14 -0
- package/schema/fixtures/event/valid/harness-kind-claude-code.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-codex.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-cursor.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-grok.json +23 -0
- package/schema/fixtures/event/valid/harness-kind-muse.json +23 -0
- package/schema/fixtures/policy/invalid/senders-half-keyed.json +20 -0
- package/schema/fixtures/policy/valid/canonical.json +1 -1
- package/schema/fixtures/policy/valid/senders-keyed.json +24 -0
- package/schema/fixtures/policy-md/valid/canonical.md +1 -1
- package/schema/fixtures/policy-md/valid/with-values.md +5 -7
- package/schema/fixtures/values/invalid/class-shaped.json +1 -1
- package/schema/fixtures/values/invalid/duplicate-entry.json +1 -1
- package/schema/fixtures/values/invalid/non-string-item.json +1 -1
- package/schema/fixtures/values/invalid/over-cap.json +1 -1
- package/schema/fixtures/values/invalid/unknown-key.json +1 -1
- package/schema/fixtures/values/invalid/version-float.json +1 -0
- package/schema/fixtures/values/invalid/version-integer.json +1 -0
- package/schema/fixtures/values/invalid/version-wrong-string.json +1 -0
- package/schema/fixtures/values/valid/empty-lists.json +2 -3
- package/schema/fixtures/values/valid/full.json +5 -7
- package/schema/fixtures/values/valid/minimal.json +1 -1
- package/schema/fixtures/values-md/invalid/schema-invalid.md +5 -3
- package/schema/fixtures/values-md/invalid/two-blocks.md +3 -3
- package/schema/fixtures/values-md/invalid/unterminated.md +2 -2
- package/schema/fixtures/values-md/invalid/version-1.md +69 -0
- package/schema/fixtures/values-md/invalid/version-unquoted.md +64 -0
- package/schema/fixtures/values-md/invalid/yaml-error.md +2 -2
- package/schema/fixtures/values-md/valid/absent.md +1 -1
- package/schema/fixtures/values-md/valid/with-values.md +5 -7
- package/schema/policy.schema.json +54 -2
- package/schema/values.schema.json +7 -11
- package/schema/fixtures/values/invalid/version-string.json +0 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell word splitting and joining, for the one place this runtime reads a
|
|
3
|
+
* command as a RENDERING of an argv rather than as bytes it was handed
|
|
4
|
+
* (APRV-362).
|
|
5
|
+
*
|
|
6
|
+
* ## Why this exists at all
|
|
7
|
+
*
|
|
8
|
+
* Every harness hook is handed a command as a string, and the classifier reads
|
|
9
|
+
* that string. Codex's app-server is the exception: what it will execute is an
|
|
10
|
+
* argv, and the item-based API delivers that argv already joined into one
|
|
11
|
+
* string by `shlex_join` (`docs/codex-app-server-bridge.md`, question 1). A
|
|
12
|
+
* bridge that classified the joined string without ever naming the argv would
|
|
13
|
+
* be approving its own re-parse, and the gap between the two is where an
|
|
14
|
+
* approval could authorize words nobody read.
|
|
15
|
+
*
|
|
16
|
+
* So the bridge names the argv, and these functions are how. They are pure,
|
|
17
|
+
* total and exhaustively tested, which is what SPEC.md §11's deterministic-core
|
|
18
|
+
* rule asks of anything a decision rests on.
|
|
19
|
+
*
|
|
20
|
+
* ## The grammar, and why it is narrower than a shell's
|
|
21
|
+
*
|
|
22
|
+
* This is `shlex`, not a shell. It knows three things: runs of whitespace
|
|
23
|
+
* separate words, a single-quoted run is literal, and a backslash outside
|
|
24
|
+
* quotes makes the next character literal. It does NOT know operators: `>`,
|
|
25
|
+
* `|`, `&&` and `;` are ordinary characters in ordinary words. That is correct
|
|
26
|
+
* here, because what is being un-joined is an argv and an argv has no
|
|
27
|
+
* operators. The shell metacharacters in a real Codex call live INSIDE one word
|
|
28
|
+
* (`/bin/zsh -lc 'printf x > f'`), and the hook's own classifier is what reads
|
|
29
|
+
* that word as a script.
|
|
30
|
+
*
|
|
31
|
+
* A DOUBLE QUOTE outside a single-quoted run is refused rather than
|
|
32
|
+
* interpreted. A join never emits one: a word needing protection comes back
|
|
33
|
+
* single-quoted and a word not needing it comes back bare. So a bare `"` says
|
|
34
|
+
* the string was not produced by joining an argv, and this runtime will not
|
|
35
|
+
* guess whose escaping rules apply inside it. Refusing is the fail-closed
|
|
36
|
+
* direction and it costs nothing a real server sends.
|
|
37
|
+
*
|
|
38
|
+
* ## The round trip, and the one thing it does not claim
|
|
39
|
+
*
|
|
40
|
+
* {@link shlexJoin} quotes a word when, and only when, {@link shlexSplit} would
|
|
41
|
+
* otherwise read it as something else: an empty word, or one carrying
|
|
42
|
+
* whitespace, a quote or a backslash. That makes
|
|
43
|
+
* `shlexSplit(shlexJoin(argv)).argv` equal to `argv` for every argv, which is
|
|
44
|
+
* the property {@link shlexRoundTrips} states and the bridge checks before it
|
|
45
|
+
* binds either value.
|
|
46
|
+
*
|
|
47
|
+
* The converse is NOT claimed: `shlexJoin(shlexSplit(text).argv)` is a normal
|
|
48
|
+
* form of `text`, not `text` itself. A counterpart is free to quote more
|
|
49
|
+
* conservatively than this does (a join written for shell safety quotes `>` and
|
|
50
|
+
* `:`, which this one leaves bare), and byte equality with the received string
|
|
51
|
+
* would therefore mean pinning that counterpart's quoting predicate. This
|
|
52
|
+
* repository has no record of it and cannot acquire one here, so demanding
|
|
53
|
+
* equality would refuse traffic on a guess. What is demanded instead is
|
|
54
|
+
* {@link ShlexSplit.joinShaped}: words separated by exactly one space, which
|
|
55
|
+
* every join produces and which is checkable without knowing which characters
|
|
56
|
+
* it chose to quote. The bridge records the received string and the argv side
|
|
57
|
+
* by side so any remaining difference is visible rather than asserted away.
|
|
58
|
+
*/
|
|
59
|
+
export type ShlexSplit = {
|
|
60
|
+
ok: true;
|
|
61
|
+
argv: string[];
|
|
62
|
+
/**
|
|
63
|
+
* Were the words separated by exactly one space each, with none before
|
|
64
|
+
* the first or after the last?
|
|
65
|
+
*
|
|
66
|
+
* True of every string a join produces. False says the string reached
|
|
67
|
+
* this runtime some other way, which is a fact about the counterpart
|
|
68
|
+
* rather than about the argv, and the caller decides what to do with it.
|
|
69
|
+
*/
|
|
70
|
+
joinShaped: boolean;
|
|
71
|
+
} | {
|
|
72
|
+
ok: false;
|
|
73
|
+
reason: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Split a joined command string into the argv it renders.
|
|
77
|
+
*
|
|
78
|
+
* Refuses rather than guessing on the three shapes whose reading is not agreed:
|
|
79
|
+
* an unterminated single-quoted run, a trailing backslash with nothing to
|
|
80
|
+
* escape, and a double quote outside a quoted run (see the module header).
|
|
81
|
+
*/
|
|
82
|
+
export declare function shlexSplit(text: string): ShlexSplit;
|
|
83
|
+
/**
|
|
84
|
+
* Render an argv as one command string that {@link shlexSplit} reads back as
|
|
85
|
+
* the same argv.
|
|
86
|
+
*
|
|
87
|
+
* Minimal quoting: a word is emitted bare unless it is empty or carries
|
|
88
|
+
* whitespace, a quote or a backslash, in which case it is single-quoted with
|
|
89
|
+
* the `'\''` idiom for an embedded quote. That idiom closes the run, escapes
|
|
90
|
+
* one quote and opens the next, which is three pieces of ONE word rather than
|
|
91
|
+
* three words, because nothing separates them.
|
|
92
|
+
*/
|
|
93
|
+
export declare function shlexJoin(argv: readonly string[]): string;
|
|
94
|
+
/**
|
|
95
|
+
* Does `argv` survive a render-and-re-split cycle unchanged?
|
|
96
|
+
*
|
|
97
|
+
* True for every argv this module can render, and checked anyway at the one
|
|
98
|
+
* call site that binds an argv to an approval: a parser bug here would bind
|
|
99
|
+
* words nobody is going to run, and the cost of proving otherwise is one pass
|
|
100
|
+
* over a short string.
|
|
101
|
+
*/
|
|
102
|
+
export declare function shlexRoundTrips(argv: readonly string[]): boolean;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell word splitting and joining, for the one place this runtime reads a
|
|
3
|
+
* command as a RENDERING of an argv rather than as bytes it was handed
|
|
4
|
+
* (APRV-362).
|
|
5
|
+
*
|
|
6
|
+
* ## Why this exists at all
|
|
7
|
+
*
|
|
8
|
+
* Every harness hook is handed a command as a string, and the classifier reads
|
|
9
|
+
* that string. Codex's app-server is the exception: what it will execute is an
|
|
10
|
+
* argv, and the item-based API delivers that argv already joined into one
|
|
11
|
+
* string by `shlex_join` (`docs/codex-app-server-bridge.md`, question 1). A
|
|
12
|
+
* bridge that classified the joined string without ever naming the argv would
|
|
13
|
+
* be approving its own re-parse, and the gap between the two is where an
|
|
14
|
+
* approval could authorize words nobody read.
|
|
15
|
+
*
|
|
16
|
+
* So the bridge names the argv, and these functions are how. They are pure,
|
|
17
|
+
* total and exhaustively tested, which is what SPEC.md §11's deterministic-core
|
|
18
|
+
* rule asks of anything a decision rests on.
|
|
19
|
+
*
|
|
20
|
+
* ## The grammar, and why it is narrower than a shell's
|
|
21
|
+
*
|
|
22
|
+
* This is `shlex`, not a shell. It knows three things: runs of whitespace
|
|
23
|
+
* separate words, a single-quoted run is literal, and a backslash outside
|
|
24
|
+
* quotes makes the next character literal. It does NOT know operators: `>`,
|
|
25
|
+
* `|`, `&&` and `;` are ordinary characters in ordinary words. That is correct
|
|
26
|
+
* here, because what is being un-joined is an argv and an argv has no
|
|
27
|
+
* operators. The shell metacharacters in a real Codex call live INSIDE one word
|
|
28
|
+
* (`/bin/zsh -lc 'printf x > f'`), and the hook's own classifier is what reads
|
|
29
|
+
* that word as a script.
|
|
30
|
+
*
|
|
31
|
+
* A DOUBLE QUOTE outside a single-quoted run is refused rather than
|
|
32
|
+
* interpreted. A join never emits one: a word needing protection comes back
|
|
33
|
+
* single-quoted and a word not needing it comes back bare. So a bare `"` says
|
|
34
|
+
* the string was not produced by joining an argv, and this runtime will not
|
|
35
|
+
* guess whose escaping rules apply inside it. Refusing is the fail-closed
|
|
36
|
+
* direction and it costs nothing a real server sends.
|
|
37
|
+
*
|
|
38
|
+
* ## The round trip, and the one thing it does not claim
|
|
39
|
+
*
|
|
40
|
+
* {@link shlexJoin} quotes a word when, and only when, {@link shlexSplit} would
|
|
41
|
+
* otherwise read it as something else: an empty word, or one carrying
|
|
42
|
+
* whitespace, a quote or a backslash. That makes
|
|
43
|
+
* `shlexSplit(shlexJoin(argv)).argv` equal to `argv` for every argv, which is
|
|
44
|
+
* the property {@link shlexRoundTrips} states and the bridge checks before it
|
|
45
|
+
* binds either value.
|
|
46
|
+
*
|
|
47
|
+
* The converse is NOT claimed: `shlexJoin(shlexSplit(text).argv)` is a normal
|
|
48
|
+
* form of `text`, not `text` itself. A counterpart is free to quote more
|
|
49
|
+
* conservatively than this does (a join written for shell safety quotes `>` and
|
|
50
|
+
* `:`, which this one leaves bare), and byte equality with the received string
|
|
51
|
+
* would therefore mean pinning that counterpart's quoting predicate. This
|
|
52
|
+
* repository has no record of it and cannot acquire one here, so demanding
|
|
53
|
+
* equality would refuse traffic on a guess. What is demanded instead is
|
|
54
|
+
* {@link ShlexSplit.joinShaped}: words separated by exactly one space, which
|
|
55
|
+
* every join produces and which is checkable without knowing which characters
|
|
56
|
+
* it chose to quote. The bridge records the received string and the argv side
|
|
57
|
+
* by side so any remaining difference is visible rather than asserted away.
|
|
58
|
+
*/
|
|
59
|
+
/** Whitespace that separates words. Everything else is a word character. */
|
|
60
|
+
const SEPARATORS = new Set([" ", "\t", "\n", "\r", "\f", "\v"]);
|
|
61
|
+
/** A word must be quoted when a bare rendering would not read back as itself. */
|
|
62
|
+
const NEEDS_QUOTING = /[\s'"\\]/u;
|
|
63
|
+
/**
|
|
64
|
+
* Split a joined command string into the argv it renders.
|
|
65
|
+
*
|
|
66
|
+
* Refuses rather than guessing on the three shapes whose reading is not agreed:
|
|
67
|
+
* an unterminated single-quoted run, a trailing backslash with nothing to
|
|
68
|
+
* escape, and a double quote outside a quoted run (see the module header).
|
|
69
|
+
*/
|
|
70
|
+
export function shlexSplit(text) {
|
|
71
|
+
const argv = [];
|
|
72
|
+
let word = "";
|
|
73
|
+
/** Distinct from `word.length > 0`: `''` is an empty word, not no word. */
|
|
74
|
+
let started = false;
|
|
75
|
+
let joinShaped = true;
|
|
76
|
+
let index = 0;
|
|
77
|
+
while (index < text.length) {
|
|
78
|
+
const char = text[index];
|
|
79
|
+
if (SEPARATORS.has(char)) {
|
|
80
|
+
// A separator before any word, one that is not a plain space, or a second
|
|
81
|
+
// one in a row: all three are shapes a join does not emit.
|
|
82
|
+
if (!started || char !== " " || SEPARATORS.has(text[index + 1] ?? ""))
|
|
83
|
+
joinShaped = false;
|
|
84
|
+
if (started) {
|
|
85
|
+
argv.push(word);
|
|
86
|
+
word = "";
|
|
87
|
+
started = false;
|
|
88
|
+
}
|
|
89
|
+
index += 1;
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (char === "'") {
|
|
93
|
+
const close = text.indexOf("'", index + 1);
|
|
94
|
+
if (close === -1) {
|
|
95
|
+
return {
|
|
96
|
+
ok: false,
|
|
97
|
+
reason: `a single-quoted run opened at offset ${String(index)} is never closed`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
word += text.slice(index + 1, close);
|
|
101
|
+
started = true;
|
|
102
|
+
index = close + 1;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (char === '"') {
|
|
106
|
+
return {
|
|
107
|
+
ok: false,
|
|
108
|
+
reason: `a double quote at offset ${String(index)} is outside any quoted run, and a joined argv never carries one`,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (char === "\\") {
|
|
112
|
+
if (index + 1 >= text.length) {
|
|
113
|
+
return { ok: false, reason: "the string ends in a backslash with nothing to escape" };
|
|
114
|
+
}
|
|
115
|
+
word += text[index + 1];
|
|
116
|
+
started = true;
|
|
117
|
+
index += 2;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
word += char;
|
|
121
|
+
started = true;
|
|
122
|
+
index += 1;
|
|
123
|
+
}
|
|
124
|
+
if (started)
|
|
125
|
+
argv.push(word);
|
|
126
|
+
else if (text.length > 0)
|
|
127
|
+
joinShaped = false;
|
|
128
|
+
return { ok: true, argv, joinShaped };
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Render an argv as one command string that {@link shlexSplit} reads back as
|
|
132
|
+
* the same argv.
|
|
133
|
+
*
|
|
134
|
+
* Minimal quoting: a word is emitted bare unless it is empty or carries
|
|
135
|
+
* whitespace, a quote or a backslash, in which case it is single-quoted with
|
|
136
|
+
* the `'\''` idiom for an embedded quote. That idiom closes the run, escapes
|
|
137
|
+
* one quote and opens the next, which is three pieces of ONE word rather than
|
|
138
|
+
* three words, because nothing separates them.
|
|
139
|
+
*/
|
|
140
|
+
export function shlexJoin(argv) {
|
|
141
|
+
return argv
|
|
142
|
+
.map((word) => word.length > 0 && !NEEDS_QUOTING.test(word) ? word : `'${word.split("'").join("'\\''")}'`)
|
|
143
|
+
.join(" ");
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Does `argv` survive a render-and-re-split cycle unchanged?
|
|
147
|
+
*
|
|
148
|
+
* True for every argv this module can render, and checked anyway at the one
|
|
149
|
+
* call site that binds an argv to an approval: a parser bug here would bind
|
|
150
|
+
* words nobody is going to run, and the cost of proving otherwise is one pass
|
|
151
|
+
* over a short string.
|
|
152
|
+
*/
|
|
153
|
+
export function shlexRoundTrips(argv) {
|
|
154
|
+
const back = shlexSplit(shlexJoin(argv));
|
|
155
|
+
if (!back.ok || back.argv.length !== argv.length)
|
|
156
|
+
return false;
|
|
157
|
+
return back.argv.every((word, at) => word === argv[at]);
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=shlex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shlex.js","sourceRoot":"","sources":["../../../src/core/shlex.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Everything else in this directory is control: what an agent may do, who
|
|
5
5
|
* decides, what is sampled. This module reads the other half of the file — the
|
|
6
6
|
* optional ` ```yaml approval-values ` block in which the operator says what
|
|
7
|
-
* they value in the work, what they
|
|
7
|
+
* they value in the work, what they ask of the agent, and how they read and
|
|
8
8
|
* answer. It is the mirror of the journal (SPEC.md §10.1): the journal is the
|
|
9
9
|
* agent's outlet the gate does not stand in front of, and the values block is
|
|
10
10
|
* the human's, with the same rule running in both directions, that nothing said
|
|
@@ -53,18 +53,16 @@ export declare const VALUES_INFO_STRING = "yaml approval-values";
|
|
|
53
53
|
* shape for TypeScript and adds nothing.
|
|
54
54
|
*/
|
|
55
55
|
export interface Values {
|
|
56
|
-
/** Format version. The only required key; the
|
|
57
|
-
version:
|
|
56
|
+
/** Format version. The only required key; the string `"0.2"` and nothing else. */
|
|
57
|
+
version: "0.2";
|
|
58
58
|
/** What the operator loves, in their own words. */
|
|
59
59
|
love?: string[];
|
|
60
|
-
/** What the operator likes. */
|
|
60
|
+
/** What the operator likes, including what they ask of an agent as behaviour. */
|
|
61
61
|
like?: string[];
|
|
62
62
|
/** What the operator dislikes. NOT a prohibition: a prohibition is policy. */
|
|
63
63
|
dislike?: string[];
|
|
64
|
-
/** What the operator wants FROM the agent, as behaviour rather than taste. */
|
|
65
|
-
wants?: string[];
|
|
66
64
|
/** How the operator reads and answers. One sentence or two. */
|
|
67
|
-
|
|
65
|
+
communication?: string;
|
|
68
66
|
}
|
|
69
67
|
/**
|
|
70
68
|
* Why a values block could not be read.
|
|
@@ -73,8 +71,18 @@ export interface Values {
|
|
|
73
71
|
* two are different questions with different consequences, and a shared union
|
|
74
72
|
* would invite a caller to handle one with the other's rules. There is no
|
|
75
73
|
* `no-block` here, because a file with no values block is not a failure at all.
|
|
74
|
+
*
|
|
75
|
+
* `version-unsupported` is separate from `schema-invalid` although the schema
|
|
76
|
+
* would refuse both blocks it covers. A block written to the first revision of
|
|
77
|
+
* this format is a correct document of the wrong vintage, and its reader is a
|
|
78
|
+
* human who wrote it before APRV-336 rather than one who made a typo: the
|
|
79
|
+
* message they need names the migration (fold `wants:` into `like:`, set
|
|
80
|
+
* `version: "0.2"`), and a generic "does not match values.schema.json" with a
|
|
81
|
+
* const violation under it does not carry that. The unquoted `version: 0.2` is
|
|
82
|
+
* the same case one step later: YAML read the dotted identifier as a float, and
|
|
83
|
+
* the fix is a pair of quotes rather than anything about the block's content.
|
|
76
84
|
*/
|
|
77
|
-
export type ValuesLoadFailureCode = "file-missing" | "multiple-blocks" | "unterminated-fence" | "yaml-error" | "schema-invalid";
|
|
85
|
+
export type ValuesLoadFailureCode = "file-missing" | "multiple-blocks" | "unterminated-fence" | "yaml-error" | "version-unsupported" | "schema-invalid";
|
|
78
86
|
/** Where the values block was read from. */
|
|
79
87
|
export interface ValuesSource {
|
|
80
88
|
/** Absolute or caller-relative path actually read. */
|
|
@@ -115,6 +123,8 @@ export interface LoadValuesOptions {
|
|
|
115
123
|
/** Schema directory passed through to {@link validate}. Injectable for tests. */
|
|
116
124
|
schemaDir?: string;
|
|
117
125
|
}
|
|
126
|
+
/** The version this runtime reads, spelled as the block must spell it. */
|
|
127
|
+
export declare const VALUES_VERSION = "0.2";
|
|
118
128
|
/**
|
|
119
129
|
* Extract, parse, and validate the values block of an already-read file.
|
|
120
130
|
*
|
package/dist/src/core/values.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Everything else in this directory is control: what an agent may do, who
|
|
5
5
|
* decides, what is sampled. This module reads the other half of the file — the
|
|
6
6
|
* optional ` ```yaml approval-values ` block in which the operator says what
|
|
7
|
-
* they value in the work, what they
|
|
7
|
+
* they value in the work, what they ask of the agent, and how they read and
|
|
8
8
|
* answer. It is the mirror of the journal (SPEC.md §10.1): the journal is the
|
|
9
9
|
* agent's outlet the gate does not stand in front of, and the values block is
|
|
10
10
|
* the human's, with the same rule running in both directions, that nothing said
|
|
@@ -96,6 +96,36 @@ function resolveFile(options) {
|
|
|
96
96
|
}
|
|
97
97
|
return failure("file-missing", `no policy file found in ${dir} (looked for ${POLICY_FILENAMES.join(", ")})`);
|
|
98
98
|
}
|
|
99
|
+
/** The version this runtime reads, spelled as the block must spell it. */
|
|
100
|
+
export const VALUES_VERSION = "0.2";
|
|
101
|
+
/** The migration a pre-APRV-336 block needs, in one clause. */
|
|
102
|
+
const MIGRATION = `fold \`wants:\` into \`like:\` and set \`version: "${VALUES_VERSION}"\`, with the quotes`;
|
|
103
|
+
/**
|
|
104
|
+
* The version refusal a parsed block earns before the schema is consulted, or
|
|
105
|
+
* null when the version is not a number and the schema is the right judge.
|
|
106
|
+
*
|
|
107
|
+
* Only NUMBERS are answered for here. A number in this position is YAML having
|
|
108
|
+
* read the version rather than the author having mistyped it: `version: 1` is
|
|
109
|
+
* the first revision of this format, and `version: 0.2` is the current one
|
|
110
|
+
* written without quotes, which YAML resolves to a float. Both are refused with
|
|
111
|
+
* the edit that fixes them. Every other wrong version (a list, a map, the
|
|
112
|
+
* string "1", the string "0.3") goes to the schema, whose const violation says
|
|
113
|
+
* what it is, because this function has nothing truer to add about it.
|
|
114
|
+
*/
|
|
115
|
+
function versionRefusal(parsed) {
|
|
116
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
117
|
+
return null;
|
|
118
|
+
const version = parsed["version"];
|
|
119
|
+
if (typeof version !== "number")
|
|
120
|
+
return null;
|
|
121
|
+
if (version === 1) {
|
|
122
|
+
return `the values block is version 1, the format this runtime replaced in APRV-336; it reads version "${VALUES_VERSION}" only. To migrate: ${MIGRATION}. Nothing about the policy block changes, and a version-1 block fails this reader alone.`;
|
|
123
|
+
}
|
|
124
|
+
if (version === 0.2) {
|
|
125
|
+
return `the values block writes \`version: ${VALUES_VERSION}\` unquoted, which YAML reads as the number 0.2 rather than as a format identifier. Quote it: \`version: "${VALUES_VERSION}"\`. If the block is also older than APRV-336, ${MIGRATION}.`;
|
|
126
|
+
}
|
|
127
|
+
return `the values block carries the number ${String(version)} as its version; this runtime reads the quoted string "${VALUES_VERSION}" and nothing else. To migrate a pre-APRV-336 block: ${MIGRATION}.`;
|
|
128
|
+
}
|
|
99
129
|
/**
|
|
100
130
|
* Extract, parse, and validate the values block of an already-read file.
|
|
101
131
|
*
|
|
@@ -128,6 +158,11 @@ export function loadValuesText(path, text, options = {}) {
|
|
|
128
158
|
});
|
|
129
159
|
if (!parsed.ok)
|
|
130
160
|
return failure("yaml-error", `${path}: ${parsed.message}`, source);
|
|
161
|
+
// Before the schema, because the schema's answer to an old block is a const
|
|
162
|
+
// violation and the author's question is "what do I edit" (APRV-336).
|
|
163
|
+
const refusal = versionRefusal(parsed.value);
|
|
164
|
+
if (refusal !== null)
|
|
165
|
+
return failure("version-unsupported", `${path}: ${refusal}`, source);
|
|
131
166
|
// `exactOptionalPropertyTypes` is on, so the key is omitted rather than
|
|
132
167
|
// passed as `undefined`: the validator's own default is not the same thing as
|
|
133
168
|
// an explicit `undefined` schema directory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/core/values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,mFAAmF;AACnF,iFAAiF;AACjF,+EAA+E;AAC/E,2EAA2E;AAC3E,uEAAuE;AACvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAE/D,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/core/values.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,16 @@
|
|
|
55
55
|
* carries a path an advance may not carry, so what gets armed is only ever
|
|
56
56
|
* evidence. `--no-advance-auto-merge` turns the whole thing off.
|
|
57
57
|
*
|
|
58
|
+
* ## Which class a cycle asks under (APRV-382)
|
|
59
|
+
*
|
|
60
|
+
* Two, and the running process picks. `log.advance.daemon` is the daemon's own
|
|
61
|
+
* class and this repository's policy makes it autonomous: an advance publishes
|
|
62
|
+
* records the log already holds, appends nothing and decides nothing, so the
|
|
63
|
+
* cadence does not need a hand. `log.advance` is what everybody else asks
|
|
64
|
+
* under, unchanged. `core/advance-cycle.ts`'s `advanceRoute` is the rule, read
|
|
65
|
+
* against `core/daemon-actor.ts` rather than against anything a caller passed,
|
|
66
|
+
* and a policy with no daemon line leaves the cadence exactly where it was.
|
|
67
|
+
*
|
|
58
68
|
* ## The self-perpetuation trap, and how the trigger avoids it
|
|
59
69
|
*
|
|
60
70
|
* One advance cycle appends three records of its own (`task.registered`,
|
|
@@ -55,6 +55,16 @@
|
|
|
55
55
|
* carries a path an advance may not carry, so what gets armed is only ever
|
|
56
56
|
* evidence. `--no-advance-auto-merge` turns the whole thing off.
|
|
57
57
|
*
|
|
58
|
+
* ## Which class a cycle asks under (APRV-382)
|
|
59
|
+
*
|
|
60
|
+
* Two, and the running process picks. `log.advance.daemon` is the daemon's own
|
|
61
|
+
* class and this repository's policy makes it autonomous: an advance publishes
|
|
62
|
+
* records the log already holds, appends nothing and decides nothing, so the
|
|
63
|
+
* cadence does not need a hand. `log.advance` is what everybody else asks
|
|
64
|
+
* under, unchanged. `core/advance-cycle.ts`'s `advanceRoute` is the rule, read
|
|
65
|
+
* against `core/daemon-actor.ts` rather than against anything a caller passed,
|
|
66
|
+
* and a policy with no daemon line leaves the cadence exactly where it was.
|
|
67
|
+
*
|
|
58
68
|
* ## The self-perpetuation trap, and how the trigger avoids it
|
|
59
69
|
*
|
|
60
70
|
* One advance cycle appends three records of its own (`task.registered`,
|
|
@@ -76,8 +86,9 @@
|
|
|
76
86
|
import { spawn } from "node:child_process";
|
|
77
87
|
import { fileURLToPath } from "node:url";
|
|
78
88
|
import { tick } from "../core/clock.js";
|
|
79
|
-
import { ADVANCE_ACTOR,
|
|
89
|
+
import { ADVANCE_ACTOR, RESOLVE_DANGLING_COMMAND, advanceActionKey, advanceRoute, advanceTaskId, danglingAdvances, openAdvanceRequest, proveDanglingAdvances, } from "../core/advance-cycle.js";
|
|
80
90
|
import { childEnvironment } from "../core/child-env.js";
|
|
91
|
+
import { isDaemonProcess } from "../core/daemon-actor.js";
|
|
81
92
|
import { finishExecution, startExecution, } from "../core/execute.js";
|
|
82
93
|
import { register, request } from "../core/gate.js";
|
|
83
94
|
import { attemptsOf, withHeadRetry } from "../core/head-retry.js";
|
|
@@ -478,6 +489,16 @@ export function authorizeAdvance(input, records) {
|
|
|
478
489
|
...(input.policy.dir === undefined ? {} : { dir: input.policy.dir }),
|
|
479
490
|
...(input.schemaDir === undefined ? {} : { schemaDir: input.schemaDir }),
|
|
480
491
|
});
|
|
492
|
+
// WHO is running this cycle, and therefore which class it asks under
|
|
493
|
+
// (APRV-382). Read from the process rather than from `input`, because a field
|
|
494
|
+
// a caller sets is a self-reported field and a self-reported field never
|
|
495
|
+
// reduces scrutiny (SPEC.md §11.1 invariant 4). Asked before anything is
|
|
496
|
+
// appended, so a refusal here leaves the log exactly as it found it.
|
|
497
|
+
const route = advanceRoute(isDaemonProcess(), loaded);
|
|
498
|
+
if (!route.ok) {
|
|
499
|
+
return no({ outcome: "refused", code: route.code, message: route.message });
|
|
500
|
+
}
|
|
501
|
+
const cls = route.cls;
|
|
481
502
|
const open = openAdvanceRequest(records, ts, loaded.ok ? loaded.durations.approvalTtlMs : null);
|
|
482
503
|
const adopted = open !== null && open.actionKey === actionKey;
|
|
483
504
|
if (open !== null && open.state === "requested") {
|
|
@@ -522,7 +543,7 @@ export function authorizeAdvance(input, records) {
|
|
|
522
543
|
state: "proposed",
|
|
523
544
|
actions: [
|
|
524
545
|
{
|
|
525
|
-
class:
|
|
546
|
+
class: cls,
|
|
526
547
|
idempotency_key: actionKey,
|
|
527
548
|
summary: `log advance: seq ${String(state.publishedSeq + 1)}..${String(state.substantiveSeq)} onto ${recordsBranch}`,
|
|
528
549
|
reversible: true,
|
|
@@ -541,7 +562,7 @@ export function authorizeAdvance(input, records) {
|
|
|
541
562
|
const asked = request(input.logPath, {
|
|
542
563
|
task,
|
|
543
564
|
actionKey,
|
|
544
|
-
cls
|
|
565
|
+
cls,
|
|
545
566
|
reversible: true,
|
|
546
567
|
est_cost_usd: "0",
|
|
547
568
|
summary: `log advance: seq ${String(state.publishedSeq + 1)}..${String(state.substantiveSeq)}`,
|
|
@@ -561,7 +582,7 @@ export function authorizeAdvance(input, records) {
|
|
|
561
582
|
outcome: "gated",
|
|
562
583
|
code: asked.live?.reason ?? "manual",
|
|
563
584
|
message: `the gate sent this advance to a human (${asked.live === undefined
|
|
564
|
-
? `class ${
|
|
585
|
+
? `class ${cls} resolves ${asked.autonomy}`
|
|
565
586
|
: `supervised-live draw: ${asked.live.reason} at rate ${String(asked.live.rate)}`}); nothing was committed. The question is in the queue as ${actionKey}, and the next tick adopts it rather than asking again.`,
|
|
566
587
|
});
|
|
567
588
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advance.js","sourceRoot":"","sources":["../../../src/daemon/advance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advance.js","sourceRoot":"","sources":["../../../src/daemon/advance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAc,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,cAAc,GAIf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAoB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,cAAc,GAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAmBhD,yCAAyC;AACzC,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,UAAU,EAAE,2BAA2B;QACvC,YAAY,EAAE,6BAA6B;QAC3C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AA6HD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,OAAuB;IACjD,OAAO;QACL,UAAU;QACV,KAAK;QACL,SAAS;QACT,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,4EAA4E;QAC5E,yEAAyE;QACzE,wDAAwD;QACxD,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,UAAU;QACV,OAAO,CAAC,MAAM;QACd,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAkCD,kFAAkF;AAClF,SAAS,SAAS,CAChB,EAAU,EACV,cAAsB,EACtB,aAAqB;IAErB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChB,EAAE;QACF,cAAc;QACd,aAAa;QACb,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAS,wBAAwB,CAC/B,OAAe,EACf,SAAiB,EACjB,QAAgB,EAChB,OAAsD;IAEtD,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAC9D,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAmB,EACnB,OAA6B;IAE7B,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC1F,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QACpF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,kBAAkB,OAAO,CAAC,SAAS,iBAAiB,MAAM,CAAC,KAAK,GAAG;SAC7E,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,6DAA6D;SAC3F,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,kBAAkB,OAAO,CAAC,SAAS,iCAAiC,MAAM,CAAC,OAAO,EAAE;KAC9F,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAmB,EACnB,OAA+B;IAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjF,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAqBD,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAAC,KAAmB;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAmB,EACnB,OAA+B;IAE/B,MAAM,KAAK,GAAiB,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC7D,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,qEAAqE;IACrE,KAAK,MAAM,KAAK,IAAI,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;gBACrB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,mFACzB,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CACjE,iGAAiG;aAClG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE;YAC3E,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC7F,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YACpF,IAAI,EAAE;gBACJ,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,oDAAoD,KAAK,CAAC,QAAQ,gBAAgB,MAAM,CAC/F,KAAK,CAAC,KAAK,CACZ,yEAAyE,aAAa,0CAA0C;aAClI;SACF,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,yCAAyC,KAAK,CAAC,QAAQ,gBAAgB,MAAM,CACtG,KAAK,CAAC,KAAK,CACZ,qCAAqC;aACvC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACzC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,kFAAkF;aAC9G,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,yBAAyB,QAAQ,CAAC,OAAO,EAAE;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,+HAA+H,IAAI,CAAC,IAAI,CACnK,IAAI,CACL,wCAAwC,wBAAwB,iEAAiE,CAAC;AACrI,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAmB,EACnB,OAA+B;IAE/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC;IAC9C,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,EAAE,GAAG,CACT,IAA4E,EACtD,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1E,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,4BAA4B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,iCAAiC;SACjG,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,6EAA6E;IAC7E,yEAAyE;IACzE,8EAA8E;IAC9E,uEAAuE;IACvE,0EAA0E;IAC1E,oEAAoE;IACpE,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,4DAA4D;IAC5D,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,mBAAmB,CAAC,YAAY,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACnD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACpE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAExD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACjF,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,yEAAyE;IACzE,YAAY;IACZ,EAAE;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,8CAA8C;IAC9C,MAAM,IAAI,GAAG,WAAW,CAAC;QACvB,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;QAChC,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE;KAChE,CAAC,CAAC;IAEH,uEAAuE;IACvE,8EAA8E;IAC9E,+EAA+E;IAC/E,sEAAsE;IACtE,uDAAuD;IACvD,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACpE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC,CAAC;IACH,qEAAqE;IACrE,8EAA8E;IAC9E,yEAAyE;IACzE,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,KAAK,GAAG,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IAEtB,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;IAE9D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAChD,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,0CAA0C,IAAI,CAAC,SAAS,kIAAkI;SACpM,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,sBAAsB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,SAAS,wDAAwD;SAChN,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACvE,uEAAuE;QACvE,mEAAmE;QACnE,2EAA2E;QAC3E,0EAA0E;QAC1E,4CAA4C;QAC5C,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,mBAAmB,IAAI,CAAC,SAAS,mGAAmG;SAC9I,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,0DAA0D;IAC1D,MAAM,YAAY,GAAG,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,QAAQ,CACzB,KAAK,CAAC,OAAO,EACb;YACE,IAAI;YACJ,QAAQ,EAAE;gBACR,MAAM,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE;gBAC7D,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,GAAG;wBACV,eAAe,EAAE,SAAS;wBAC1B,OAAO,EAAE,oBAAoB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,aAAa,EAAE;wBACpH,UAAU,EAAE,IAAI;wBAChB,YAAY,EAAE,GAAG;wBACjB,YAAY,EAAE,IAAI;qBACnB;iBACF;aACF;SACF,EACD,aAAa,EACb,IAAI,CACL,CAAC;QACF,0EAA0E;QAC1E,6EAA6E;QAC7E,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACpE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CACnB,KAAK,CAAC,OAAO,EACb;YACE,IAAI;YACJ,SAAS;YACT,GAAG;YACH,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,GAAG;YACjB,OAAO,EAAE,oBAAoB,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;YAC9F,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE;YACpI,sEAAsE;YACtE,wEAAwE;YACxE,yEAAyE;YACzE,oEAAoE;YACpE,QAAQ,EAAE,MAAM;SACjB,EACD,aAAa,EACb,IAAI,CACL,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,QAAQ;gBACpC,OAAO,EAAE,0CACP,KAAK,CAAC,IAAI,KAAK,SAAS;oBACtB,CAAC,CAAC,SAAS,GAAG,aAAa,KAAK,CAAC,QAAQ,EAAE;oBAC3C,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EACnF,6DAA6D,SAAS,yDAAyD;aAChI,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAC5B,KAAK,CAAC,OAAO,EACb,SAAS,EACT;QACE,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,oBAAoB,EAAE,YAAY;QAClC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,EACD,aAAa,CACd,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,EAAE;QACF,KAAK;QACL,IAAI;QACJ,aAAa;QACb,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,OAAO;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC;AAWD,mEAAmE;AACnE,SAAS,WAAW,CAAC,KAAmB,EAAE,IAAyD;IACjG,IAAI,CAAC;QACH,OAAO,UAAU,CAAC;YAChB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC5B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACpB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAClC,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,sBAAsB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IACvG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CACnB,KAAmB,EACnB,IAAyD,EACzD,QAAoB;IAEpB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5F,uEAAuE;IACvE,0EAA0E;IAC1E,uEAAuE;IACvE,8EAA8E;IAC9E,0BAA0B;IAC1B,MAAM,IAAI,GACR,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;QAC7C,CAAC,CAAC;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,2CACP,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,UACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GACrD,QAAQ,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;gBAClD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,kBAAkB,QAAQ,CAAC,MAAM,CAAC,aAAa,EACrD,EAAE;SACH;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE;QACjF,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QACpF,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,qCAAqC;IACrC,MAAM,aAAa,GAAgC,QAAQ,CAAC,EAAE;QAC5D,CAAC,CAAC,IAAI;QACN,CAAC,CAAC;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ;YACR,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;SACxC,CAAC;IACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,kDAAkD,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,yEAAyE,CAAC;IAEnK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;YACZ,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,EAAE;YACzC,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,OAAO,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;QAC7D,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QACpC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QAC3C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;QAChC,SAAS,EAAE,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG;QACvE,aAAa;QACb,OAAO,EACL,MAAM,CAAC,MAAM,KAAK,IAAI;YACpB,CAAC,CAAC,uEAAuE;YACzE,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,CAC/C,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CACtB,UAAU,MAAM,CAAC,aAAa,GAC7B,MAAM,CAAC,OAAO,KAAK,IAAI;gBACrB,CAAC,CAAC,gBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;gBACtG,CAAC,CAAC,EACN,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE;KAC1F,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,MAAwB;IACvC,QAAQ,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QACjC,KAAK,IAAI;YACP,OAAO,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC;QAC9B,KAAK,KAAK;YACR,OAAO,kDAAkD,CAAC;QAC5D,KAAK,UAAU;YACb,OAAO,0BAA0B,MAAM,CAAC,aAAa,IAAI,6CAA6C,EAAE,CAAC;QAC3G;YACE,OAAO,+BAA+B,MAAM,CAAC,aAAa,IAAI,iBAAiB,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,IAAyD;IAEzD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,IAAyD;IAEzD,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI;YAC3B,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACtE,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC5B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACpB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAClC,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACpD,GAAG,EAAE,IAAI,CAAC,IAAI;gBACd,GAAG,EAAE,gBAAgB,EAAE,CAAC,GAAG;gBAC3B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CACL,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;gBACxB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,2CAA2C,MAAM,CAAC,KAAK,CAAC,EAAE;aACpE,CAAC,CACH,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,GAAe,EAAQ,EAAE;YACvC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,2CAA2C,MAAM,CAAC,KAAK,CAAC,EAAE;aACpE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YACD,MAAM,CAAC;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,4BAA4B,MAAM,CAAC,IAAI,CAAC,4CAC/C,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACxD,EAAE;aACH,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAqB,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,OAA+B;IAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IAC1C,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -104,6 +104,7 @@ import { processReadCache, readVerifiedRecords, } from "../core/state.js";
|
|
|
104
104
|
import { validate } from "../core/validate.js";
|
|
105
105
|
import { publishedState } from "../cli/log-advance.js";
|
|
106
106
|
import { isAdvanceBookkeeping } from "../core/advance-cycle.js";
|
|
107
|
+
import { markDaemonProcess } from "../core/daemon-actor.js";
|
|
107
108
|
import { repoRoot } from "../cli/git-scope.js";
|
|
108
109
|
import { checkLogAnchor, resolveAnchor } from "../cli/log-anchor.js";
|
|
109
110
|
import { checkLogCheckpoints, checkpointPolicyOf, } from "../core/checkpoint.js";
|
|
@@ -358,6 +359,14 @@ export class Daemon {
|
|
|
358
359
|
drawServing = false;
|
|
359
360
|
constructor(options) {
|
|
360
361
|
this.options = options;
|
|
362
|
+
// APRV-382. This process is the daemon, and the gated advance path asks
|
|
363
|
+
// `core/daemon-actor.ts` rather than being told: `log.advance.daemon` is
|
|
364
|
+
// autonomous in this repository's policy and `log.advance` is not, so which
|
|
365
|
+
// class a cycle asks under must not be a field any caller can set. Marked
|
|
366
|
+
// at CONSTRUCTION rather than in `run()` so that a shutdown flush, a
|
|
367
|
+
// `--once` tick and a test driving this object one tick at a time are all
|
|
368
|
+
// the same actor as the loop.
|
|
369
|
+
markDaemonProcess();
|
|
361
370
|
}
|
|
362
371
|
/** Run until stopped (or, with `once`, for exactly one tick). */
|
|
363
372
|
run() {
|