lorenz 0.1.5 → 0.1.6

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 (247) hide show
  1. package/README.md +83 -20
  2. package/RELEASE-MANIFEST.json +6 -1
  3. package/node_modules/@lorenz/agent-sdk/dist/index.d.ts +1 -0
  4. package/node_modules/@lorenz/agent-sdk/dist/index.d.ts.map +1 -1
  5. package/node_modules/@lorenz/agent-sdk/dist/index.js +1 -0
  6. package/node_modules/@lorenz/agent-sdk/dist/index.js.map +1 -1
  7. package/node_modules/@lorenz/agent-sdk/dist/module.d.ts +38 -0
  8. package/node_modules/@lorenz/agent-sdk/dist/module.d.ts.map +1 -0
  9. package/node_modules/@lorenz/agent-sdk/dist/module.js +41 -0
  10. package/node_modules/@lorenz/agent-sdk/dist/module.js.map +1 -0
  11. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.d.ts +30 -0
  12. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.d.ts.map +1 -0
  13. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.js +63 -0
  14. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.js.map +1 -0
  15. package/node_modules/@lorenz/cli/dist/daemon.d.ts +42 -19
  16. package/node_modules/@lorenz/cli/dist/daemon.d.ts.map +1 -1
  17. package/node_modules/@lorenz/cli/dist/daemon.js +72 -23
  18. package/node_modules/@lorenz/cli/dist/daemon.js.map +1 -1
  19. package/node_modules/@lorenz/cli/dist/daemonLock.d.ts +59 -0
  20. package/node_modules/@lorenz/cli/dist/daemonLock.d.ts.map +1 -0
  21. package/node_modules/@lorenz/cli/dist/daemonLock.js +304 -0
  22. package/node_modules/@lorenz/cli/dist/daemonLock.js.map +1 -0
  23. package/node_modules/@lorenz/cli/dist/daemonStatus.d.ts +16 -0
  24. package/node_modules/@lorenz/cli/dist/daemonStatus.d.ts.map +1 -0
  25. package/node_modules/@lorenz/cli/dist/daemonStatus.js +21 -0
  26. package/node_modules/@lorenz/cli/dist/daemonStatus.js.map +1 -0
  27. package/node_modules/@lorenz/cli/dist/doctor.d.ts +6 -0
  28. package/node_modules/@lorenz/cli/dist/doctor.d.ts.map +1 -1
  29. package/node_modules/@lorenz/cli/dist/doctor.js +38 -1
  30. package/node_modules/@lorenz/cli/dist/doctor.js.map +1 -1
  31. package/node_modules/@lorenz/cli/dist/extensionLoader.d.ts +126 -0
  32. package/node_modules/@lorenz/cli/dist/extensionLoader.d.ts.map +1 -0
  33. package/node_modules/@lorenz/cli/dist/extensionLoader.js +187 -0
  34. package/node_modules/@lorenz/cli/dist/extensionLoader.js.map +1 -0
  35. package/node_modules/@lorenz/cli/dist/flags-manifest.d.ts +42 -0
  36. package/node_modules/@lorenz/cli/dist/flags-manifest.d.ts.map +1 -0
  37. package/node_modules/@lorenz/cli/dist/flags-manifest.js +67 -0
  38. package/node_modules/@lorenz/cli/dist/flags-manifest.js.map +1 -0
  39. package/node_modules/@lorenz/cli/dist/index.d.ts +6 -0
  40. package/node_modules/@lorenz/cli/dist/index.d.ts.map +1 -1
  41. package/node_modules/@lorenz/cli/dist/index.js +4 -0
  42. package/node_modules/@lorenz/cli/dist/index.js.map +1 -1
  43. package/node_modules/@lorenz/cli/dist/leadershipStore.d.ts +42 -0
  44. package/node_modules/@lorenz/cli/dist/leadershipStore.d.ts.map +1 -0
  45. package/node_modules/@lorenz/cli/dist/leadershipStore.js +2 -0
  46. package/node_modules/@lorenz/cli/dist/leadershipStore.js.map +1 -0
  47. package/node_modules/@lorenz/cli/dist/main.d.ts +11 -7
  48. package/node_modules/@lorenz/cli/dist/main.d.ts.map +1 -1
  49. package/node_modules/@lorenz/cli/dist/main.js +58 -8
  50. package/node_modules/@lorenz/cli/dist/main.js.map +1 -1
  51. package/node_modules/@lorenz/cli/dist/toolLoader.d.ts +28 -0
  52. package/node_modules/@lorenz/cli/dist/toolLoader.d.ts.map +1 -0
  53. package/node_modules/@lorenz/cli/dist/toolLoader.js +62 -0
  54. package/node_modules/@lorenz/cli/dist/toolLoader.js.map +1 -0
  55. package/node_modules/@lorenz/cli/dist/trackerLoader.d.ts +24 -0
  56. package/node_modules/@lorenz/cli/dist/trackerLoader.d.ts.map +1 -0
  57. package/node_modules/@lorenz/cli/dist/trackerLoader.js +34 -0
  58. package/node_modules/@lorenz/cli/dist/trackerLoader.js.map +1 -0
  59. package/node_modules/@lorenz/cli/dist/workerDriverLoader.d.ts +15 -55
  60. package/node_modules/@lorenz/cli/dist/workerDriverLoader.d.ts.map +1 -1
  61. package/node_modules/@lorenz/cli/dist/workerDriverLoader.js +26 -203
  62. package/node_modules/@lorenz/cli/dist/workerDriverLoader.js.map +1 -1
  63. package/node_modules/@lorenz/cli/package.json +1 -0
  64. package/node_modules/@lorenz/config/dist/index.d.ts +1 -1
  65. package/node_modules/@lorenz/config/dist/index.d.ts.map +1 -1
  66. package/node_modules/@lorenz/config/dist/index.js +1 -1
  67. package/node_modules/@lorenz/config/dist/index.js.map +1 -1
  68. package/node_modules/@lorenz/config/dist/parse.d.ts +17 -0
  69. package/node_modules/@lorenz/config/dist/parse.d.ts.map +1 -1
  70. package/node_modules/@lorenz/config/dist/parse.js +107 -11
  71. package/node_modules/@lorenz/config/dist/parse.js.map +1 -1
  72. package/node_modules/@lorenz/config/dist/schemas.d.ts +0 -2
  73. package/node_modules/@lorenz/config/dist/schemas.d.ts.map +1 -1
  74. package/node_modules/@lorenz/config/dist/schemas.js +5 -1
  75. package/node_modules/@lorenz/config/dist/schemas.js.map +1 -1
  76. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.d.ts +55 -21
  77. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.d.ts.map +1 -1
  78. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.js +187 -82
  79. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.js.map +1 -1
  80. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.d.ts +6 -4
  81. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.d.ts.map +1 -1
  82. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.js +9 -6
  83. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.js.map +1 -1
  84. package/node_modules/@lorenz/dispatch-coordinator/dist/index.d.ts +1 -1
  85. package/node_modules/@lorenz/dispatch-coordinator/dist/index.d.ts.map +1 -1
  86. package/node_modules/@lorenz/dispatch-coordinator/dist/index.js +5 -6
  87. package/node_modules/@lorenz/dispatch-coordinator/dist/index.js.map +1 -1
  88. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.d.ts +7 -5
  89. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.d.ts.map +1 -1
  90. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.js +12 -10
  91. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.js.map +1 -1
  92. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.d.ts +11 -10
  93. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.d.ts.map +1 -1
  94. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.js +15 -22
  95. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.js.map +1 -1
  96. package/node_modules/@lorenz/dispatch-coordinator/dist/types.d.ts +16 -15
  97. package/node_modules/@lorenz/dispatch-coordinator/dist/types.d.ts.map +1 -1
  98. package/node_modules/@lorenz/dispatch-coordinator/dist/types.js +6 -7
  99. package/node_modules/@lorenz/dispatch-coordinator/dist/types.js.map +1 -1
  100. package/node_modules/@lorenz/domain/dist/index.d.ts +75 -9
  101. package/node_modules/@lorenz/domain/dist/index.d.ts.map +1 -1
  102. package/node_modules/@lorenz/domain/dist/index.js +40 -0
  103. package/node_modules/@lorenz/domain/dist/index.js.map +1 -1
  104. package/node_modules/@lorenz/flags/dist/coerce.d.ts +12 -0
  105. package/node_modules/@lorenz/flags/dist/coerce.d.ts.map +1 -0
  106. package/node_modules/@lorenz/flags/dist/coerce.js +44 -0
  107. package/node_modules/@lorenz/flags/dist/coerce.js.map +1 -0
  108. package/node_modules/@lorenz/flags/dist/default.d.ts +6 -0
  109. package/node_modules/@lorenz/flags/dist/default.d.ts.map +1 -0
  110. package/node_modules/@lorenz/flags/dist/default.js +22 -0
  111. package/node_modules/@lorenz/flags/dist/default.js.map +1 -0
  112. package/node_modules/@lorenz/flags/dist/deprecations.d.ts +20 -0
  113. package/node_modules/@lorenz/flags/dist/deprecations.d.ts.map +1 -0
  114. package/node_modules/@lorenz/flags/dist/deprecations.js +42 -0
  115. package/node_modules/@lorenz/flags/dist/deprecations.js.map +1 -0
  116. package/node_modules/@lorenz/flags/dist/env.d.ts +17 -0
  117. package/node_modules/@lorenz/flags/dist/env.d.ts.map +1 -0
  118. package/node_modules/@lorenz/flags/dist/env.js +90 -0
  119. package/node_modules/@lorenz/flags/dist/env.js.map +1 -0
  120. package/node_modules/@lorenz/flags/dist/errors.d.ts +22 -0
  121. package/node_modules/@lorenz/flags/dist/errors.d.ts.map +1 -0
  122. package/node_modules/@lorenz/flags/dist/errors.js +61 -0
  123. package/node_modules/@lorenz/flags/dist/errors.js.map +1 -0
  124. package/node_modules/@lorenz/flags/dist/index.d.ts +8 -0
  125. package/node_modules/@lorenz/flags/dist/index.d.ts.map +1 -0
  126. package/node_modules/@lorenz/flags/dist/index.js +11 -0
  127. package/node_modules/@lorenz/flags/dist/index.js.map +1 -0
  128. package/node_modules/@lorenz/flags/dist/keys.d.ts +6 -0
  129. package/node_modules/@lorenz/flags/dist/keys.d.ts.map +1 -0
  130. package/node_modules/@lorenz/flags/dist/keys.js +15 -0
  131. package/node_modules/@lorenz/flags/dist/keys.js.map +1 -0
  132. package/node_modules/@lorenz/flags/dist/layers.d.ts +14 -0
  133. package/node_modules/@lorenz/flags/dist/layers.d.ts.map +1 -0
  134. package/node_modules/@lorenz/flags/dist/layers.js +107 -0
  135. package/node_modules/@lorenz/flags/dist/layers.js.map +1 -0
  136. package/node_modules/@lorenz/flags/dist/manifest.d.ts +71 -0
  137. package/node_modules/@lorenz/flags/dist/manifest.d.ts.map +1 -0
  138. package/node_modules/@lorenz/flags/dist/manifest.js +137 -0
  139. package/node_modules/@lorenz/flags/dist/manifest.js.map +1 -0
  140. package/node_modules/@lorenz/flags/dist/resolve.d.ts +8 -0
  141. package/node_modules/@lorenz/flags/dist/resolve.d.ts.map +1 -0
  142. package/node_modules/@lorenz/flags/dist/resolve.js +178 -0
  143. package/node_modules/@lorenz/flags/dist/resolve.js.map +1 -0
  144. package/node_modules/@lorenz/flags/dist/testing.d.ts +19 -0
  145. package/node_modules/@lorenz/flags/dist/testing.d.ts.map +1 -0
  146. package/node_modules/@lorenz/flags/dist/testing.js +68 -0
  147. package/node_modules/@lorenz/flags/dist/testing.js.map +1 -0
  148. package/node_modules/@lorenz/flags/dist/types.d.ts +93 -0
  149. package/node_modules/@lorenz/flags/dist/types.d.ts.map +1 -0
  150. package/node_modules/@lorenz/flags/dist/types.js +2 -0
  151. package/node_modules/@lorenz/flags/dist/types.js.map +1 -0
  152. package/node_modules/@lorenz/flags/package.json +16 -0
  153. package/node_modules/@lorenz/mcp/dist/agentEndpoint.d.ts +16 -3
  154. package/node_modules/@lorenz/mcp/dist/agentEndpoint.d.ts.map +1 -1
  155. package/node_modules/@lorenz/mcp/dist/agentEndpoint.js +105 -17
  156. package/node_modules/@lorenz/mcp/dist/agentEndpoint.js.map +1 -1
  157. package/node_modules/@lorenz/mcp/dist/auth.d.ts +88 -0
  158. package/node_modules/@lorenz/mcp/dist/auth.d.ts.map +1 -1
  159. package/node_modules/@lorenz/mcp/dist/auth.js +53 -0
  160. package/node_modules/@lorenz/mcp/dist/auth.js.map +1 -1
  161. package/node_modules/@lorenz/mcp/dist/index.d.ts +3 -2
  162. package/node_modules/@lorenz/mcp/dist/index.d.ts.map +1 -1
  163. package/node_modules/@lorenz/mcp/dist/index.js +1 -1
  164. package/node_modules/@lorenz/mcp/dist/index.js.map +1 -1
  165. package/node_modules/@lorenz/mcp/dist/server.d.ts +22 -0
  166. package/node_modules/@lorenz/mcp/dist/server.d.ts.map +1 -1
  167. package/node_modules/@lorenz/mcp/dist/server.js +85 -12
  168. package/node_modules/@lorenz/mcp/dist/server.js.map +1 -1
  169. package/node_modules/@lorenz/orchestrator/dist/claimStore.d.ts +157 -0
  170. package/node_modules/@lorenz/orchestrator/dist/claimStore.d.ts.map +1 -0
  171. package/node_modules/@lorenz/orchestrator/dist/claimStore.js +621 -0
  172. package/node_modules/@lorenz/orchestrator/dist/claimStore.js.map +1 -0
  173. package/node_modules/@lorenz/orchestrator/dist/codec.d.ts +38 -0
  174. package/node_modules/@lorenz/orchestrator/dist/codec.d.ts.map +1 -0
  175. package/node_modules/@lorenz/orchestrator/dist/codec.js +176 -0
  176. package/node_modules/@lorenz/orchestrator/dist/codec.js.map +1 -0
  177. package/node_modules/@lorenz/orchestrator/dist/index.d.ts +55 -51
  178. package/node_modules/@lorenz/orchestrator/dist/index.d.ts.map +1 -1
  179. package/node_modules/@lorenz/orchestrator/dist/index.js +285 -45
  180. package/node_modules/@lorenz/orchestrator/dist/index.js.map +1 -1
  181. package/node_modules/@lorenz/orchestrator/dist/sqlite.d.ts +34 -0
  182. package/node_modules/@lorenz/orchestrator/dist/sqlite.d.ts.map +1 -0
  183. package/node_modules/@lorenz/orchestrator/dist/sqlite.js +142 -0
  184. package/node_modules/@lorenz/orchestrator/dist/sqlite.js.map +1 -0
  185. package/node_modules/@lorenz/orchestrator/dist/state.d.ts +47 -0
  186. package/node_modules/@lorenz/orchestrator/dist/state.d.ts.map +1 -0
  187. package/node_modules/@lorenz/orchestrator/dist/state.js +15 -0
  188. package/node_modules/@lorenz/orchestrator/dist/state.js.map +1 -0
  189. package/node_modules/@lorenz/orchestrator/dist/turso.d.ts +28 -0
  190. package/node_modules/@lorenz/orchestrator/dist/turso.d.ts.map +1 -0
  191. package/node_modules/@lorenz/orchestrator/dist/turso.js +125 -0
  192. package/node_modules/@lorenz/orchestrator/dist/turso.js.map +1 -0
  193. package/node_modules/@lorenz/orchestrator/package.json +6 -2
  194. package/node_modules/@lorenz/presenter/dist/index.d.ts +14 -0
  195. package/node_modules/@lorenz/presenter/dist/index.d.ts.map +1 -1
  196. package/node_modules/@lorenz/presenter/dist/index.js +18 -0
  197. package/node_modules/@lorenz/presenter/dist/index.js.map +1 -1
  198. package/node_modules/@lorenz/projections/dist/index.d.ts.map +1 -1
  199. package/node_modules/@lorenz/projections/dist/index.js +1 -0
  200. package/node_modules/@lorenz/projections/dist/index.js.map +1 -1
  201. package/node_modules/@lorenz/runtime/dist/index.d.ts +27 -8
  202. package/node_modules/@lorenz/runtime/dist/index.d.ts.map +1 -1
  203. package/node_modules/@lorenz/runtime/dist/index.js +422 -98
  204. package/node_modules/@lorenz/runtime/dist/index.js.map +1 -1
  205. package/node_modules/@lorenz/runtime-events/dist/index.d.ts +14 -0
  206. package/node_modules/@lorenz/runtime-events/dist/index.d.ts.map +1 -1
  207. package/node_modules/@lorenz/ssh/dist/index.d.ts +2 -0
  208. package/node_modules/@lorenz/ssh/dist/index.d.ts.map +1 -1
  209. package/node_modules/@lorenz/ssh/dist/index.js +2 -1
  210. package/node_modules/@lorenz/ssh/dist/index.js.map +1 -1
  211. package/node_modules/@lorenz/tool-sdk/dist/index.d.ts +1 -0
  212. package/node_modules/@lorenz/tool-sdk/dist/index.d.ts.map +1 -1
  213. package/node_modules/@lorenz/tool-sdk/dist/index.js +1 -0
  214. package/node_modules/@lorenz/tool-sdk/dist/index.js.map +1 -1
  215. package/node_modules/@lorenz/tool-sdk/dist/module.d.ts +38 -0
  216. package/node_modules/@lorenz/tool-sdk/dist/module.d.ts.map +1 -0
  217. package/node_modules/@lorenz/tool-sdk/dist/module.js +42 -0
  218. package/node_modules/@lorenz/tool-sdk/dist/module.js.map +1 -0
  219. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts +1 -0
  220. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts.map +1 -1
  221. package/node_modules/@lorenz/tracker-sdk/dist/index.js +1 -0
  222. package/node_modules/@lorenz/tracker-sdk/dist/index.js.map +1 -1
  223. package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts +37 -0
  224. package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts.map +1 -0
  225. package/node_modules/@lorenz/tracker-sdk/dist/module.js +38 -0
  226. package/node_modules/@lorenz/tracker-sdk/dist/module.js.map +1 -0
  227. package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts +34 -6
  228. package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts.map +1 -1
  229. package/node_modules/@lorenz/worker-host-pool/dist/index.js +110 -143
  230. package/node_modules/@lorenz/worker-host-pool/dist/index.js.map +1 -1
  231. package/node_modules/@lorenz/worker-sdk/dist/index.d.ts +1 -0
  232. package/node_modules/@lorenz/worker-sdk/dist/index.d.ts.map +1 -1
  233. package/node_modules/@lorenz/worker-sdk/dist/index.js +1 -0
  234. package/node_modules/@lorenz/worker-sdk/dist/index.js.map +1 -1
  235. package/node_modules/@lorenz/worker-sdk/dist/local.d.ts +74 -0
  236. package/node_modules/@lorenz/worker-sdk/dist/local.d.ts.map +1 -0
  237. package/node_modules/@lorenz/worker-sdk/dist/local.js +112 -0
  238. package/node_modules/@lorenz/worker-sdk/dist/local.js.map +1 -0
  239. package/node_modules/@lorenz/worker-sdk/dist/module.d.ts +8 -16
  240. package/node_modules/@lorenz/worker-sdk/dist/module.d.ts.map +1 -1
  241. package/node_modules/@lorenz/worker-sdk/dist/module.js +15 -35
  242. package/node_modules/@lorenz/worker-sdk/dist/module.js.map +1 -1
  243. package/node_modules/@lorenz/workflow/dist/index.d.ts +11 -0
  244. package/node_modules/@lorenz/workflow/dist/index.d.ts.map +1 -1
  245. package/node_modules/@lorenz/workflow/dist/index.js +3 -0
  246. package/node_modules/@lorenz/workflow/dist/index.js.map +1 -1
  247. package/package.json +4 -1
