@united-workforce/cli 0.3.0 → 0.5.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 (319) hide show
  1. package/README.md +45 -11
  2. package/dist/.build-fingerprint +1 -0
  3. package/dist/__tests__/adapter-json-roundtrip.test.js +17 -7
  4. package/dist/__tests__/adapter-json-roundtrip.test.js.map +1 -1
  5. package/dist/__tests__/agent-resolution-llm-free.test.d.ts +2 -0
  6. package/dist/__tests__/agent-resolution-llm-free.test.d.ts.map +1 -0
  7. package/dist/__tests__/agent-resolution-llm-free.test.js +30 -0
  8. package/dist/__tests__/agent-resolution-llm-free.test.js.map +1 -0
  9. package/dist/__tests__/build-step-entry.test.d.ts +2 -0
  10. package/dist/__tests__/build-step-entry.test.d.ts.map +1 -0
  11. package/dist/__tests__/build-step-entry.test.js +173 -0
  12. package/dist/__tests__/build-step-entry.test.js.map +1 -0
  13. package/dist/__tests__/clear-thread-failed-attempts.test.d.ts +2 -0
  14. package/dist/__tests__/clear-thread-failed-attempts.test.d.ts.map +1 -0
  15. package/dist/__tests__/clear-thread-failed-attempts.test.js +93 -0
  16. package/dist/__tests__/clear-thread-failed-attempts.test.js.map +1 -0
  17. package/dist/__tests__/concurrency.test.d.ts +2 -0
  18. package/dist/__tests__/concurrency.test.d.ts.map +1 -0
  19. package/dist/__tests__/concurrency.test.js +196 -0
  20. package/dist/__tests__/concurrency.test.js.map +1 -0
  21. package/dist/__tests__/config.test.js +26 -302
  22. package/dist/__tests__/config.test.js.map +1 -1
  23. package/dist/__tests__/current-role.test.js +7 -6
  24. package/dist/__tests__/current-role.test.js.map +1 -1
  25. package/dist/__tests__/e2e-mock-agent.test.js +43 -30
  26. package/dist/__tests__/e2e-mock-agent.test.js.map +1 -1
  27. package/dist/__tests__/format-text-default.test.d.ts +2 -0
  28. package/dist/__tests__/format-text-default.test.d.ts.map +1 -0
  29. package/dist/__tests__/format-text-default.test.js +43 -0
  30. package/dist/__tests__/format-text-default.test.js.map +1 -0
  31. package/dist/__tests__/format-text-registry.test.d.ts +2 -0
  32. package/dist/__tests__/format-text-registry.test.d.ts.map +1 -0
  33. package/dist/__tests__/format-text-registry.test.js +158 -0
  34. package/dist/__tests__/format-text-registry.test.js.map +1 -0
  35. package/dist/__tests__/issue-180-workflow-ref-removed.test.d.ts +2 -0
  36. package/dist/__tests__/issue-180-workflow-ref-removed.test.d.ts.map +1 -0
  37. package/dist/__tests__/issue-180-workflow-ref-removed.test.js +40 -0
  38. package/dist/__tests__/issue-180-workflow-ref-removed.test.js.map +1 -0
  39. package/dist/__tests__/log-text-renderer.test.d.ts +2 -0
  40. package/dist/__tests__/log-text-renderer.test.d.ts.map +1 -0
  41. package/dist/__tests__/log-text-renderer.test.js +265 -0
  42. package/dist/__tests__/log-text-renderer.test.js.map +1 -0
  43. package/dist/__tests__/moderator-evaluate.test.js +9 -50
  44. package/dist/__tests__/moderator-evaluate.test.js.map +1 -1
  45. package/dist/__tests__/output-mapper-thread-list-startedat.test.d.ts +2 -0
  46. package/dist/__tests__/output-mapper-thread-list-startedat.test.d.ts.map +1 -0
  47. package/dist/__tests__/output-mapper-thread-list-startedat.test.js +102 -0
  48. package/dist/__tests__/output-mapper-thread-list-startedat.test.js.map +1 -0
  49. package/dist/__tests__/output-mapper-workflow-add.test.d.ts +2 -0
  50. package/dist/__tests__/output-mapper-workflow-add.test.d.ts.map +1 -0
  51. package/dist/__tests__/output-mapper-workflow-add.test.js +22 -0
  52. package/dist/__tests__/output-mapper-workflow-add.test.js.map +1 -0
  53. package/dist/__tests__/pid-recycling.test.d.ts +2 -0
  54. package/dist/__tests__/pid-recycling.test.d.ts.map +1 -0
  55. package/dist/__tests__/pid-recycling.test.js +273 -0
  56. package/dist/__tests__/pid-recycling.test.js.map +1 -0
  57. package/dist/__tests__/prompt.test.js +365 -2
  58. package/dist/__tests__/prompt.test.js.map +1 -1
  59. package/dist/__tests__/resolve-head-hash.test.js +12 -4
  60. package/dist/__tests__/resolve-head-hash.test.js.map +1 -1
  61. package/dist/__tests__/setup-agent-discovery.test.js +21 -30
  62. package/dist/__tests__/setup-agent-discovery.test.js.map +1 -1
  63. package/dist/__tests__/setup-complexity.test.js +2 -168
  64. package/dist/__tests__/setup-complexity.test.js.map +1 -1
  65. package/dist/__tests__/setup-no-llm.test.d.ts +2 -0
  66. package/dist/__tests__/setup-no-llm.test.d.ts.map +1 -0
  67. package/dist/__tests__/setup-no-llm.test.js +52 -0
  68. package/dist/__tests__/setup-no-llm.test.js.map +1 -0
  69. package/dist/__tests__/solve-issue-tea-worktree.test.js +27 -28
  70. package/dist/__tests__/solve-issue-tea-worktree.test.js.map +1 -1
  71. package/dist/__tests__/step-ask.test.d.ts +2 -0
  72. package/dist/__tests__/step-ask.test.d.ts.map +1 -0
  73. package/dist/__tests__/step-ask.test.js +507 -0
  74. package/dist/__tests__/step-ask.test.js.map +1 -0
  75. package/dist/__tests__/step-show-json.test.js +1 -0
  76. package/dist/__tests__/step-show-json.test.js.map +1 -1
  77. package/dist/__tests__/step-timing.test.js +2 -0
  78. package/dist/__tests__/step-timing.test.js.map +1 -1
  79. package/dist/__tests__/store-global-cas.test.js +2 -2
  80. package/dist/__tests__/store-global-cas.test.js.map +1 -1
  81. package/dist/__tests__/store-unified-threads.test.js +28 -26
  82. package/dist/__tests__/store-unified-threads.test.js.map +1 -1
  83. package/dist/__tests__/thread-cancel-status.test.js +25 -19
  84. package/dist/__tests__/thread-cancel-status.test.js.map +1 -1
  85. package/dist/__tests__/thread-cancel-text-renderer.test.d.ts +2 -0
  86. package/dist/__tests__/thread-cancel-text-renderer.test.d.ts.map +1 -0
  87. package/dist/__tests__/thread-cancel-text-renderer.test.js +110 -0
  88. package/dist/__tests__/thread-cancel-text-renderer.test.js.map +1 -0
  89. package/dist/__tests__/thread-list-filters.test.js +354 -17
  90. package/dist/__tests__/thread-list-filters.test.js.map +1 -1
  91. package/dist/__tests__/thread-list-template-ms-date.test.d.ts +2 -0
  92. package/dist/__tests__/thread-list-template-ms-date.test.d.ts.map +1 -0
  93. package/dist/__tests__/thread-list-template-ms-date.test.js +102 -0
  94. package/dist/__tests__/thread-list-template-ms-date.test.js.map +1 -0
  95. package/dist/__tests__/thread-list-workflow-corrupt.test.d.ts +2 -0
  96. package/dist/__tests__/thread-list-workflow-corrupt.test.d.ts.map +1 -0
  97. package/dist/__tests__/thread-list-workflow-corrupt.test.js +157 -0
  98. package/dist/__tests__/thread-list-workflow-corrupt.test.js.map +1 -0
  99. package/dist/__tests__/thread-poke.test.d.ts +2 -0
  100. package/dist/__tests__/thread-poke.test.d.ts.map +1 -0
  101. package/dist/__tests__/thread-poke.test.js +422 -0
  102. package/dist/__tests__/thread-poke.test.js.map +1 -0
  103. package/dist/__tests__/thread-read-xml-tags.test.js +10 -9
  104. package/dist/__tests__/thread-read-xml-tags.test.js.map +1 -1
  105. package/dist/__tests__/thread-resume.test.js +21 -15
  106. package/dist/__tests__/thread-resume.test.js.map +1 -1
  107. package/dist/__tests__/thread-show-status.test.js +17 -28
  108. package/dist/__tests__/thread-show-status.test.js.map +1 -1
  109. package/dist/__tests__/thread-start-cwd-cli.test.js +15 -3
  110. package/dist/__tests__/thread-start-cwd-cli.test.js.map +1 -1
  111. package/dist/__tests__/thread-stop-text-renderer.test.d.ts +2 -0
  112. package/dist/__tests__/thread-stop-text-renderer.test.d.ts.map +1 -0
  113. package/dist/__tests__/thread-stop-text-renderer.test.js +148 -0
  114. package/dist/__tests__/thread-stop-text-renderer.test.js.map +1 -0
  115. package/dist/__tests__/thread-suspend-step.test.js +13 -16
  116. package/dist/__tests__/thread-suspend-step.test.js.map +1 -1
  117. package/dist/__tests__/thread-suspended-display.test.js +10 -22
  118. package/dist/__tests__/thread-suspended-display.test.js.map +1 -1
  119. package/dist/__tests__/thread-test-helpers.d.ts +7 -0
  120. package/dist/__tests__/thread-test-helpers.d.ts.map +1 -1
  121. package/dist/__tests__/thread-test-helpers.js +13 -0
  122. package/dist/__tests__/thread-test-helpers.js.map +1 -1
  123. package/dist/__tests__/thread.test.js +15 -13
  124. package/dist/__tests__/thread.test.js.map +1 -1
  125. package/dist/__tests__/validate-semantic.test.js +105 -23
  126. package/dist/__tests__/validate-semantic.test.js.map +1 -1
  127. package/dist/__tests__/workflow-list-recursive.test.d.ts +2 -0
  128. package/dist/__tests__/workflow-list-recursive.test.d.ts.map +1 -0
  129. package/dist/__tests__/workflow-list-recursive.test.js +286 -0
  130. package/dist/__tests__/workflow-list-recursive.test.js.map +1 -0
  131. package/dist/__tests__/workflow-resolution.test.js +46 -28
  132. package/dist/__tests__/workflow-resolution.test.js.map +1 -1
  133. package/dist/__tests__/workflow-show-resolution.test.d.ts +2 -0
  134. package/dist/__tests__/workflow-show-resolution.test.d.ts.map +1 -0
  135. package/dist/__tests__/workflow-show-resolution.test.js +213 -0
  136. package/dist/__tests__/workflow-show-resolution.test.js.map +1 -0
  137. package/dist/__tests__/workflow-validate.test.d.ts +2 -0
  138. package/dist/__tests__/workflow-validate.test.d.ts.map +1 -0
  139. package/dist/__tests__/workflow-validate.test.js +707 -0
  140. package/dist/__tests__/workflow-validate.test.js.map +1 -0
  141. package/dist/__tests__/write-envelope.test.d.ts +2 -0
  142. package/dist/__tests__/write-envelope.test.d.ts.map +1 -0
  143. package/dist/__tests__/write-envelope.test.js +201 -0
  144. package/dist/__tests__/write-envelope.test.js.map +1 -0
  145. package/dist/background/background.d.ts +22 -1
  146. package/dist/background/background.d.ts.map +1 -1
  147. package/dist/background/background.js +83 -6
  148. package/dist/background/background.js.map +1 -1
  149. package/dist/background/index.d.ts +1 -1
  150. package/dist/background/index.d.ts.map +1 -1
  151. package/dist/background/index.js +1 -1
  152. package/dist/background/index.js.map +1 -1
  153. package/dist/background/types.d.ts +1 -0
  154. package/dist/background/types.d.ts.map +1 -1
  155. package/dist/cli.js +120 -62
  156. package/dist/cli.js.map +1 -1
  157. package/dist/commands/config.d.ts +3 -1
  158. package/dist/commands/config.d.ts.map +1 -1
  159. package/dist/commands/config.js +17 -31
  160. package/dist/commands/config.js.map +1 -1
  161. package/dist/commands/prompt.d.ts.map +1 -1
  162. package/dist/commands/prompt.js +57 -31
  163. package/dist/commands/prompt.js.map +1 -1
  164. package/dist/commands/setup.d.ts +12 -39
  165. package/dist/commands/setup.d.ts.map +1 -1
  166. package/dist/commands/setup.js +72 -303
  167. package/dist/commands/setup.js.map +1 -1
  168. package/dist/commands/step.d.ts +44 -1
  169. package/dist/commands/step.d.ts.map +1 -1
  170. package/dist/commands/step.js +255 -11
  171. package/dist/commands/step.js.map +1 -1
  172. package/dist/commands/thread.d.ts +16 -3
  173. package/dist/commands/thread.d.ts.map +1 -1
  174. package/dist/commands/thread.js +423 -142
  175. package/dist/commands/thread.js.map +1 -1
  176. package/dist/commands/workflow.d.ts +9 -1
  177. package/dist/commands/workflow.d.ts.map +1 -1
  178. package/dist/commands/workflow.js +126 -6
  179. package/dist/commands/workflow.js.map +1 -1
  180. package/dist/concurrency/concurrency.d.ts +34 -0
  181. package/dist/concurrency/concurrency.d.ts.map +1 -0
  182. package/dist/concurrency/concurrency.js +216 -0
  183. package/dist/concurrency/concurrency.js.map +1 -0
  184. package/dist/concurrency/index.d.ts +3 -0
  185. package/dist/concurrency/index.d.ts.map +1 -0
  186. package/dist/concurrency/index.js +2 -0
  187. package/dist/concurrency/index.js.map +1 -0
  188. package/dist/concurrency/types.d.ts +19 -0
  189. package/dist/concurrency/types.d.ts.map +1 -0
  190. package/dist/concurrency/types.js +2 -0
  191. package/dist/concurrency/types.js.map +1 -0
  192. package/dist/format.d.ts +69 -2
  193. package/dist/format.d.ts.map +1 -1
  194. package/dist/format.js +198 -1
  195. package/dist/format.js.map +1 -1
  196. package/dist/moderator/__tests__/evaluate.test.js +31 -17
  197. package/dist/moderator/__tests__/evaluate.test.js.map +1 -1
  198. package/dist/moderator/evaluate.d.ts.map +1 -1
  199. package/dist/moderator/evaluate.js +4 -16
  200. package/dist/moderator/evaluate.js.map +1 -1
  201. package/dist/moderator/index.d.ts +1 -2
  202. package/dist/moderator/index.d.ts.map +1 -1
  203. package/dist/moderator/index.js +0 -1
  204. package/dist/moderator/index.js.map +1 -1
  205. package/dist/moderator/types.d.ts +6 -10
  206. package/dist/moderator/types.d.ts.map +1 -1
  207. package/dist/moderator/types.js +1 -3
  208. package/dist/moderator/types.js.map +1 -1
  209. package/dist/output-mappers.d.ts +122 -0
  210. package/dist/output-mappers.d.ts.map +1 -0
  211. package/dist/output-mappers.js +134 -0
  212. package/dist/output-mappers.js.map +1 -0
  213. package/dist/schemas.d.ts +6 -1
  214. package/dist/schemas.d.ts.map +1 -1
  215. package/dist/schemas.js +34 -5
  216. package/dist/schemas.js.map +1 -1
  217. package/dist/store.d.ts +28 -9
  218. package/dist/store.d.ts.map +1 -1
  219. package/dist/store.js +75 -16
  220. package/dist/store.js.map +1 -1
  221. package/dist/text-renderers.d.ts +30 -0
  222. package/dist/text-renderers.d.ts.map +1 -0
  223. package/dist/text-renderers.js +251 -0
  224. package/dist/text-renderers.js.map +1 -0
  225. package/dist/validate-semantic.d.ts.map +1 -1
  226. package/dist/validate-semantic.js +95 -61
  227. package/dist/validate-semantic.js.map +1 -1
  228. package/dist/validate.d.ts +6 -0
  229. package/dist/validate.d.ts.map +1 -1
  230. package/dist/validate.js +24 -0
  231. package/dist/validate.js.map +1 -1
  232. package/examples/brainstorm.yaml +130 -0
  233. package/examples/debate.yaml +169 -0
  234. package/examples/socratic-questioning.yaml +112 -0
  235. package/package.json +9 -10
  236. package/src/__tests__/adapter-json-roundtrip.test.ts +16 -7
  237. package/src/__tests__/agent-resolution-llm-free.test.ts +39 -0
  238. package/src/__tests__/build-step-entry.test.ts +203 -0
  239. package/src/__tests__/clear-thread-failed-attempts.test.ts +122 -0
  240. package/src/__tests__/concurrency.test.ts +266 -0
  241. package/src/__tests__/config.test.ts +33 -321
  242. package/src/__tests__/current-role.test.ts +7 -6
  243. package/src/__tests__/e2e-mock-agent.test.ts +65 -30
  244. package/src/__tests__/fixtures/e2e-count.workflow.yaml +1 -0
  245. package/src/__tests__/fixtures/e2e-linear.workflow.yaml +1 -0
  246. package/src/__tests__/fixtures/{e2e-mustache.workflow.yaml → e2e-liquid.workflow.yaml} +3 -2
  247. package/src/__tests__/fixtures/e2e-loop.workflow.yaml +1 -0
  248. package/src/__tests__/fixtures/e2e-suspend.mock.yaml +2 -2
  249. package/src/__tests__/fixtures/e2e-suspend.workflow.yaml +6 -10
  250. package/src/__tests__/format-text-default.test.ts +49 -0
  251. package/src/__tests__/format-text-registry.test.ts +173 -0
  252. package/src/__tests__/issue-180-workflow-ref-removed.test.ts +43 -0
  253. package/src/__tests__/log-text-renderer.test.ts +294 -0
  254. package/src/__tests__/moderator-evaluate.test.ts +9 -52
  255. package/src/__tests__/output-mapper-thread-list-startedat.test.ts +124 -0
  256. package/src/__tests__/output-mapper-workflow-add.test.ts +24 -0
  257. package/src/__tests__/pid-recycling.test.ts +329 -0
  258. package/src/__tests__/prompt.test.ts +443 -2
  259. package/src/__tests__/resolve-head-hash.test.ts +11 -4
  260. package/src/__tests__/setup-agent-discovery.test.ts +26 -51
  261. package/src/__tests__/setup-complexity.test.ts +1 -203
  262. package/src/__tests__/setup-no-llm.test.ts +68 -0
  263. package/src/__tests__/solve-issue-tea-worktree.test.ts +27 -31
  264. package/src/__tests__/step-ask.test.ts +677 -0
  265. package/src/__tests__/step-show-json.test.ts +1 -0
  266. package/src/__tests__/step-timing.test.ts +2 -0
  267. package/src/__tests__/store-global-cas.test.ts +2 -2
  268. package/src/__tests__/store-unified-threads.test.ts +30 -27
  269. package/src/__tests__/thread-cancel-status.test.ts +27 -20
  270. package/src/__tests__/thread-cancel-text-renderer.test.ts +125 -0
  271. package/src/__tests__/thread-list-filters.test.ts +443 -17
  272. package/src/__tests__/thread-list-template-ms-date.test.ts +110 -0
  273. package/src/__tests__/thread-list-workflow-corrupt.test.ts +198 -0
  274. package/src/__tests__/thread-poke.test.ts +554 -0
  275. package/src/__tests__/thread-read-xml-tags.test.ts +9 -11
  276. package/src/__tests__/thread-resume.test.ts +20 -15
  277. package/src/__tests__/thread-show-status.test.ts +17 -29
  278. package/src/__tests__/thread-start-cwd-cli.test.ts +15 -3
  279. package/src/__tests__/thread-stop-text-renderer.test.ts +168 -0
  280. package/src/__tests__/thread-suspend-step.test.ts +13 -16
  281. package/src/__tests__/thread-suspended-display.test.ts +10 -22
  282. package/src/__tests__/thread-test-helpers.ts +15 -1
  283. package/src/__tests__/thread.test.ts +14 -14
  284. package/src/__tests__/validate-semantic.test.ts +118 -33
  285. package/src/__tests__/workflow-list-recursive.test.ts +370 -0
  286. package/src/__tests__/workflow-resolution.test.ts +48 -29
  287. package/src/__tests__/workflow-show-resolution.test.ts +286 -0
  288. package/src/__tests__/workflow-validate.test.ts +828 -0
  289. package/src/__tests__/write-envelope.test.ts +257 -0
  290. package/src/background/background.ts +88 -6
  291. package/src/background/index.ts +2 -0
  292. package/src/background/types.ts +1 -0
  293. package/src/cli.ts +184 -77
  294. package/src/commands/config.ts +16 -33
  295. package/src/commands/prompt.ts +57 -31
  296. package/src/commands/setup.ts +80 -358
  297. package/src/commands/step.ts +339 -12
  298. package/src/commands/thread.ts +511 -171
  299. package/src/commands/workflow.ts +155 -4
  300. package/src/concurrency/concurrency.ts +245 -0
  301. package/src/concurrency/index.ts +10 -0
  302. package/src/concurrency/types.ts +19 -0
  303. package/src/format.ts +282 -2
  304. package/src/moderator/__tests__/evaluate.test.ts +34 -17
  305. package/src/moderator/evaluate.ts +5 -17
  306. package/src/moderator/index.ts +1 -6
  307. package/src/moderator/types.ts +6 -14
  308. package/src/output-mappers.ts +254 -0
  309. package/src/schemas.ts +51 -5
  310. package/src/store.ts +86 -20
  311. package/src/text-renderers.ts +355 -0
  312. package/src/validate-semantic.ts +125 -73
  313. package/src/validate.ts +27 -0
  314. package/dist/__tests__/setup-validate.test.d.ts +0 -2
  315. package/dist/__tests__/setup-validate.test.d.ts.map +0 -1
  316. package/dist/__tests__/setup-validate.test.js +0 -108
  317. package/dist/__tests__/setup-validate.test.js.map +0 -1
  318. package/src/__tests__/setup-validate.test.ts +0 -148
  319. /package/src/__tests__/fixtures/{e2e-mustache.mock.yaml → e2e-liquid.mock.yaml} +0 -0
