@relayflows/sdk 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/authored-flow-error.d.ts +9 -0
  2. package/dist/authored-flow-error.d.ts.map +1 -0
  3. package/dist/authored-flow-error.js +13 -0
  4. package/dist/authored-flow-error.js.map +1 -0
  5. package/dist/authored-flow-executor.d.ts +28 -0
  6. package/dist/authored-flow-executor.d.ts.map +1 -0
  7. package/dist/authored-flow-executor.js +203 -0
  8. package/dist/authored-flow-executor.js.map +1 -0
  9. package/dist/authored-flow-lifecycle.d.ts +61 -0
  10. package/dist/authored-flow-lifecycle.d.ts.map +1 -0
  11. package/dist/authored-flow-lifecycle.js +284 -0
  12. package/dist/authored-flow-lifecycle.js.map +1 -0
  13. package/dist/authored-flow-loader.d.ts +7 -0
  14. package/dist/authored-flow-loader.d.ts.map +1 -0
  15. package/dist/authored-flow-loader.js +39 -0
  16. package/dist/authored-flow-loader.js.map +1 -0
  17. package/dist/authored-flow-operation.d.ts +43 -0
  18. package/dist/authored-flow-operation.d.ts.map +1 -0
  19. package/dist/authored-flow-operation.js +176 -0
  20. package/dist/authored-flow-operation.js.map +1 -0
  21. package/dist/authored-flow.d.ts +12 -0
  22. package/dist/authored-flow.d.ts.map +1 -0
  23. package/dist/authored-flow.js +13 -0
  24. package/dist/authored-flow.js.map +1 -0
  25. package/dist/authored-promise-graph.d.ts +67 -0
  26. package/dist/authored-promise-graph.d.ts.map +1 -0
  27. package/dist/authored-promise-graph.js +206 -0
  28. package/dist/authored-promise-graph.js.map +1 -0
  29. package/dist/backlog-picker.d.ts +55 -0
  30. package/dist/backlog-picker.d.ts.map +1 -0
  31. package/dist/backlog-picker.js +117 -0
  32. package/dist/backlog-picker.js.map +1 -0
  33. package/dist/canonical.d.ts +18 -0
  34. package/dist/canonical.d.ts.map +1 -0
  35. package/dist/canonical.js +55 -0
  36. package/dist/canonical.js.map +1 -0
  37. package/dist/cli/check.d.ts +30 -0
  38. package/dist/cli/check.d.ts.map +1 -0
  39. package/dist/cli/check.js +324 -0
  40. package/dist/cli/check.js.map +1 -0
  41. package/dist/cli/direct-run.d.ts +3 -0
  42. package/dist/cli/direct-run.d.ts.map +1 -0
  43. package/dist/cli/direct-run.js +69 -0
  44. package/dist/cli/direct-run.js.map +1 -0
  45. package/dist/cli/hn-monitor.d.ts +107 -0
  46. package/dist/cli/hn-monitor.d.ts.map +1 -0
  47. package/dist/cli/hn-monitor.js +220 -0
  48. package/dist/cli/hn-monitor.js.map +1 -0
  49. package/dist/cli/interruptible-sleep.d.ts +13 -0
  50. package/dist/cli/interruptible-sleep.d.ts.map +1 -0
  51. package/dist/cli/interruptible-sleep.js +31 -0
  52. package/dist/cli/interruptible-sleep.js.map +1 -0
  53. package/dist/cli/run.d.ts +54 -0
  54. package/dist/cli/run.d.ts.map +1 -0
  55. package/dist/cli/run.js +316 -0
  56. package/dist/cli/run.js.map +1 -0
  57. package/dist/cli/tick-runner.d.ts +151 -0
  58. package/dist/cli/tick-runner.d.ts.map +1 -0
  59. package/dist/cli/tick-runner.js +258 -0
  60. package/dist/cli/tick-runner.js.map +1 -0
  61. package/dist/cli-adapter.d.ts +29 -0
  62. package/dist/cli-adapter.d.ts.map +1 -0
  63. package/dist/cli-adapter.js +92 -0
  64. package/dist/cli-adapter.js.map +1 -0
  65. package/dist/cli-executable.d.ts +3 -0
  66. package/dist/cli-executable.d.ts.map +1 -0
  67. package/dist/cli-executable.js +10 -0
  68. package/dist/cli-executable.js.map +1 -0
  69. package/dist/cli.d.ts +9 -0
  70. package/dist/cli.d.ts.map +1 -0
  71. package/dist/cli.js +348 -0
  72. package/dist/cli.js.map +1 -0
  73. package/dist/compile.d.ts +42 -0
  74. package/dist/compile.d.ts.map +1 -0
  75. package/dist/compile.js +515 -0
  76. package/dist/compile.js.map +1 -0
  77. package/dist/demo-hn-monitor.d.ts +2 -0
  78. package/dist/demo-hn-monitor.d.ts.map +1 -0
  79. package/dist/demo-hn-monitor.js +118 -0
  80. package/dist/demo-hn-monitor.js.map +1 -0
  81. package/dist/dir-watcher-poller.d.ts +73 -0
  82. package/dist/dir-watcher-poller.d.ts.map +1 -0
  83. package/dist/dir-watcher-poller.js +80 -0
  84. package/dist/dir-watcher-poller.js.map +1 -0
  85. package/dist/direct-input.d.ts +10 -0
  86. package/dist/direct-input.d.ts.map +1 -0
  87. package/dist/direct-input.js +61 -0
  88. package/dist/direct-input.js.map +1 -0
  89. package/dist/failure-kinds.d.ts +25 -0
  90. package/dist/failure-kinds.d.ts.map +1 -0
  91. package/dist/failure-kinds.js +64 -0
  92. package/dist/failure-kinds.js.map +1 -0
  93. package/dist/gate-contract.d.ts +24 -0
  94. package/dist/gate-contract.d.ts.map +1 -0
  95. package/dist/gate-contract.js +50 -0
  96. package/dist/gate-contract.js.map +1 -0
  97. package/dist/hn-poller.d.ts +50 -0
  98. package/dist/hn-poller.d.ts.map +1 -0
  99. package/dist/hn-poller.js +79 -0
  100. package/dist/hn-poller.js.map +1 -0
  101. package/dist/index.d.ts +21 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +30 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/journal-client.d.ts +122 -0
  106. package/dist/journal-client.d.ts.map +1 -0
  107. package/dist/journal-client.js +277 -0
  108. package/dist/journal-client.js.map +1 -0
  109. package/dist/json-schema-bound.d.ts +7 -0
  110. package/dist/json-schema-bound.d.ts.map +1 -0
  111. package/dist/json-schema-bound.js +353 -0
  112. package/dist/json-schema-bound.js.map +1 -0
  113. package/dist/json-schema.d.ts +5 -0
  114. package/dist/json-schema.d.ts.map +1 -0
  115. package/dist/json-schema.js +72 -0
  116. package/dist/json-schema.js.map +1 -0
  117. package/dist/json-value.d.ts +6 -0
  118. package/dist/json-value.d.ts.map +1 -0
  119. package/dist/json-value.js +94 -0
  120. package/dist/json-value.js.map +1 -0
  121. package/dist/model-name.d.ts +7 -0
  122. package/dist/model-name.d.ts.map +1 -0
  123. package/dist/model-name.js +21 -0
  124. package/dist/model-name.js.map +1 -0
  125. package/dist/output-schema.d.ts +8 -0
  126. package/dist/output-schema.d.ts.map +1 -0
  127. package/dist/output-schema.js +28 -0
  128. package/dist/output-schema.js.map +1 -0
  129. package/dist/preflight.d.ts +80 -0
  130. package/dist/preflight.d.ts.map +1 -0
  131. package/dist/preflight.js +361 -0
  132. package/dist/preflight.js.map +1 -0
  133. package/dist/protocol.d.ts +359 -0
  134. package/dist/protocol.d.ts.map +1 -0
  135. package/dist/protocol.js +15 -0
  136. package/dist/protocol.js.map +1 -0
  137. package/dist/spec.d.ts +294 -0
  138. package/dist/spec.d.ts.map +1 -0
  139. package/dist/spec.js +13 -0
  140. package/dist/spec.js.map +1 -0
  141. package/dist/step-dependencies.d.ts +2 -0
  142. package/dist/step-dependencies.d.ts.map +1 -0
  143. package/dist/step-dependencies.js +88 -0
  144. package/dist/step-dependencies.js.map +1 -0
  145. package/dist/step-fields.d.ts +17 -0
  146. package/dist/step-fields.d.ts.map +1 -0
  147. package/dist/step-fields.js +32 -0
  148. package/dist/step-fields.js.map +1 -0
  149. package/dist/tick-source.d.ts +205 -0
  150. package/dist/tick-source.d.ts.map +1 -0
  151. package/dist/tick-source.js +234 -0
  152. package/dist/tick-source.js.map +1 -0
  153. package/dist/unknown-keys.d.ts +7 -0
  154. package/dist/unknown-keys.d.ts.map +1 -0
  155. package/dist/unknown-keys.js +47 -0
  156. package/dist/unknown-keys.js.map +1 -0
  157. package/dist/validate.d.ts +7 -0
  158. package/dist/validate.d.ts.map +1 -0
  159. package/dist/validate.js +458 -0
  160. package/dist/validate.js.map +1 -0
  161. package/dist/work-package-consumer.d.ts +33 -0
  162. package/dist/work-package-consumer.d.ts.map +1 -0
  163. package/dist/work-package-consumer.js +44 -0
  164. package/dist/work-package-consumer.js.map +1 -0
  165. package/dist/work-package-validator.d.ts +15 -0
  166. package/dist/work-package-validator.d.ts.map +1 -0
  167. package/dist/work-package-validator.js +72 -0
  168. package/dist/work-package-validator.js.map +1 -0
  169. package/dist/worker-cli.d.ts +16 -0
  170. package/dist/worker-cli.d.ts.map +1 -0
  171. package/dist/worker-cli.js +77 -0
  172. package/dist/worker-cli.js.map +1 -0
  173. package/dist/worker.d.ts +57 -0
  174. package/dist/worker.d.ts.map +1 -0
  175. package/dist/worker.js +129 -0
  176. package/dist/worker.js.map +1 -0
  177. package/dist/wrapper-runtime.d.ts +10 -0
  178. package/dist/wrapper-runtime.d.ts.map +1 -0
  179. package/dist/wrapper-runtime.js +83 -0
  180. package/dist/wrapper-runtime.js.map +1 -0
  181. package/dist/wrapper-session.d.ts +16 -0
  182. package/dist/wrapper-session.d.ts.map +1 -0
  183. package/dist/wrapper-session.js +244 -0
  184. package/dist/wrapper-session.js.map +1 -0
  185. package/package.json +50 -0
  186. package/src/authored-flow-error.ts +31 -0
  187. package/src/authored-flow-executor.ts +365 -0
  188. package/src/authored-flow-lifecycle.ts +344 -0
  189. package/src/authored-flow-loader.ts +44 -0
  190. package/src/authored-flow-operation.ts +252 -0
  191. package/src/authored-flow.ts +21 -0
  192. package/src/authored-promise-graph.ts +196 -0
  193. package/src/backlog-picker.ts +153 -0
  194. package/src/canonical.ts +57 -0
  195. package/src/cli/check.ts +391 -0
  196. package/src/cli/direct-run.ts +86 -0
  197. package/src/cli/hn-monitor.ts +286 -0
  198. package/src/cli/interruptible-sleep.ts +27 -0
  199. package/src/cli/run.ts +439 -0
  200. package/src/cli/tick-runner.ts +378 -0
  201. package/src/cli-adapter.ts +115 -0
  202. package/src/cli-executable.ts +12 -0
  203. package/src/cli.ts +364 -0
  204. package/src/compile.ts +573 -0
  205. package/src/demo-hn-monitor.ts +132 -0
  206. package/src/dir-watcher-poller.ts +122 -0
  207. package/src/direct-input.ts +69 -0
  208. package/src/failure-kinds.ts +77 -0
  209. package/src/gate-contract.ts +72 -0
  210. package/src/hn-poller.ts +104 -0
  211. package/src/index.ts +195 -0
  212. package/src/journal-client.ts +379 -0
  213. package/src/json-schema-bound.ts +357 -0
  214. package/src/json-schema.ts +65 -0
  215. package/src/json-value.ts +110 -0
  216. package/src/model-name.ts +20 -0
  217. package/src/output-schema.ts +33 -0
  218. package/src/preflight.ts +482 -0
  219. package/src/protocol.ts +364 -0
  220. package/src/spec.ts +343 -0
  221. package/src/step-dependencies.ts +100 -0
  222. package/src/step-fields.ts +36 -0
  223. package/src/tick-source.ts +334 -0
  224. package/src/unknown-keys.ts +52 -0
  225. package/src/validate.ts +503 -0
  226. package/src/work-package-consumer.ts +73 -0
  227. package/src/work-package-validator.ts +90 -0
  228. package/src/worker-cli.ts +110 -0
  229. package/src/worker.ts +150 -0
  230. package/src/wrapper-runtime.ts +93 -0
  231. package/src/wrapper-session.ts +287 -0