@@ -0,0 +1,38 @@
1
+ import type { DispatchBlockEntry, RetryEntry, RunningEntry } from "@lorenz/domain";
2
+ import { type OrchestratorState, type ReservationRecord } from "./state.js";
3
+ export declare const CLAIM_STORE_SNAPSHOT_VERSION = 1;
4
+ export interface SerializedRunningEntry extends Omit<RunningEntry, "startedAt" | "lastAgentTimestamp"> {
5
+ startedAt: string;
6
+ lastAgentTimestamp?: string | null | undefined;
7
+ }
8
+ export interface SerializedReservationRecord extends Omit<ReservationRecord, "reservedAt" | "expiresAt" | "consumedRetry"> {
9
+ reservedAt: string;
10
+ expiresAt?: string | undefined;
11
+ consumedRetry: {
12
+ key: string;
13
+ entry: RetryEntry;
14
+ } | null;
15
+ }
16
+ export interface SerializedOrchestratorState {
17
+ version: typeof CLAIM_STORE_SNAPSHOT_VERSION;
18
+ running: Array<[string, SerializedRunningEntry]>;
19
+ reserved: Array<[string, SerializedReservationRecord]>;
20
+ claimed: string[];
21
+ claimOwners?: Array<[string, string]> | undefined;
22
+ retryAttempts: Array<[string, RetryEntry]>;
23
+ completed: string[];
24
+ usageTotals: OrchestratorState["usageTotals"];
25
+ usageDeltaBases?: Array<[string, OrchestratorState["usageTotals"]]> | undefined;
26
+ rateLimits: unknown;
27
+ blockedDispatches: DispatchBlockEntry[];
28
+ }
29
+ export interface HydrateStateOptions {
30
+ now?: Date | undefined;
31
+ monotonicNowMs?: number | undefined;
32
+ runningRecovery?: "abandon" | "preserve" | undefined;
33
+ reservationRecovery?: "abandon" | "preserve" | undefined;
34
+ fallbackClaimOwnerId?: string | undefined;
35
+ }
36
+ export declare function serializeState(state: OrchestratorState): SerializedOrchestratorState;
37
+ export declare function hydrateState(snapshot: SerializedOrchestratorState, options?: HydrateStateOptions): OrchestratorState;
38
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAS,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAe,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEzF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,YAAY,EACZ,WAAW,GAAG,oBAAoB,CACnC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,iBAAiB,EACjB,YAAY,GAAG,WAAW,GAAG,eAAe,CAC7C;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,4BAA4B,CAAC;IAC7C,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACjD,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAClD,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,mBAAmB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,2BAA2B,CAuBpF;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,mBAAwB,GAChC,iBAAiB,CA0DnB"}
@@ -0,0 +1,176 @@
1
+ import { createState } from "./state.js";
2
+ export const CLAIM_STORE_SNAPSHOT_VERSION = 1;
3
+ export function serializeState(state) {
4
+ return {
5
+ version: CLAIM_STORE_SNAPSHOT_VERSION,
6
+ running: [...state.running.entries()].map(([key, entry]) => [
7
+ key,
8
+ serializeRunningEntry(entry),
9
+ ]),
10
+ reserved: [...state.reserved.entries()].map(([key, record]) => [
11
+ key,
12
+ serializeReservationRecord(record),
13
+ ]),
14
+ claimed: [...state.claimed],
15
+ claimOwners: [...state.claimOwners.entries()],
16
+ retryAttempts: [...state.retryAttempts.entries()].map(([key, retry]) => [key, { ...retry }]),
17
+ completed: [...state.completed],
18
+ usageTotals: { ...state.usageTotals },
19
+ usageDeltaBases: [...state.usageDeltaBases.entries()].map(([key, value]) => [
20
+ key,
21
+ { ...value },
22
+ ]),
23
+ rateLimits: cloneJsonValue(state.rateLimits),
24
+ blockedDispatches: state.blockedDispatches.map((entry) => ({ ...entry })),
25
+ };
26
+ }
27
+ export function hydrateState(snapshot, options = {}) {
28
+ if (snapshot.version !== CLAIM_STORE_SNAPSHOT_VERSION) {
29
+ throw new Error(`unsupported_claim_store_snapshot_version:${String(snapshot.version)}`);
30
+ }
31
+ const state = createState();
32
+ const abandonedRunningKeys = new Set();
33
+ const abandonedRunningEntries = [];
34
+ if (options.runningRecovery === "preserve") {
35
+ state.running = new Map(snapshot.running.map(([key, entry]) => [key, hydrateRunningEntry(entry)]));
36
+ }
37
+ else {
38
+ for (const [key, entry] of snapshot.running) {
39
+ abandonedRunningKeys.add(key);
40
+ abandonedRunningEntries.push([key, entry]);
41
+ }
42
+ }
43
+ state.retryAttempts = new Map(snapshot.retryAttempts.map(([key, retry]) => [key, hydrateRetryEntry(retry, options)]));
44
+ for (const [key, entry] of abandonedRunningEntries) {
45
+ if (entry.retryAttempt === null || state.retryAttempts.has(key))
46
+ continue;
47
+ state.retryAttempts.set(key, retryEntryFromAbandonedRunningEntry(entry, options));
48
+ }
49
+ const serializedClaimOwners = new Map(snapshot.claimOwners ?? []);
50
+ if (options.reservationRecovery === "preserve") {
51
+ state.reserved = new Map(snapshot.reserved.map(([key, record]) => [key, hydrateReservationRecord(record, options)]));
52
+ state.claimed = new Set(snapshot.claimed.filter((key) => !abandonedRunningKeys.has(key)));
53
+ }
54
+ else {
55
+ const abandonedReservationKeys = new Set(snapshot.reserved.map(([key]) => key));
56
+ state.claimed = new Set(snapshot.claimed.filter((key) => !abandonedReservationKeys.has(key) && !abandonedRunningKeys.has(key)));
57
+ for (const [, record] of snapshot.reserved) {
58
+ const consumed = record.consumedRetry;
59
+ if (consumed && !state.retryAttempts.has(consumed.key)) {
60
+ state.retryAttempts.set(consumed.key, hydrateRetryEntry(consumed.entry, options));
61
+ }
62
+ }
63
+ }
64
+ for (const key of state.claimed) {
65
+ const ownerId = serializedClaimOwners.get(key) ?? options.fallbackClaimOwnerId;
66
+ if (ownerId)
67
+ state.claimOwners.set(key, ownerId);
68
+ }
69
+ state.completed = new Set(snapshot.completed);
70
+ state.usageTotals = { ...snapshot.usageTotals };
71
+ state.usageDeltaBases = new Map((snapshot.usageDeltaBases ?? []).map(([key, value]) => [key, { ...value }]));
72
+ state.rateLimits = cloneJsonValue(snapshot.rateLimits);
73
+ state.blockedDispatches = snapshot.blockedDispatches.map((entry) => ({ ...entry }));
74
+ return state;
75
+ }
76
+ function serializeRunningEntry(entry) {
77
+ return {
78
+ issue: cloneIssue(entry.issue),
79
+ identifier: entry.identifier,
80
+ slotIndex: entry.slotIndex,
81
+ ensembleSize: entry.ensembleSize,
82
+ agentKind: entry.agentKind,
83
+ workerHost: entry.workerHost,
84
+ workspacePath: entry.workspacePath,
85
+ turnCount: entry.turnCount,
86
+ usageTotals: { ...entry.usageTotals },
87
+ lastReportedInputTokens: entry.lastReportedInputTokens,
88
+ lastReportedOutputTokens: entry.lastReportedOutputTokens,
89
+ lastReportedTotalTokens: entry.lastReportedTotalTokens,
90
+ lastAgentEvent: entry.lastAgentEvent ?? null,
91
+ startedAt: entry.startedAt.toISOString(),
92
+ lastAgentTimestamp: entry.lastAgentTimestamp?.toISOString() ?? null,
93
+ retryAttempt: entry.retryAttempt,
94
+ };
95
+ }
96
+ function hydrateRunningEntry(entry) {
97
+ return {
98
+ ...entry,
99
+ issue: cloneIssue(entry.issue),
100
+ usageTotals: { ...entry.usageTotals },
101
+ startedAt: new Date(entry.startedAt),
102
+ lastAgentTimestamp: entry.lastAgentTimestamp ? new Date(entry.lastAgentTimestamp) : null,
103
+ };
104
+ }
105
+ function serializeReservationRecord(record) {
106
+ return {
107
+ ...record,
108
+ issue: cloneIssue(record.issue),
109
+ reservedAt: record.reservedAt.toISOString(),
110
+ expiresAt: record.expiresAt.toISOString(),
111
+ consumedRetry: record.consumedRetry
112
+ ? { key: record.consumedRetry.key, entry: { ...record.consumedRetry.entry } }
113
+ : null,
114
+ };
115
+ }
116
+ function hydrateReservationRecord(record, options) {
117
+ const expiresAt = new Date(record.expiresAt ?? record.reservedAt);
118
+ return {
119
+ ...record,
120
+ issue: cloneIssue(record.issue),
121
+ reservedAt: new Date(record.reservedAt),
122
+ expiresAt,
123
+ expiresAtMonotonicMs: hydrateMonotonicDeadline(expiresAt.toISOString(), record.expiresAtMonotonicMs, options),
124
+ consumedRetry: record.consumedRetry
125
+ ? {
126
+ key: record.consumedRetry.key,
127
+ entry: hydrateRetryEntry(record.consumedRetry.entry, options),
128
+ }
129
+ : null,
130
+ };
131
+ }
132
+ function hydrateRetryEntry(retry, options) {
133
+ return {
134
+ ...retry,
135
+ monotonicDeadlineMs: hydrateMonotonicDeadline(retry.dueAtIso, retry.monotonicDeadlineMs, options),
136
+ };
137
+ }
138
+ function retryEntryFromAbandonedRunningEntry(entry, options) {
139
+ const now = options.now ?? new Date();
140
+ return {
141
+ issueId: entry.issue.id,
142
+ identifier: entry.identifier,
143
+ issueUrl: entry.issue.url ?? null,
144
+ attempt: entry.retryAttempt ?? 1,
145
+ monotonicDeadlineMs: options.monotonicNowMs ?? 0,
146
+ dueAtIso: now.toISOString(),
147
+ slotIndex: entry.slotIndex,
148
+ workerHost: entry.workerHost,
149
+ workspacePath: entry.workspacePath,
150
+ };
151
+ }
152
+ function hydrateMonotonicDeadline(dueAtIso, fallbackMonotonicDeadlineMs, options) {
153
+ const now = options.now;
154
+ const monotonicNowMs = options.monotonicNowMs;
155
+ if (!now || monotonicNowMs === undefined)
156
+ return fallbackMonotonicDeadlineMs;
157
+ const dueAtMs = Date.parse(dueAtIso);
158
+ if (!Number.isFinite(dueAtMs))
159
+ return fallbackMonotonicDeadlineMs;
160
+ return monotonicNowMs + Math.max(0, dueAtMs - now.getTime());
161
+ }
162
+ function cloneIssue(issue) {
163
+ const { raw, ...normalizedIssue } = issue;
164
+ void raw;
165
+ return {
166
+ ...normalizedIssue,
167
+ labels: [...issue.labels],
168
+ blockers: issue.blockers.map((blocker) => ({ ...blocker })),
169
+ };
170
+ }
171
+ function cloneJsonValue(value) {
172
+ if (value === undefined || value === null)
173
+ return value;
174
+ return JSON.parse(JSON.stringify(value));
175
+ }
176
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,9 @@
1
1
  import { type AgentKind, type AgentUpdate, type ClockPort, type DispatchBlockEntry, type Issue, type RetryEntry, type RunningEntry, type Settings, type UsageTotals } from "@lorenz/domain";