@@ -10,22 +10,8 @@ describe("config command", () => {
10
10
  writeFileSync(configPath, content, "utf8");
11
11
  return configPath;
12
12
  }
13
- // Sample test config
14
- const sampleConfig = `providers:
15
- dashscope:
16
- baseUrl: https://dashscope.aliyuncs.com/compatible-mode/v1
17
- apiKey: sk-test-dashscope-key
18
- openai:
19
- baseUrl: https://api.openai.com/v1
20
- apiKey: sk-test-openai-key
21
- models:
22
- default:
23
- provider: dashscope
24
- name: qwen-max
25
- gpt4:
26
- provider: openai
27
- name: gpt-4
28
- agents:
13
+ // Sample test config — engine-only (no providers/models/defaultModel/modelOverrides)
14
+ const sampleConfig = `agents:
29
15
  hermes:
30
16
  command: uwf-hermes
31
17
  args:
@@ -37,18 +23,13 @@ agents:
37
23
  - --profile
38
24
  - work
39
25
  defaultAgent: hermes
40
- defaultModel: default
41
26
  `;
42
27
  describe("helper functions", () => {
43
28
  describe("parseDotPath", () => {
44
29
  test("splits dot notation correctly", () => {
45
30
  expect(parseDotPath("a.b.c")).toEqual(["a", "b", "c"]);
46
31
  expect(parseDotPath("defaultAgent")).toEqual(["defaultAgent"]);
47
- expect(parseDotPath("providers.dashscope.baseUrl")).toEqual([
48
- "providers",
49
- "dashscope",
50
- "baseUrl",
51
- ]);
32
+ expect(parseDotPath("agents.hermes.command")).toEqual(["agents", "hermes", "command"]);
52
33
  });
53
34
  });
54
35
  describe("getNestedValue", () => {
@@ -84,80 +65,14 @@ defaultModel: default
84
65
  });
85
66
  });
86
67
  describe("maskApiKeys", () => {
87
- test("deep clones and masks all apiKey values in providers", () => {
68
+ test("returns deep clone (no mutation) engine config has no apiKey to mask", () => {
88
69
  const config = {
89
- providers: {
90
- dashscope: {
91
- baseUrl: "https://example.com",
92
- apiKey: "sk-test-key-12345",
93
- },
94
- openai: {
95
- baseUrl: "https://api.openai.com",
96
- apiKey: "sk-another-secret",
97
- },
98
- },
99
- models: {
100
- default: { provider: "dashscope" },
101
- },
70
+ agents: { hermes: { command: "uwf-hermes", args: [] } },
71
+ defaultAgent: "hermes",
102
72
  };
103
73
  const masked = maskApiKeys(config);
104
- expect(masked).toEqual({
105
- providers: {
106
- dashscope: {
107
- baseUrl: "https://example.com",
108
- apiKey: "***MASKED***",
109
- },
110
- openai: {
111
- baseUrl: "https://api.openai.com",
112
- apiKey: "***MASKED***",
113
- },
114
- },
115
- models: {
116
- default: { provider: "dashscope" },
117
- },
118
- });
119
- // Ensure it's a deep clone
120
- expect(masked).not.toBe(config);
121
- });
122
- test("handles config without providers", () => {
123
- const config = { models: { default: { provider: "test" } } };
124
- const masked = maskApiKeys(config);
125
74
  expect(masked).toEqual(config);
126
- });
127
- test("does not mask non-provider apiKey fields", () => {
128
- const config = {
129
- apiKey: "root-level-key",
130
- providers: {
131
- dashscope: { apiKey: "sk-secret" },
132
- },
133
- models: {
134
- default: { provider: "dashscope" },
135
- },
136
- };
137
- const masked = maskApiKeys(config);
138
- // Root-level apiKey should NOT be masked
139
- expect(masked.apiKey).toBe("root-level-key");
140
- // Provider apiKey SHOULD be masked
141
- const providers = masked.providers;
142
- expect(providers.dashscope.apiKey).toBe("***MASKED***");
143
- });
144
- test("handles empty provider object", () => {
145
- const config = {
146
- providers: { dashscope: {} },
147
- };
148
- const masked = maskApiKeys(config);
149
- expect(masked).toEqual({ providers: { dashscope: {} } });
150
- });
151
- test("handles provider with null apiKey", () => {
152
- const config = {
153
- providers: {
154
- dashscope: { apiKey: null, baseUrl: "https://example.com" },
155
- },
156
- };
157
- const masked = maskApiKeys(config);
158
- const providers = masked.providers;
159
- expect(providers.dashscope.apiKey).toBe("***MASKED***");
160
- expect(providers.dashscope.baseUrl).toBe("https://example.com");
75
+ expect(masked).not.toBe(config);
161
76
  });
162
77
  });
163
78
  });
@@ -169,26 +84,8 @@ defaultModel: default
169
84
  const result = await cmdConfigList(tempDir);
170
85
  expect(result).toBeDefined();
171
86
  expect(typeof result).toBe("object");
172
- expect(result).toHaveProperty("providers");
173
- expect(result).toHaveProperty("models");
174
87
  expect(result).toHaveProperty("agents");
175
88
  expect(result).toHaveProperty("defaultAgent");
176
- expect(result).toHaveProperty("defaultModel");
177
- }
178
- finally {
179
- rmSync(tempDir, { recursive: true, force: true });
180
- }
181
- });
182
- test("masks all apiKey values in providers section", async () => {
183
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
184
- try {
185
- createTestConfig(tempDir, sampleConfig);
186
- const result = (await cmdConfigList(tempDir));
187
- const providers = result.providers;
188
- const dashscope = providers.dashscope;
189
- const openai = providers.openai;
190
- expect(dashscope.apiKey).toBe("***MASKED***");
191
- expect(openai.apiKey).toBe("***MASKED***");
192
89
  }
193
90
  finally {
194
91
  rmSync(tempDir, { recursive: true, force: true });
@@ -237,53 +134,6 @@ defaultModel: default
237
134
  rmSync(tempDir, { recursive: true, force: true });
238
135
  }
239
136
  });
240
- test("retrieves top-level string value (defaultModel)", async () => {
241
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
242
- try {
243
- createTestConfig(tempDir, sampleConfig);
244
- const result = await cmdConfigGet(tempDir, "defaultModel");
245
- expect(result).toBe("default");
246
- }
247
- finally {
248
- rmSync(tempDir, { recursive: true, force: true });
249
- }
250
- });
251
- test("retrieves nested object (providers.dashscope)", async () => {
252
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
253
- try {
254
- createTestConfig(tempDir, sampleConfig);
255
- const result = await cmdConfigGet(tempDir, "providers.dashscope");
256
- expect(result).toEqual({
257
- baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
258
- apiKey: "sk-test-dashscope-key",
259
- });
260
- }
261
- finally {
262
- rmSync(tempDir, { recursive: true, force: true });
263
- }
264
- });
265
- test("retrieves deeply nested string (providers.dashscope.baseUrl)", async () => {
266
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
267
- try {
268
- createTestConfig(tempDir, sampleConfig);
269
- const result = await cmdConfigGet(tempDir, "providers.dashscope.baseUrl");
270
- expect(result).toBe("https://dashscope.aliyuncs.com/compatible-mode/v1");
271
- }
272
- finally {
273
- rmSync(tempDir, { recursive: true, force: true });
274
- }
275
- });
276
- test("retrieves nested string in models (models.default.provider)", async () => {
277
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
278
- try {
279
- createTestConfig(tempDir, sampleConfig);
280
- const result = await cmdConfigGet(tempDir, "models.default.provider");
281
- expect(result).toBe("dashscope");
282
- }
283
- finally {
284
- rmSync(tempDir, { recursive: true, force: true });
285
- }
286
- });
287
137
  test("retrieves array value (agents.hermes.args)", async () => {
288
138
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
289
139
  try {
@@ -332,7 +182,6 @@ defaultModel: default
332
182
  createTestConfig(tempDir, sampleConfig);
333
183
  const result = await cmdConfigSet(tempDir, "defaultAgent", "claude-code");
334
184
  expect(result).toEqual({ key: "defaultAgent", value: "claude-code" });
335
- // Verify it was written
336
185
  const updated = await cmdConfigGet(tempDir, "defaultAgent");
337
186
  expect(updated).toBe("claude-code");
338
187
  }
@@ -340,42 +189,6 @@ defaultModel: default
340
189
  rmSync(tempDir, { recursive: true, force: true });
341
190
  }
342
191
  });
343
- test("sets nested string value (providers.dashscope.baseUrl)", async () => {
344
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
345
- try {
346
- createTestConfig(tempDir, sampleConfig);
347
- const newUrl = "https://new-api.example.com/v1";
348
- const result = await cmdConfigSet(tempDir, "providers.dashscope.baseUrl", newUrl);
349
- expect(result).toEqual({
350
- key: "providers.dashscope.baseUrl",
351
- value: newUrl,
352
- });
353
- // Verify it was written
354
- const updated = await cmdConfigGet(tempDir, "providers.dashscope.baseUrl");
355
- expect(updated).toBe(newUrl);
356
- }
357
- finally {
358
- rmSync(tempDir, { recursive: true, force: true });
359
- }
360
- });
361
- test("creates new nested path (providers.newprovider.baseUrl)", async () => {
362
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
363
- try {
364
- createTestConfig(tempDir, sampleConfig);
365
- const newUrl = "https://new-provider.com/v1";
366
- const result = await cmdConfigSet(tempDir, "providers.newprovider.baseUrl", newUrl);
367
- expect(result).toEqual({
368
- key: "providers.newprovider.baseUrl",
369
- value: newUrl,
370
- });
371
- // Verify it was created
372
- const updated = await cmdConfigGet(tempDir, "providers.newprovider.baseUrl");
373
- expect(updated).toBe(newUrl);
374
- }
375
- finally {
376
- rmSync(tempDir, { recursive: true, force: true });
377
- }
378
- });
379
192
  test("sets array value for args key with valid JSON array", async () => {
380
193
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
381
194
  try {
@@ -386,7 +199,6 @@ defaultModel: default
386
199
  key: "agents.hermes.args",
387
200
  value: ["--new", "--flags"],
388
201
  });
389
- // Verify it was written
390
202
  const updated = await cmdConfigGet(tempDir, "agents.hermes.args");
391
203
  expect(updated).toEqual(["--new", "--flags"]);
392
204
  }
@@ -399,11 +211,8 @@ defaultModel: default
399
211
  try {
400
212
  createTestConfig(tempDir, sampleConfig);
401
213
  await cmdConfigSet(tempDir, "defaultAgent", "claude-code");
402
- // Verify other values are preserved
403
- const defaultModel = await cmdConfigGet(tempDir, "defaultModel");
404
- expect(defaultModel).toBe("default");
405
- const dashscopeUrl = await cmdConfigGet(tempDir, "providers.dashscope.baseUrl");
406
- expect(dashscopeUrl).toBe("https://dashscope.aliyuncs.com/compatible-mode/v1");
214
+ const cmd = await cmdConfigGet(tempDir, "agents.hermes.command");
215
+ expect(cmd).toBe("uwf-hermes");
407
216
  }
408
217
  finally {
409
218
  rmSync(tempDir, { recursive: true, force: true });
@@ -414,7 +223,6 @@ defaultModel: default
414
223
  try {
415
224
  const result = await cmdConfigSet(tempDir, "defaultAgent", "hermes");
416
225
  expect(result).toEqual({ key: "defaultAgent", value: "hermes" });
417
- // Verify file was created
418
226
  const configPath = getConfigPath(tempDir);
419
227
  const content = readFileSync(configPath, "utf8");
420
228
  expect(content).toContain("defaultAgent: hermes");
@@ -443,23 +251,6 @@ defaultModel: default
443
251
  rmSync(tempDir, { recursive: true, force: true });
444
252
  }
445
253
  });
446
- test("sets deeply nested model config (models.gpt4.provider)", async () => {
447
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
448
- try {
449
- createTestConfig(tempDir, sampleConfig);
450
- const result = await cmdConfigSet(tempDir, "models.gpt4.provider", "new-provider");
451
- expect(result).toEqual({
452
- key: "models.gpt4.provider",
453
- value: "new-provider",
454
- });
455
- // Verify it was written
456
- const updated = await cmdConfigGet(tempDir, "models.gpt4.provider");
457
- expect(updated).toBe("new-provider");
458
- }
459
- finally {
460
- rmSync(tempDir, { recursive: true, force: true });
461
- }
462
- });
463
254
  test("sets agent command (agents.claude-code.command)", async () => {
464
255
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
465
256
  try {
@@ -469,7 +260,6 @@ defaultModel: default
469
260
  key: "agents.claude-code.command",
470
261
  value: "new-command",
471
262
  });
472
- // Verify it was written
473
263
  const updated = await cmdConfigGet(tempDir, "agents.claude-code.command");
474
264
  expect(updated).toBe("new-command");
475
265
  }
@@ -478,82 +268,74 @@ defaultModel: default
478
268
  }
479
269
  });
480
270
  });
481
- describe("cmdConfigSet validation", () => {
482
- test("rejects unknown top-level key", async () => {
271
+ describe("cmdConfigSet — LLM keys removed from engine config (issue #143)", () => {
272
+ test("rejects providers as unknown top-level key", async () => {
483
273
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
484
274
  try {
485
275
  createTestConfig(tempDir, sampleConfig);
486
- await expect(cmdConfigSet(tempDir, "unknownKey", "value")).rejects.toThrow(/Unknown config key.*unknownKey/);
487
- }
488
- finally {
489
- rmSync(tempDir, { recursive: true, force: true });
490
- }
491
- });
492
- test("rejects unknown nested key in providers", async () => {
493
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
494
- try {
495
- createTestConfig(tempDir, sampleConfig);
496
- await expect(cmdConfigSet(tempDir, "providers.myProvider.unknownField", "value")).rejects.toThrow(/Unknown field.*unknownField.*providers/);
276
+ await expect(cmdConfigSet(tempDir, "providers.openai.baseUrl", "https://api.openai.com/v1")).rejects.toThrow(/Unknown config key/);
497
277
  }
498
278
  finally {
499
279
  rmSync(tempDir, { recursive: true, force: true });
500
280
  }
501
281
  });
502
- test("rejects unknown nested key in models", async () => {
282
+ test("rejects models as unknown top-level key", async () => {
503
283
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
504
284
  try {
505
285
  createTestConfig(tempDir, sampleConfig);
506
- await expect(cmdConfigSet(tempDir, "models.default.invalidField", "value")).rejects.toThrow(/Unknown field.*invalidField.*models/);
286
+ await expect(cmdConfigSet(tempDir, "models.default.provider", "openai")).rejects.toThrow(/Unknown config key/);
507
287
  }
508
288
  finally {
509
289
  rmSync(tempDir, { recursive: true, force: true });
510
290
  }
511
291
  });
512
- test("rejects unknown nested key in agents", async () => {
292
+ test("rejects defaultModel as unknown top-level key", async () => {
513
293
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
514
294
  try {
515
295
  createTestConfig(tempDir, sampleConfig);
516
- await expect(cmdConfigSet(tempDir, "agents.hermes.badField", "value")).rejects.toThrow(/Unknown field.*badField.*agents/);
296
+ await expect(cmdConfigSet(tempDir, "defaultModel", "default")).rejects.toThrow(/Unknown config key/);
517
297
  }
518
298
  finally {
519
299
  rmSync(tempDir, { recursive: true, force: true });
520
300
  }
521
301
  });
522
- test("rejects nested path on scalar key (defaultAgent)", async () => {
302
+ test("rejects modelOverrides as unknown top-level key", async () => {
523
303
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
524
304
  try {
525
305
  createTestConfig(tempDir, sampleConfig);
526
- await expect(cmdConfigSet(tempDir, "defaultAgent.foo", "value")).rejects.toThrow(/defaultAgent.*scalar|Cannot set property/i);
306
+ await expect(cmdConfigSet(tempDir, "modelOverrides.extract", "fast")).rejects.toThrow(/Unknown config key/);
527
307
  }
528
308
  finally {
529
309
  rmSync(tempDir, { recursive: true, force: true });
530
310
  }
531
311
  });
532
- test("rejects nested path on scalar key (defaultModel)", async () => {
312
+ });
313
+ describe("cmdConfigSet validation", () => {
314
+ test("rejects unknown top-level key", async () => {
533
315
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
534
316
  try {
535
317
  createTestConfig(tempDir, sampleConfig);
536
- await expect(cmdConfigSet(tempDir, "defaultModel.bar", "value")).rejects.toThrow(/defaultModel.*scalar|Cannot set property/i);
318
+ await expect(cmdConfigSet(tempDir, "unknownKey", "value")).rejects.toThrow(/Unknown config key.*unknownKey/);
537
319
  }
538
320
  finally {
539
321
  rmSync(tempDir, { recursive: true, force: true });
540
322
  }
541
323
  });
542
- test("rejects incomplete nested path (providers without field)", async () => {
324
+ test("rejects unknown nested key in agents", async () => {
543
325
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
544
326
  try {
545
327
  createTestConfig(tempDir, sampleConfig);
546
- await expect(cmdConfigSet(tempDir, "providers.myProvider", "value")).rejects.toThrow(/incomplete path|must specify a field/i);
328
+ await expect(cmdConfigSet(tempDir, "agents.hermes.badField", "value")).rejects.toThrow(/Unknown field.*badField.*agents/);
547
329
  }
548
330
  finally {
549
331
  rmSync(tempDir, { recursive: true, force: true });
550
332
  }
551
333
  });
552
- test("rejects incomplete nested path (models without field)", async () => {
334
+ test("rejects nested path on scalar key (defaultAgent)", async () => {
553
335
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
554
336
  try {
555
337
  createTestConfig(tempDir, sampleConfig);
556
- await expect(cmdConfigSet(tempDir, "models.myModel", "value")).rejects.toThrow(/incomplete path|must specify a field/i);
338
+ await expect(cmdConfigSet(tempDir, "defaultAgent.foo", "value")).rejects.toThrow(/defaultAgent.*scalar|Cannot set property/i);
557
339
  }
558
340
  finally {
559
341
  rmSync(tempDir, { recursive: true, force: true });
@@ -569,36 +351,6 @@ defaultModel: default
569
351
  rmSync(tempDir, { recursive: true, force: true });
570
352
  }
571
353
  });
572
- test("allows valid nested keys in providers", async () => {
573
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
574
- try {
575
- createTestConfig(tempDir, sampleConfig);
576
- await cmdConfigSet(tempDir, "providers.newprovider.baseUrl", "https://example.com");
577
- await cmdConfigSet(tempDir, "providers.newprovider.apiKey", "sk-test");
578
- const baseUrl = await cmdConfigGet(tempDir, "providers.newprovider.baseUrl");
579
- const apiKey = await cmdConfigGet(tempDir, "providers.newprovider.apiKey");
580
- expect(baseUrl).toBe("https://example.com");
581
- expect(apiKey).toBe("sk-test");
582
- }
583
- finally {
584
- rmSync(tempDir, { recursive: true, force: true });
585
- }
586
- });
587
- test("allows valid nested keys in models", async () => {
588
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
589
- try {
590
- createTestConfig(tempDir, sampleConfig);
591
- await cmdConfigSet(tempDir, "models.gpt4.provider", "openai");
592
- await cmdConfigSet(tempDir, "models.gpt4.name", "gpt-4o");
593
- const provider = await cmdConfigGet(tempDir, "models.gpt4.provider");
594
- const name = await cmdConfigGet(tempDir, "models.gpt4.name");
595
- expect(provider).toBe("openai");
596
- expect(name).toBe("gpt-4o");
597
- }
598
- finally {
599
- rmSync(tempDir, { recursive: true, force: true });
600
- }
601
- });
602
354
  test("allows valid nested keys in agents", async () => {
603
355
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
604
356
  try {
@@ -636,28 +388,6 @@ defaultModel: default
636
388
  rmSync(tempDir, { recursive: true, force: true });
637
389
  }
638
390
  });
639
- test("modelOverrides — accepts valid 2-segment path", async () => {
640
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
641
- try {
642
- createTestConfig(tempDir, sampleConfig);
643
- await cmdConfigSet(tempDir, "modelOverrides.extract", "gpt4");
644
- const value = await cmdConfigGet(tempDir, "modelOverrides.extract");
645
- expect(value).toBe("gpt4");
646
- }
647
- finally {
648
- rmSync(tempDir, { recursive: true, force: true });
649
- }
650
- });
651
- test("modelOverrides — rejects incomplete path (1 segment only)", async () => {
652
- const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
653
- try {
654
- createTestConfig(tempDir, sampleConfig);
655
- await expect(cmdConfigSet(tempDir, "modelOverrides", "gpt4")).rejects.toThrow(/incomplete path|must specify a field/i);
656
- }
657
- finally {
658
- rmSync(tempDir, { recursive: true, force: true });
659
- }
660
- });
661
391
  test("rejects unknown top-level key (regression)", async () => {
662
392
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
663
393
  try {
@@ -674,12 +404,6 @@ defaultModel: default
674
404
  const configSource = readFileSync(join(__dirname, "..", "..", "src", "commands", "config.ts"), "utf8");
675
405
  expect(configSource).not.toContain("apiKeyEnv");
676
406
  });
677
- test("config.test.ts has no references to apiKeyEnv (except this test)", () => {
678
- const testSource = readFileSync(__filename, "utf8");
679
- // Remove this test block's own mentions before checking
680
- const withoutThisTest = testSource.replace(/describe\("no legacy apiKeyEnv references"[\s\S]*$/, "");
681
- expect(withoutThisTest).not.toContain("apiKeyEnv");
682
- });
683
407
  });
684
408
  });
685
409
  //# sourceMappingURL=config.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,0CAA0C;IAC1C,SAAS,gBAAgB,CAAC,OAAe,EAAE,OAAe;QACxD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BtB,CAAC;IAEA,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACzC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1D,WAAW;oBACX,WAAW;oBACX,SAAS;iBACV,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG;oBACV,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;oBACxB,CAAC,EAAE,QAAQ;iBACZ,CAAC;gBACF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBACpD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;gBACxD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACvD,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACrC,MAAM,GAAG,GAA4B,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC1D,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC7C,MAAM,GAAG,GAA4B,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACzD,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAChE,MAAM,MAAM,GAAG;oBACb,SAAS,EAAE;wBACT,SAAS,EAAE;4BACT,OAAO,EAAE,qBAAqB;4BAC9B,MAAM,EAAE,mBAAmB;yBAC5B;wBACD,MAAM,EAAE;4BACN,OAAO,EAAE,wBAAwB;4BACjC,MAAM,EAAE,mBAAmB;yBAC5B;qBACF;oBACD,MAAM,EAAE;wBACN,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;qBACnC;iBACF,CAAC;gBACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,SAAS,EAAE;wBACT,SAAS,EAAE;4BACT,OAAO,EAAE,qBAAqB;4BAC9B,MAAM,EAAE,cAAc;yBACvB;wBACD,MAAM,EAAE;4BACN,OAAO,EAAE,wBAAwB;4BACjC,MAAM,EAAE,cAAc;yBACvB;qBACF;oBACD,MAAM,EAAE;wBACN,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;qBACnC;iBACF,CAAC,CAAC;gBACH,2BAA2B;gBAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBACpD,MAAM,MAAM,GAAG;oBACb,MAAM,EAAE,gBAAgB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;qBACnC;oBACD,MAAM,EAAE;wBACN,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;qBACnC;iBACF,CAAC;gBACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,yCAAyC;gBACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,mCAAmC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAoD,CAAC;gBAC9E,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACzC,MAAM,MAAM,GAAG;oBACb,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;iBAC7B,CAAC;gBACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC7C,MAAM,MAAM,GAAG;oBACb,SAAS,EAAE;wBACT,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE;qBAC5D;iBACF,CAAC;gBACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAoD,CAAC;gBAC9E,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACxD,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAChD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAA4B,CAAC;gBACzE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAoC,CAAC;gBAC9D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAoC,CAAC;gBACjE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAiC,CAAC;gBAC3D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;gBACpD,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;gBAClE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,OAAO,EAAE,mDAAmD;oBAC5D,MAAM,EAAE,uBAAuB;iBAChC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAC3E,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;gBACtE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBACjE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;YACtD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC1F,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5E,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;gBACtE,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC5D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,6BAA6B,EAAE,MAAM,CAAC,CAAC;gBAClF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,6BAA6B;oBAClC,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;gBAC3E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,6BAA6B,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACpF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,+BAA+B;oBACpC,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;gBACH,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;gBAC7E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;gBAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,oBAAoB;oBACzB,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;iBAC5B,CAAC,CAAC;gBACH,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAClE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YAChD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;gBAC3D,oCAAoC;gBACpC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBACjE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;gBAChF,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACjF,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;gBACrE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACjE,0BAA0B;gBAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACpD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACnF,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CACV,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAC7D,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,cAAc,CAAC,CAAC;gBACnF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,sBAAsB;oBAC3B,KAAK,EAAE,cAAc;iBACtB,CAAC,CAAC;gBACH,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;gBACpE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,4BAA4B,EAAE,aAAa,CAAC,CAAC;gBACxF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,4BAA4B;oBACjC,KAAK,EAAE,aAAa;iBACrB,CAAC,CAAC;gBACH,wBAAwB;gBACxB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAC1E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACxE,gCAAgC,CACjC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CACV,YAAY,CAAC,OAAO,EAAE,mCAAmC,EAAE,OAAO,CAAC,CACpE,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;YAC9D,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzF,qCAAqC,CACtC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpF,iCAAiC,CAClC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9E,2CAA2C,CAC5C,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9E,2CAA2C,CAC5C,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,uCAAuC,CACxC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC5E,uCAAuC,CACxC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC5E,uCAAuC,CACxC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,YAAY,CAAC,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,CAAC,CAAC;gBACpF,MAAM,YAAY,CAAC,OAAO,EAAE,8BAA8B,EAAE,SAAS,CAAC,CAAC;gBACvE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;gBAC7E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;gBAC3E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;gBAC9D,MAAM,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,YAAY,CAAC,OAAO,EAAE,uBAAuB,EAAE,YAAY,CAAC,CAAC;gBACnE,MAAM,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,YAAY,CAAC,OAAO,EAAE,oCAAoC,EAAE,aAAa,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;gBAChF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzF,uCAAuC,CACxC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,YAAY,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;gBACpE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3E,uCAAuC,CACxC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvE,oBAAoB,CACrB,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACpD,MAAM,YAAY,GAAG,YAAY,CAC/B,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAC3D,MAAM,CACP,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC5E,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,wDAAwD;YACxD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CACxC,oDAAoD,EACpD,EAAE,CACH,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { tmpdir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { putSchema } from "@ocas/core";
5
5
  import { describe, expect, test } from "vitest";
6
- import { createMarker, deleteMarker } from "../background/index.js";
6
+ import { createMarker, deleteMarker, getProcessStartTime } from "../background/index.js";
7
7
  import { cmdThreadList, cmdThreadShow, cmdThreadStart } from "../commands/thread.js";
8
8
  import { completeThread, createUwfStore, loadActiveThreads, setThread } from "../store.js";
9
9
  const OUTPUT_SCHEMA = {
@@ -282,9 +282,9 @@ describe("currentRole field", () => {
282
282
  const tid = thread;
283
283
  const uwfForIndex = await createUwfStore(storageRoot);
284
284
  loadActiveThreads(uwfForIndex.varStore)[tid].head;
285
- completeThread(uwfForIndex.varStore, tid, "completed");
285
+ completeThread(uwfForIndex.varStore, tid, "end");
286
286
  const result = await cmdThreadShow(storageRoot, tid);
287
- expect(result.status).toBe("completed");
287
+ expect(result.status).toBe("end");
288
288
  expect(result.currentRole).toBe(null);
289
289
  }
290
290
  finally {
@@ -323,6 +323,7 @@ describe("currentRole field", () => {
323
323
  workflow,
324
324
  pid: process.pid,
325
325
  startedAt: Date.now(),
326
+ processStartTime: getProcessStartTime(process.pid),
326
327
  });
327
328
  try {
328
329
  const result = await cmdThreadShow(storageRoot, tid);
@@ -347,12 +348,12 @@ describe("currentRole field", () => {
347
348
  const idle = await cmdThreadStart(storageRoot, wf, "idle", tmpDir);
348
349
  const idleId = idle.thread;
349
350
  // completed thread
350
- const comp = await cmdThreadStart(storageRoot, wf, "completed", tmpDir);
351
+ const comp = await cmdThreadStart(storageRoot, wf, "end", tmpDir);
351
352
  const compId = comp.thread;
352
353
  const uwfForIndex = await createUwfStore(storageRoot);
353
354
  const _compHead = loadActiveThreads(uwfForIndex.varStore)[compId].head;
354
- completeThread(uwfForIndex.varStore, compId, "completed");
355
- const list = await cmdThreadList(storageRoot, null, null, null, 0, 100);
355
+ completeThread(uwfForIndex.varStore, compId, "end");
356
+ const list = await cmdThreadList(storageRoot, null, null, null, 0, 100, true);
356
357
  const idleItem = list.find((i) => i.thread === idleId);
357
358
  expect(idleItem).toBeDefined();
358
359
  expect(idleItem.currentRole).toBe("roleA");