@@ -0,0 +1,515 @@
1
+ // The YAML -> spec compiler. Authoring surface in, the kernel's spec dialect
2
+ // out (RFC settled decision #5: the composable unit is the spec, not any
3
+ // language). Compilation is two mappings:
4
+ //
5
+ // compileYaml / compileSpec — parse + validate (fail-closed) + authoring
6
+ // defaults, staying in the authoring shape.
7
+ // toKernelSpec — authoring shape -> the ONE boundary dialect
8
+ // the kernel parses, journals, and hashes
9
+ // (snake_case, flat v0 verification, defaults
10
+ // materialized).
11
+ //
12
+ // `compileYamlToCanonicalJson` / `specHash` operate on the kernel dialect, so
13
+ // sha256(canonical JSON) equals the kernel's `spec_hash`. That claim is
14
+ // proven, not asserted: `tests/spec-parity.test.ts` and the kernel's
15
+ // `tests/spec_parity.rs` pin both sides to the same `testdata/` fixture.
16
+ import { parse as parseYaml } from 'yaml';
17
+ import { SPEC_SCHEMA_VERSION } from './spec.js';
18
+ import { canonicalize, specHash } from './canonical.js';
19
+ import { validateOutputDeclaration } from './output-schema.js';
20
+ import { validateSpec } from './validate.js';
21
+ import { snapshotJsonValue } from './json-value.js';
22
+ export class CompileError extends Error {
23
+ errors;
24
+ constructor(errors) {
25
+ super('spec compile failed:\n - ' + errors.join('\n - '));
26
+ this.name = 'CompileError';
27
+ this.errors = errors;
28
+ }
29
+ }
30
+ /**
31
+ * Compile a YAML string into a validated authoring `FlowSpec`.
32
+ * Throws `CompileError` on a YAML parse error or any validation failure.
33
+ */
34
+ export function compileYaml(yaml) {
35
+ const parsed = parseYaml(yaml);
36
+ if (parsed === null || typeof parsed !== 'object') {
37
+ throw new CompileError(['YAML: expected a mapping at the top level']);
38
+ }
39
+ return compileSpec(parsed);
40
+ }
41
+ /** Kernel-dialect canonical JSON of `compileYaml` (sorted keys, no whitespace). */
42
+ export function compileYamlToCanonicalJson(yaml) {
43
+ return canonicalize(toKernelSpec(compileYaml(yaml)));
44
+ }
45
+ /**
46
+ * Validate a parsed spec object and apply authoring defaults, returning a
47
+ * normalized `FlowSpec`. Throws `CompileError` on validation failure.
48
+ */
49
+ export function compileSpec(spec) {
50
+ let snapshot;
51
+ try {
52
+ snapshot = snapshotJsonValue(spec, 'spec');
53
+ }
54
+ catch (error) {
55
+ throw new CompileError([
56
+ error instanceof Error ? error.message : 'spec: expected JSON-compatible data',
57
+ ]);
58
+ }
59
+ const validation = validateSpec(snapshot);
60
+ if (!validation.ok)
61
+ throw new CompileError(validation.errors);
62
+ const input = snapshot;
63
+ // Preserve named declarations and selectors through authoring normalization.
64
+ // They are resolved exactly once at the kernel boundary, after public
65
+ // preflight has validated every declaration with truthful provenance.
66
+ const steps = input.steps.map(compileStep);
67
+ const flow = {
68
+ version: input.version,
69
+ ...(input.name !== undefined ? { name: input.name } : {}),
70
+ ...(input.description !== undefined ? { description: input.description } : {}),
71
+ ...(input.cli !== undefined ? { cli: input.cli } : {}),
72
+ ...(input.agents !== undefined ? { agents: input.agents } : {}),
73
+ // The kernel omits an empty trigger list when serializing RunSpec. Normalize
74
+ // it here so the authoring shape and boundary shape retain one hashable form.
75
+ ...(input.triggers?.length ? { triggers: input.triggers } : {}),
76
+ steps,
77
+ ...(input.budget !== undefined ? { budget: input.budget } : {}),
78
+ };
79
+ return flow;
80
+ }
81
+ function compileStep(step) {
82
+ const maxIterations = step.maxIterations ?? 1;
83
+ const verification = typedOutputVerification(step);
84
+ const base = {
85
+ id: step.id,
86
+ type: step.type,
87
+ ...(step.dependsOn !== undefined ? { dependsOn: step.dependsOn } : {}),
88
+ maxIterations,
89
+ };
90
+ switch (step.type) {
91
+ case 'deterministic': {
92
+ const s = step;
93
+ // A deterministic step with no verification gets the implicit exit_code
94
+ // gate. Read the SHARED `verification`, never `s.verification`: for this
95
+ // verb the two are equal today (typedOutputVerification returns
96
+ // `step.verification` unchanged, because `output` is not authorable on a
97
+ // deterministic step), but reading the shared binding is what keeps every
98
+ // branch of this switch on the lowered gate rather than the raw authored
99
+ // one. See ops/reviews/20260903-pr139-repair-0903.md §10, trap 2.
100
+ return {
101
+ ...base,
102
+ type: 'deterministic',
103
+ command: s.command,
104
+ verification: verification ?? { type: 'exit_code' },
105
+ // #138: `timeoutMs` is deterministic-only — worker-backed verbs own
106
+ // their dispatch timeout. It must be spread HERE and nowhere in `base`.
107
+ ...(s.timeoutMs !== undefined ? { timeoutMs: s.timeoutMs } : {}),
108
+ };
109
+ }
110
+ case 'llm': {
111
+ const s = step;
112
+ return {
113
+ ...base,
114
+ type: 'llm',
115
+ prompt: s.prompt,
116
+ // From the shared `verification` — which may have been lowered from an
117
+ // `output` declaration — never from `s.verification`, which would drop
118
+ // that lowering.
119
+ ...(verification !== undefined ? { verification: outputGate(verification, s.id) } : {}),
120
+ ...(s.model !== undefined ? { model: s.model } : {}),
121
+ ...(s.cli !== undefined ? { cli: s.cli } : {}),
122
+ };
123
+ }
124
+ case 'agent': {
125
+ const s = step;
126
+ const recoveryMode = s.recoveryMode ?? 'reset';
127
+ return {
128
+ ...base,
129
+ type: 'agent',
130
+ instruction: s.instruction,
131
+ ...(verification !== undefined ? { verification: outputGate(verification, s.id) } : {}),
132
+ ...(s.agent !== undefined ? { agent: s.agent } : {}),
133
+ ...(s.cli !== undefined ? { cli: s.cli } : {}),
134
+ ...(s.model !== undefined ? { model: s.model } : {}),
135
+ recoveryMode,
136
+ ...(s.surfaces !== undefined ? { surfaces: s.surfaces } : {}),
137
+ ...(s.permissions !== undefined ? { permissions: s.permissions } : {}),
138
+ };
139
+ }
140
+ default:
141
+ // validateSpec already gated this; unreachable.
142
+ throw new CompileError([`step "${step.id}": unknown type "${String(step.type)}"`]);
143
+ }
144
+ }
145
+ /**
146
+ * Narrow a gate to the ones an `llm`/`agent` step may carry. `validateSpec`
147
+ * already refuses `exit_code` off a deterministic step, so this is the
148
+ * fail-closed backstop for a runtime value cast past the authoring types.
149
+ */
150
+ function outputGate(gate, stepId) {
151
+ if (gate.type === 'exit_code') {
152
+ throw new CompileError([
153
+ `step "${stepId}": exit_code is supported only on deterministic steps`,
154
+ ]);
155
+ }
156
+ return gate;
157
+ }
158
+ function typedOutputVerification(step) {
159
+ if (step.type !== 'deterministic' && step.output !== undefined) {
160
+ const errors = validateOutputDeclaration(step, `step "${step.id}"`);
161
+ if (errors.length > 0)
162
+ throw new CompileError(errors);
163
+ return { type: 'json_schema', schema: step.output };
164
+ }
165
+ return step.verification;
166
+ }
167
+ /**
168
+ * Resolve declarative named-agent sugar at kernel lowering. Explicit step
169
+ * fields win independently, so an author may override
170
+ * only the CLI or only the model. The selector and declaration map never
171
+ * cross the journal boundary.
172
+ */
173
+ function resolveNamedAgent(step, agents) {
174
+ if (step.type !== 'agent' || step.agent === undefined)
175
+ return step;
176
+ const declaration = agents !== undefined && Object.hasOwn(agents, step.agent)
177
+ ? agents[step.agent]
178
+ : undefined;
179
+ if (declaration === undefined) {
180
+ throw new CompileError([
181
+ `step "${step.id}": unknown named agent "${step.agent}"`,
182
+ ]);
183
+ }
184
+ return {
185
+ ...step,
186
+ ...(step.cli === undefined ? { cli: declaration.cli } : {}),
187
+ ...(step.model === undefined ? { model: declaration.model } : {}),
188
+ };
189
+ }
190
+ // Kernel defaults, materialized at compile time so the emitted spec is
191
+ // byte-identical to the kernel's own serialization of it (spec.rs defaults).
192
+ const KERNEL_RETRY_DEFAULTS = {
193
+ initial_backoff_ms: 100,
194
+ max_backoff_ms: 60_000,
195
+ multiplier: 2,
196
+ jitter_percent: 20,
197
+ };
198
+ /**
199
+ * Map an authoring `FlowSpec` to the kernel spec dialect — the single shape at
200
+ * the SDK↔kernel boundary (`kernel/relayflowd-core/src/spec.rs`). Authoring
201
+ * sugar that the dialect cannot carry is a `CompileError`, never a silent drop.
202
+ */
203
+ export function toKernelSpec(flow) {
204
+ // This public boundary is callable without compileSpec. Compile again so
205
+ // runtime casts are validated and all returned schema data is snapshotted.
206
+ const compiled = compileSpec(flow);
207
+ return {
208
+ version: compiled.version,
209
+ ...(compiled.name !== undefined ? { name: compiled.name } : {}),
210
+ ...(compiled.description !== undefined ? { description: compiled.description } : {}),
211
+ ...(compiled.cli !== undefined ? { cli: compiled.cli } : {}),
212
+ // Both halves are load-bearing, and this hunk is trap 2's shape a second
213
+ // time. `compiled.*` is #139's snapshot guard: this boundary is callable
214
+ // without compileSpec, so it recompiles and reads the validated, snapshotted
215
+ // spec rather than the caller's raw object. `.map(toKernelTrigger)` is
216
+ // #151's LOWERING of authoring trigger keys into the kernel dialect --
217
+ // authoring sugar that becomes a different object at the boundary, exactly
218
+ // like `output:`. Taking either side of this conflict wholesale silently
219
+ // reverts the other, and `validateSpec` and `flows check` would both still
220
+ // look correct. See ops/reviews/20260903-pr139-repair-0903.md section 10.
221
+ ...(compiled.triggers?.length ? { triggers: compiled.triggers.map(toKernelTrigger) } : {}),
222
+ steps: compiled.steps.map((step) => toKernelStep(resolveNamedAgent(step, compiled.agents))),
223
+ ...(compiled.budget !== undefined
224
+ ? {
225
+ budget: {
226
+ ...(compiled.budget.maxTokensIn !== undefined ? { max_tokens_in: compiled.budget.maxTokensIn } : {}),
227
+ ...(compiled.budget.maxTokensOut !== undefined ? { max_tokens_out: compiled.budget.maxTokensOut } : {}),
228
+ ...(compiled.budget.maxDollars !== undefined ? { max_dollars: compiled.budget.maxDollars } : {}),
229
+ },
230
+ }
231
+ : {}),
232
+ };
233
+ }
234
+ /**
235
+ * Map the kernel boundary dialect back to the normalized authoring shape.
236
+ * This is the inverse of `toKernelSpec` over specs this compiler emits.
237
+ * Kernel-only values with no authoring representation are refused.
238
+ */
239
+ export function kernelToAuthoring(value) {
240
+ let snapshot;
241
+ try {
242
+ snapshot = snapshotJsonValue(value, 'spec');
243
+ }
244
+ catch (error) {
245
+ throw new CompileError([
246
+ error instanceof Error ? error.message : 'spec: expected JSON-compatible data',
247
+ ]);
248
+ }
249
+ const root = requireKernelObject(snapshot, ['version', 'name', 'description', 'cli', 'triggers', 'steps', 'budget'], 'spec');
250
+ const steps = requireKernelArray(root['steps'], 'spec.steps')
251
+ .map((step, index) => kernelStepToAuthoring(step, `spec.steps[${index}]`));
252
+ const triggers = root['triggers'];
253
+ return {
254
+ ...copyDefined(root, ['version', 'name', 'description', 'cli']),
255
+ ...(triggers !== undefined
256
+ ? {
257
+ triggers: requireKernelArray(triggers, 'spec.triggers')
258
+ .map((trigger, index) => kernelTriggerToAuthoring(trigger, `spec.triggers[${index}]`)),
259
+ }
260
+ : {}),
261
+ steps,
262
+ ...(root['budget'] !== undefined
263
+ ? { budget: kernelBudgetToAuthoring(root['budget'], 'spec.budget') }
264
+ : {}),
265
+ };
266
+ }
267
+ /**
268
+ * Lower one authoring trigger into the kernel dialect.
269
+ *
270
+ * This mapping was missing entirely: `toKernelSpec` used to spread
271
+ * `flow.triggers` through untouched, so every event subscription reached the
272
+ * kernel in camelCase and `relayflowd` — whose `TriggerSpec` is
273
+ * `#[serde(deny_unknown_fields)]` over snake_case — refused the spec outright:
274
+ *
275
+ * malformed run spec: unknown field `dedupeKeyTemplate`, expected one of
276
+ * `id`, `executor`, `event_type`, `pattern`, `dedupe_key_template`,
277
+ * `stale_after_ms`
278
+ *
279
+ * The committed `testdata/*.spec.canonical.json` fixtures are snake_case and
280
+ * the kernel accepts them, which is why nothing noticed: no test compiled a
281
+ * triggered flow through this function and compared it to a fixture. Every
282
+ * triggered flow in `testdata/` was therefore unauthorable through the
283
+ * supported SDK path. `tests/spec-parity.test.ts` now pins the mapping.
284
+ */
285
+ function toKernelTrigger(trigger) {
286
+ return {
287
+ id: trigger.id,
288
+ executor: trigger.executor,
289
+ ...(trigger.eventType !== undefined ? { event_type: trigger.eventType } : {}),
290
+ ...(trigger.pattern !== undefined ? { pattern: trigger.pattern } : {}),
291
+ ...(trigger.dedupeKeyTemplate !== undefined
292
+ ? { dedupe_key_template: trigger.dedupeKeyTemplate }
293
+ : {}),
294
+ ...(trigger.staleAfterMs !== undefined ? { stale_after_ms: trigger.staleAfterMs } : {}),
295
+ };
296
+ }
297
+ /** Inverse of `toKernelTrigger`. Kernel-only keys are refused, never dropped. */
298
+ function kernelTriggerToAuthoring(value, at) {
299
+ const trigger = requireKernelObject(value, ['id', 'executor', 'event_type', 'pattern', 'dedupe_key_template', 'stale_after_ms'], at);
300
+ return {
301
+ id: trigger['id'],
302
+ executor: trigger['executor'],
303
+ ...(trigger['event_type'] !== undefined ? { eventType: trigger['event_type'] } : {}),
304
+ ...(trigger['pattern'] !== undefined ? { pattern: trigger['pattern'] } : {}),
305
+ ...(trigger['dedupe_key_template'] !== undefined
306
+ ? { dedupeKeyTemplate: trigger['dedupe_key_template'] }
307
+ : {}),
308
+ ...(trigger['stale_after_ms'] !== undefined ? { staleAfterMs: trigger['stale_after_ms'] } : {}),
309
+ };
310
+ }
311
+ function kernelStepToAuthoring(value, at) {
312
+ const unionKeys = [
313
+ 'id', 'type', 'depends_on', 'max_iterations', 'retry', 'verification',
314
+ 'command', 'timeout_ms', 'prompt', 'model', 'cli', 'instruction',
315
+ 'recovery_mode', 'surfaces', 'permissions',
316
+ ];
317
+ const step = requireKernelObject(value, unionKeys, at);
318
+ const type = step['type'];
319
+ const commonKeys = ['id', 'type', 'depends_on', 'max_iterations', 'retry', 'verification'];
320
+ const typeKeys = type === 'deterministic'
321
+ ? ['command', 'timeout_ms']
322
+ : type === 'llm'
323
+ ? ['prompt', 'model', 'cli']
324
+ : type === 'agent'
325
+ ? ['instruction', 'cli', 'model', 'recovery_mode', 'surfaces', 'permissions']
326
+ : [];
327
+ assertKernelKeys(step, [...commonKeys, ...typeKeys], at);
328
+ if (step['retry'] !== undefined)
329
+ validateKernelRetry(step['retry'], `${at}.retry`);
330
+ const dependsOn = step['depends_on'];
331
+ const common = {
332
+ id: step['id'],
333
+ type,
334
+ ...(dependsOn !== undefined && (!Array.isArray(dependsOn) || dependsOn.length > 0)
335
+ ? { dependsOn }
336
+ : {}),
337
+ ...(step['max_iterations'] !== undefined ? { maxIterations: step['max_iterations'] } : {}),
338
+ ...kernelVerificationToAuthoring(type, step['verification'], `${at}.verification`),
339
+ };
340
+ if (type === 'deterministic') {
341
+ return {
342
+ ...common,
343
+ command: step['command'],
344
+ ...(step['timeout_ms'] !== undefined ? { timeoutMs: step['timeout_ms'] } : {}),
345
+ };
346
+ }
347
+ if (type === 'llm') {
348
+ return { ...common, prompt: step['prompt'], ...copyDefined(step, ['model', 'cli']) };
349
+ }
350
+ if (type === 'agent') {
351
+ return {
352
+ ...common,
353
+ instruction: step['instruction'],
354
+ ...(step['recovery_mode'] !== undefined ? { recoveryMode: step['recovery_mode'] } : {}),
355
+ ...copyDefined(step, ['cli', 'model', 'surfaces']),
356
+ ...(step['permissions'] !== undefined
357
+ ? { permissions: kernelPermissionsToAuthoring(step['permissions'], `${at}.permissions`) }
358
+ : {}),
359
+ };
360
+ }
361
+ return common;
362
+ }
363
+ function validateKernelRetry(value, at) {
364
+ const retry = requireKernelObject(value, [
365
+ 'initial_backoff_ms', 'max_backoff_ms', 'multiplier', 'jitter_percent',
366
+ ], at);
367
+ for (const [field, expected] of Object.entries(KERNEL_RETRY_DEFAULTS)) {
368
+ if (retry[field] !== expected) {
369
+ throw new CompileError([
370
+ `${at}.${field} must equal the authoring default ${expected}`,
371
+ ]);
372
+ }
373
+ }
374
+ }
375
+ function kernelVerificationToAuthoring(type, value, at) {
376
+ if (value === undefined)
377
+ return {};
378
+ const verification = requireKernelObject(value, ['output_contains', 'json_schema'], at);
379
+ if (verification['output_contains'] !== undefined && verification['json_schema'] !== undefined) {
380
+ throw new CompileError([`${at} may not contain two gates in spec v0.1.0`]);
381
+ }
382
+ if (verification['output_contains'] !== undefined) {
383
+ return { verification: { type: 'output_contains', value: verification['output_contains'] } };
384
+ }
385
+ if (verification['json_schema'] !== undefined) {
386
+ return { verification: { type: 'json_schema', schema: verification['json_schema'] } };
387
+ }
388
+ return type === 'deterministic' ? { verification: { type: 'exit_code' } } : {};
389
+ }
390
+ function kernelBudgetToAuthoring(value, at) {
391
+ const budget = requireKernelObject(value, ['max_tokens_in', 'max_tokens_out', 'max_dollars'], at);
392
+ return {
393
+ ...(budget['max_tokens_in'] !== undefined ? { maxTokensIn: budget['max_tokens_in'] } : {}),
394
+ ...(budget['max_tokens_out'] !== undefined ? { maxTokensOut: budget['max_tokens_out'] } : {}),
395
+ ...(budget['max_dollars'] !== undefined ? { maxDollars: budget['max_dollars'] } : {}),
396
+ };
397
+ }
398
+ function kernelPermissionsToAuthoring(value, at) {
399
+ const permissions = requireKernelObject(value, ['file_globs', 'network_allowlist', 'access_preset'], at);
400
+ return {
401
+ ...(permissions['file_globs'] !== undefined ? { fileGlobs: permissions['file_globs'] } : {}),
402
+ ...(permissions['network_allowlist'] !== undefined ? { networkAllowlist: permissions['network_allowlist'] } : {}),
403
+ ...(permissions['access_preset'] !== undefined ? { accessPreset: permissions['access_preset'] } : {}),
404
+ };
405
+ }
406
+ function requireKernelObject(value, allowed, at) {
407
+ if (!isObject(value)) {
408
+ throw new CompileError([`${at}: expected an object`]);
409
+ }
410
+ assertKernelKeys(value, allowed, at);
411
+ return value;
412
+ }
413
+ function assertKernelKeys(value, allowed, at) {
414
+ const unknown = Object.keys(value).filter((key) => !allowed.includes(key));
415
+ if (unknown.length > 0) {
416
+ throw new CompileError([
417
+ `${at}: unknown ${unknown.length === 1 ? 'key' : 'keys'} ${unknown.map((key) => `"${key}"`).join(', ')} (expected one of ${allowed.join(' | ')})`,
418
+ ]);
419
+ }
420
+ }
421
+ function requireKernelArray(value, at) {
422
+ if (!Array.isArray(value))
423
+ throw new CompileError([`${at}: expected an array`]);
424
+ return value;
425
+ }
426
+ function copyDefined(value, keys) {
427
+ return Object.fromEntries(keys.filter((key) => value[key] !== undefined).map((key) => [key, value[key]]));
428
+ }
429
+ function isObject(value) {
430
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
431
+ }
432
+ function toKernelStep(step) {
433
+ const common = {
434
+ id: step.id,
435
+ depends_on: step.dependsOn ?? [],
436
+ max_iterations: step.maxIterations ?? 1,
437
+ retry: { ...KERNEL_RETRY_DEFAULTS },
438
+ verification: toKernelVerification(step),
439
+ };
440
+ switch (step.type) {
441
+ case 'deterministic':
442
+ return {
443
+ ...common,
444
+ type: 'deterministic',
445
+ command: step.command,
446
+ ...(step.timeoutMs !== undefined ? { timeout_ms: step.timeoutMs } : {}),
447
+ };
448
+ case 'llm': {
449
+ return {
450
+ ...common,
451
+ type: 'llm',
452
+ prompt: step.prompt,
453
+ ...(step.model !== undefined ? { model: step.model } : {}),
454
+ ...(step.cli !== undefined ? { cli: step.cli } : {}),
455
+ };
456
+ }
457
+ case 'agent': {
458
+ const out = {
459
+ ...common,
460
+ type: 'agent',
461
+ instruction: step.instruction,
462
+ ...(step.cli !== undefined ? { cli: step.cli } : {}),
463
+ ...(step.model !== undefined ? { model: step.model } : {}),
464
+ recovery_mode: step.recoveryMode ?? 'reset',
465
+ };
466
+ const surfaces = {
467
+ ...(step.surfaces?.workspace?.length ? { workspace: step.surfaces.workspace.map((w) => ({ surface: w.surface })) } : {}),
468
+ ...(step.surfaces?.streams?.length ? { streams: step.surfaces.streams.map((s) => ({ stream: s.stream })) } : {}),
469
+ ...(step.surfaces?.external?.length ? { external: step.surfaces.external } : {}),
470
+ };
471
+ if (Object.keys(surfaces).length > 0)
472
+ out.surfaces = surfaces;
473
+ if (step.permissions !== undefined) {
474
+ out.permissions = {
475
+ ...(step.permissions.fileGlobs !== undefined ? { file_globs: step.permissions.fileGlobs } : {}),
476
+ ...(step.permissions.networkAllowlist !== undefined ? { network_allowlist: step.permissions.networkAllowlist } : {}),
477
+ ...(step.permissions.accessPreset !== undefined ? { access_preset: step.permissions.accessPreset } : {}),
478
+ };
479
+ }
480
+ return out;
481
+ }
482
+ }
483
+ }
484
+ function toKernelVerification(step) {
485
+ const output = step.type === 'deterministic' ? undefined : step.output;
486
+ if (output !== undefined) {
487
+ const errors = validateOutputDeclaration(step, `step "${step.id}"`);
488
+ if (errors.length > 0)
489
+ throw new CompileError(errors);
490
+ return { json_schema: output };
491
+ }
492
+ const gate = step.verification;
493
+ // Validation permits explicit exit_code only on deterministic steps, where
494
+ // {} selects the kernel's implicit exit_code == 0 gate (DESIGN.md §4).
495
+ if (gate === undefined || gate.type === 'exit_code')
496
+ return {};
497
+ if (gate.type === 'output_contains')
498
+ return { output_contains: gate.value };
499
+ if (gate.type === 'json_schema')
500
+ return { json_schema: gate.schema };
501
+ throw new CompileError([
502
+ `step "${step.id}".verification.type: expected exit_code | output_contains | json_schema`,
503
+ ]);
504
+ }
505
+ /**
506
+ * Compile + hash in one call. `hash` is sha256 of the kernel-dialect canonical
507
+ * JSON — the spec identity the kernel stamps as `spec_hash` in `run.spawned`.
508
+ */
509
+ export function compileAndHash(yaml) {
510
+ const spec = compileYaml(yaml);
511
+ const kernelSpec = toKernelSpec(spec);
512
+ return { spec, kernelSpec, hash: specHash(kernelSpec) };
513
+ }
514
+ export { SPEC_SCHEMA_VERSION, canonicalize, specHash };
515
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yEAAyE;AACzE,0CAA0C;AAC1C,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAC7E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,wEAAwE;AACxE,qEAAqE;AACrE,yEAAyE;AAEzE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAmB1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAyB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,MAAM,CAAW;IAC1B,YAAY,MAAgB;QAC1B,KAAK,CAAC,4BAA4B,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,YAAY,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC;YACrB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAqB,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,QAAoB,CAAC;IACnC,6EAA6E;IAC7E,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAa;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,6EAA6E;QAC7E,8EAA8E;QAC9E,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,aAAa;KACd,CAAC;IAEF,QAAQ,IAAI,CAAC,IAAgB,EAAE,CAAC;QAC9B,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,IAA6B,CAAC;YACxC,wEAAwE;YACxE,yEAAyE;YACzE,gEAAgE;YAChE,yEAAyE;YACzE,0EAA0E;YAC1E,yEAAyE;YACzE,kEAAkE;YAClE,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,YAAY,EAAE,YAAY,IAAI,EAAE,IAAI,EAAE,WAAoB,EAAE;gBAC5D,oEAAoE;gBACpE,wEAAwE;gBACxE,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC;QACJ,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,GAAG,IAAmB,CAAC;YAC9B,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,uEAAuE;gBACvE,uEAAuE;gBACvE,iBAAiB;gBACjB,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,IAAqB,CAAC;YAChC,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC;YAC/C,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,YAAY;gBACZ,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC;QACJ,CAAC;QACD;YACE,gDAAgD;YAChD,MAAM,IAAI,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,oBAAoB,MAAM,CAAE,IAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAsB,EAAE,MAAc;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,YAAY,CAAC;YACrB,SAAS,MAAM,uDAAuD;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAc;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,IAAc,EACd,MAAkD;IAElD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,YAAY,CAAC;YACrB,SAAS,IAAI,CAAC,EAAE,2BAA2B,IAAI,CAAC,KAAK,GAAG;SACzD,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,6EAA6E;AAC7E,MAAM,qBAAqB,GAAG;IAC5B,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,EAAE;CACV,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,yEAAyE;QACzE,yEAAyE;QACzE,6EAA6E;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3F,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC/B,CAAC,CAAC;gBACE,MAAM,EAAE;oBACN,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjG;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC;YACrB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAC9B,QAAQ,EACR,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EACxE,MAAM,CACP,CAAC;IACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;SAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO;QACL,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC/D,GAAG,CAAC,QAAQ,KAAK,SAAS;YACxB,CAAC,CAAC;gBACE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC;qBACpD,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,CAAC,CAAC;aACzF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,KAAK;QACL,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE;YACpE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,eAAe,CAAC,OAAoB;IAC3C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,wBAAwB,CAAC,KAAc,EAAE,EAAU;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CACjC,KAAK,EACL,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EACpF,EAAE,CACH,CAAC;IACF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAC7B,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE;YACvD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,EAAU;IACvD,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc;QACrE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa;QAChE,eAAe,EAAE,UAAU,EAAE,aAAa;KAClC,CAAC;IACX,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAU,CAAC;IACpG,MAAM,QAAQ,GAAG,IAAI,KAAK,eAAe;QACvC,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAU;QACpC,CAAC,CAAC,IAAI,KAAK,KAAK;YACd,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAU;YACrC,CAAC,CAAC,IAAI,KAAK,OAAO;gBAChB,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,CAAU;gBACtF,CAAC,CAAC,EAAE,CAAC;IACX,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;QAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;QACd,IAAI;QACJ,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAChF,CAAC,CAAC,EAAE,SAAS,EAAE;YACf,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC;KACnF,CAAC;IACF,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO;YACL,GAAG,MAAM;YACT,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;IACvF,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE,WAAW,EAAE,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE;gBACzF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,EAAU;IACrD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE;QACvC,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB;KACvE,EAAE,EAAE,CAAC,CAAC;IACP,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,YAAY,CAAC;gBACrB,GAAG,EAAE,IAAI,KAAK,qCAAqC,QAAQ,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAa,EACb,KAAc,EACd,EAAU;IAEV,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/F,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;IAC/F,CAAC;IACD,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc,EAAE,EAAU;IACzD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc,EAAE,EAAU;IAC9D,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;IACzG,OAAO;QACL,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtG,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc,EACd,OAA0B,EAC1B,EAAU;IAEV,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA8B,EAC9B,OAA0B,EAC1B,EAAU;IAEV,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CAAC;YACrB,GAAG,EAAE,aAAa,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;SAClJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,EAAU;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B,EAAE,IAAuB;IAC1E,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,MAAM,GAAqB;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAChC,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;QACvC,KAAK,EAAE,EAAE,GAAG,qBAAqB,EAAE;QACnC,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC;KACzC,CAAC;IACF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAoB;gBAC3B,GAAG,MAAM;gBACT,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,aAAa,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO;aAC5C,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjF,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC9D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,GAAG,CAAC,WAAW,GAAG;oBAChB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/F,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpH,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzG,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/B,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrE,MAAM,IAAI,YAAY,CAAC;QACrB,SAAS,IAAI,CAAC,EAAE,yEAAyE;KAC1F,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=demo-hn-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-hn-monitor.d.ts","sourceRoot":"","sources":["../src/demo-hn-monitor.ts"],"names":[],"mappings":""}