2
- /**
3
- * Internal record of a phase-1 slot hold while the dispatch coordinator negotiates capacity
4
- * asynchronously. Keyed by slotKey(issueId, slotIndex) in {@link OrchestratorState.reserved}.
5
- * Host-less by design: the orchestrator never stores a non-concrete worker host.
6
- */
7
- export interface ReservationRecord {
8
- /** Kept whole so per-state cap accounting (runningByState) works for reservations. */
9
- issue: Issue;
10
- slotIndex: number;
11
- /** Opaque per-reservation token; bind/cancel are no-ops on mismatch (ABA guard). */
12
- token: string;
13
- agentKind: AgentKind;
14
- ensembleSize: number;
15
- /** Prior run's concrete host from the consumed retry entry. */
16
- affinityHost: string | null;
17
- retryAttempt: number | null;
18
- reservedAt: Date;
19
- /** Defensive expiry, swept by {@link Orchestrator.eligibleIssues}. */
20
- expiresAtMonotonicMs: number;
21
- /** The due RetryEntry consumed at reserve time, kept so cancel can restore it. */
22
- consumedRetry: {
23
- key: string;
24
- entry: RetryEntry;
25
- } | null;
26
- }
27
- export interface OrchestratorState {
28
- running: Map<string, RunningEntry>;
29
- /** Phase-1 slot reservations; counted in EVERY concurrency-cap check. */
30
- reserved: Map<string, ReservationRecord>;
31
- /** Contains running AND reserved keys. */
32
- claimed: Set<string>;
33
- /** Retry entries keyed by slotKey(issueId, slotIndex). */
34
- retryAttempts: Map<string, RetryEntry>;
35
- completed: Set<string>;
36
- usageTotals: UsageTotals;
37
- rateLimits: unknown;
38
- blockedDispatches: DispatchBlockEntry[];
39
- }
40
- export declare function createState(): OrchestratorState;
2
+ import { type OrchestratorState } from "./state.js";
3
+ import { type ClaimStoreLike, type ClaimStoreStatus } from "./claimStore.js";
4
+ export { CLAIM_STORE_SNAPSHOT_VERSION, hydrateState, serializeState, type HydrateStateOptions, type SerializedOrchestratorState, type SerializedReservationRecord, type SerializedRunningEntry, } from "./codec.js";
5
+ export { createState, type OrchestratorState, type ReservationRecord } from "./state.js";
6
+ export { InMemoryClaimStore, PersistentClaimStore, AsyncPersistentClaimStore, isAsyncClaimStore, isClaimStore, isClaimStoreLike, type AsyncClaimStore, type AsyncClaimStoreBackend, type ClaimStore, type ClaimStoreBackend, type ClaimStoreCapabilities, type ClaimStoreCheckpoint, type ClaimStoreLike, type ClaimStoreOperation, type ClaimStoreStatus, } from "./claimStore.js";
41
7
  /**
42
8
  * Phase-1 hold on a dispatch slot while the coordinator negotiates capacity.
43
9
  * Host-less by design: the orchestrator never records a non-concrete host.
@@ -102,9 +68,23 @@ export declare class Orchestrator {
102
68
  private readonly clock;
103
69
  private readonly capacityProbe?;
104
70
  readonly state: OrchestratorState;
105
- private readonly usageDeltaBases;
106
- private nextReservationToken;
107
- constructor(settings: Settings, clock?: ClockPort, state?: OrchestratorState, capacityProbe?: CapacityProbe | undefined);
71
+ private readonly claimStore;
72
+ constructor(settings: Settings, clock?: ClockPort, stateOrClaimStore?: OrchestratorState | ClaimStoreLike, capacityProbe?: CapacityProbe | undefined);
73
+ claimStoreStatus(): ClaimStoreStatus;
74
+ ownsClaim(issueId: string, slotIndex: number): boolean;
75
+ ownsClaimAsync(issueId: string, slotIndex: number): Promise<boolean>;
76
+ heartbeatClaimOwner(): void;
77
+ heartbeatClaimOwnerAsync(): Promise<void>;
78
+ private withClaimStore;
79
+ private withClaimStoreAsync;
80
+ private noopAsNull;
81
+ private noopAsNullAsync;
82
+ private ignoreNoop;
83
+ private ignoreNoopAsync;
84
+ private syncClaimStore;
85
+ private claimIsOwnedByThisStore;
86
+ private recordClaimOwner;
87
+ private releaseClaimOwner;
108
88
  /**
109
89
  * Per-state counts of slots holding concurrency capacity: running entries PLUS reserved
110
90
  * (in-acquire) slots. Reservations must count toward every cap or dispatch could exceed
@@ -114,7 +94,11 @@ export declare class Orchestrator {
114
94
  /** Total slots holding concurrency capacity (running + reserved). */
115
95
  private occupiedSlotCount;
116
96
  eligibleIssues(issues: Issue[]): Issue[];
97
+ eligibleIssuesAsync(issues: Issue[]): Promise<Issue[]>;
98
+ private eligibleIssuesInTransaction;
117
99
  claim(issue: Issue): ClaimResult | null;
100
+ claimAsync(issue: Issue): Promise<ClaimResult | null>;
101
+ private claimInTransaction;
118
102
  /**
119
103
  * Phase 1 of the pool-governed dispatch: registers a host-less {@link ReservationRecord}
120
104
  * holding the dispatch slot (claimed + reserved, NOT running) and consumes the due retry
@@ -129,14 +113,22 @@ export declare class Orchestrator {
129
113
  * the provision wait.
130
114
  */
131
115
  bindReservation(reservation: SlotReservation, workerHost: string): RunningEntry | null;
116
+ bindReservationAsync(reservation: SlotReservation, workerHost: string): Promise<RunningEntry | null>;
117
+ private bindReservationInTransaction;
132
118
  /**
133
119
  * Frees a reserved slot with NO backoff and RESTORES the consumed RetryEntry (affinity and
134
120
  * attempt counter survive a capacity miss). Idempotent and token-checked: a stale reservation
135
121
  * (cancelled, expired, or superseded by a re-reserve) is a no-op.
136
122
  */
137
123
  cancelReservation(reservation: SlotReservation): void;
124
+ cancelReservationAsync(reservation: SlotReservation): Promise<void>;
125
+ private cancelReservationInTransaction;
126
+ abandonClaim(issueId: string, slotIndex: number): void;
127
+ abandonClaimAsync(issueId: string, slotIndex: number): Promise<void>;
128
+ private abandonClaimInTransaction;
138
129
  /** Shared cancel path for token-checked cancels, the expiry sweep, and cleanupIssue. */
139
130
  private cancelReservationRecord;
131
+ private restoreRunningRetry;
140
132
  /**
141
133
  * Cancels (with retry restore) any reservation past its defensive expiry so a hung acquire
142
134
  * (e.g. a wedged endpoint open) cannot strand a concurrency slot until shutdown. A late
@@ -146,17 +138,20 @@ export declare class Orchestrator {
146
138
  private selectWorkerHost;
147
139
  private workerCapacityAvailable;
148
140
  refreshRunningIssue(issue: Issue): void;
141
+ refreshRunningIssueAsync(issue: Issue): Promise<void>;
142
+ private refreshRunningIssueInTransaction;
149
143
  applyUpdate(issueId: string, slotIndex: number, update: AgentUpdate): void;
150
- finish(issueId: string, slotIndex: number, normal: boolean, error?: string, retryKind?: "failure" | "continuation"): void;
144
+ applyUpdateAsync(issueId: string, slotIndex: number, update: AgentUpdate): Promise<void>;
145
+ private applyUpdateInTransaction;
146
+ finish(issueId: string, slotIndex: number, normal: boolean, error?: string, retryKind?: "failure" | "continuation"): RunningEntry | null;
147
+ finishAsync(issueId: string, slotIndex: number, normal: boolean, error?: string, retryKind?: "failure" | "continuation"): Promise<RunningEntry | null>;
148
+ private finishInTransaction;
151
149
  cleanupIssue(issueId: string): void;
152
- snapshot(): {
153
- running: RunningEntry[];
154
- reserving: ReservationSnapshotEntry[];
155
- retrying: RetryEntry[];
156
- blocked: DispatchBlockEntry[];
157
- usageTotals: UsageTotals;
158
- rateLimits: unknown;
159
- };
150
+ cleanupIssueAsync(issueId: string): Promise<void>;
151
+ private cleanupIssueInTransaction;
152
+ snapshot(): OrchestratorSnapshot;
153
+ snapshotAsync(): Promise<OrchestratorSnapshot>;
154
+ private snapshotInTransaction;
160
155
  private applyUsageUpdate;
161
156
  private applyCumulativeUsage;
162
157
  private applyIncrementalUsage;
@@ -168,4 +163,13 @@ export declare class Orchestrator {
168
163
  private retryIsDue;
169
164
  private deleteRetryAttemptsForIssue;
170
165
  }
166
+ export interface OrchestratorSnapshot {
167
+ running: RunningEntry[];
168
+ reserving: ReservationSnapshotEntry[];
169
+ retrying: RetryEntry[];
170
+ blocked: DispatchBlockEntry[];
171
+ usageTotals: UsageTotals;
172
+ rateLimits: unknown;
173
+ claimStore: ClaimStoreStatus;
174
+ }
171
175
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EAEb,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAe,KAAK,iBAAiB,EAA0B,MAAM,YAAY,CAAC;AACzF,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,oFAAoF;IACpF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,MAAM,WAAW;AACrB,uFAAuF;AACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC1C;;;GAGG;GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAEvD,wFAAwF;AACxF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAiCD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,IAAI,OAAO,CAAC;IACnB,UAAU,IAAI,OAAO,CAAC;CACvB;AAED,qBAAa,YAAY;IAKd,QAAQ,EAAE,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAPjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAGnC,QAAQ,EAAE,QAAQ,EACR,KAAK,GAAE,SAAuB,EAC/C,iBAAiB,GAAE,iBAAiB,GAAG,cAA8B,EACpD,aAAa,CAAC,EAAE,aAAa,YAAA;IAQhD,gBAAgB,IAAI,gBAAgB;IAIpC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAKhD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E,mBAAmB,IAAI,IAAI;IAIrB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CAAC,cAAc;YAIR,mBAAmB;IAIjC,OAAO,CAAC,UAAU;YASJ,eAAe;IAS7B,OAAO,CAAC,UAAU;YASJ,eAAe;IAS7B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B,qEAAqE;IACrE,OAAO,CAAC,iBAAiB;IAIzB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;IAIlC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAM5D,OAAO,CAAC,2BAA2B;IAoCnC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI;IAMjC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAM3D,OAAO,CAAC,kBAAkB;IA2E1B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA6CnB;;;;;;OAMG;IACH,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQhF,oBAAoB,CACxB,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ/B,OAAO,CAAC,4BAA4B;IAoCpC;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAQ/C,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE,OAAO,CAAC,8BAA8B;IAQtC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQhD,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1E,OAAO,CAAC,yBAAyB;IAgBjC,wFAAwF;IACxF,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,mBAAmB;IAe3B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,uBAAuB;IAU/B,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQjC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,OAAO,CAAC,gCAAgC;IAmBxC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAWpE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9F,OAAO,CAAC,wBAAwB;IAiBhC,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,GAAE,SAAS,GAAG,cAA0B,GAChD,YAAY,GAAG,IAAI;IAQhB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,GAAE,SAAS,GAAG,cAA0B,GAChD,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ/B,OAAO,CAAC,mBAAmB;IA0C3B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM7B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,OAAO,CAAC,yBAAyB;IA4BjC,QAAQ,IAAI,oBAAoB;IAK1B,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAIpD,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,qBAAqB;IAyD7B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,iCAAiC;IAsBzC,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,2BAA2B;CAUpC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;CAC9B"}