studiograph 1.1.2 → 1.2.0-beta.1

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 (349) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +301 -10
  3. package/dist/agent/orchestrator.d.ts +17 -9
  4. package/dist/agent/orchestrator.js +142 -97
  5. package/dist/agent/orchestrator.js.map +1 -1
  6. package/dist/agent/prompts/system.md +186 -0
  7. package/dist/agent/skill-loader.d.ts +48 -0
  8. package/dist/agent/skill-loader.js +166 -0
  9. package/dist/agent/skill-loader.js.map +1 -0
  10. package/dist/agent/skills/enrich-entities.md +136 -0
  11. package/dist/agent/skills/entity-schema.md +502 -0
  12. package/dist/agent/skills/gather-context.md +46 -0
  13. package/dist/agent/skills/obsidian-source-setup.md +246 -0
  14. package/dist/agent/skills/skill-loader.d.ts +48 -0
  15. package/dist/agent/skills/skill-loader.js +166 -0
  16. package/dist/agent/skills/skill-loader.js.map +1 -0
  17. package/dist/agent/skills/sync-configuration.md +144 -0
  18. package/dist/agent/skills/sync-setup.md +68 -0
  19. package/dist/agent/tools/connector-tools.d.ts +37 -0
  20. package/dist/agent/tools/connector-tools.js +132 -0
  21. package/dist/agent/tools/connector-tools.js.map +1 -0
  22. package/dist/agent/tools/fs-tools.d.ts +39 -0
  23. package/dist/agent/tools/fs-tools.js +106 -0
  24. package/dist/agent/tools/fs-tools.js.map +1 -0
  25. package/dist/agent/tools/graph-tools.d.ts +30 -2
  26. package/dist/agent/tools/graph-tools.js +154 -37
  27. package/dist/agent/tools/graph-tools.js.map +1 -1
  28. package/dist/agent/tools/load-skill.d.ts +42 -0
  29. package/dist/agent/tools/load-skill.js +45 -0
  30. package/dist/agent/tools/load-skill.js.map +1 -0
  31. package/dist/agent/tools/sync-tools.d.ts +25 -0
  32. package/dist/agent/tools/sync-tools.js +691 -0
  33. package/dist/agent/tools/sync-tools.js.map +1 -0
  34. package/dist/agent/tools/tool-loader.d.ts +25 -0
  35. package/dist/agent/tools/tool-loader.js +73 -0
  36. package/dist/agent/tools/tool-loader.js.map +1 -0
  37. package/dist/auth/github.d.ts +11 -8
  38. package/dist/auth/github.js +56 -75
  39. package/dist/auth/github.js.map +1 -1
  40. package/dist/cli/colors.d.ts +54 -0
  41. package/dist/cli/colors.js +133 -0
  42. package/dist/cli/colors.js.map +1 -0
  43. package/dist/cli/commands/app.d.ts +7 -0
  44. package/dist/cli/commands/app.js +167 -0
  45. package/dist/cli/commands/app.js.map +1 -0
  46. package/dist/cli/commands/auth.d.ts +1 -1
  47. package/dist/cli/commands/auth.js +26 -10
  48. package/dist/cli/commands/auth.js.map +1 -1
  49. package/dist/cli/commands/clone.d.ts +9 -0
  50. package/dist/cli/commands/clone.js +167 -0
  51. package/dist/cli/commands/clone.js.map +1 -0
  52. package/dist/cli/commands/commit.d.ts +8 -0
  53. package/dist/cli/commands/commit.js +43 -0
  54. package/dist/cli/commands/commit.js.map +1 -0
  55. package/dist/cli/commands/config.d.ts +13 -0
  56. package/dist/cli/commands/config.js +276 -0
  57. package/dist/cli/commands/config.js.map +1 -0
  58. package/dist/cli/commands/connector.d.ts +33 -0
  59. package/dist/cli/commands/connector.js +178 -0
  60. package/dist/cli/commands/connector.js.map +1 -0
  61. package/dist/cli/commands/deploy.d.ts +11 -0
  62. package/dist/cli/commands/deploy.js +153 -0
  63. package/dist/cli/commands/deploy.js.map +1 -0
  64. package/dist/cli/commands/enrich.d.ts +11 -0
  65. package/dist/cli/commands/enrich.js +135 -0
  66. package/dist/cli/commands/enrich.js.map +1 -0
  67. package/dist/cli/commands/graphrag.d.ts +12 -0
  68. package/dist/cli/commands/graphrag.js +122 -0
  69. package/dist/cli/commands/graphrag.js.map +1 -0
  70. package/dist/cli/commands/index.d.ts +15 -0
  71. package/dist/cli/commands/index.js +117 -0
  72. package/dist/cli/commands/index.js.map +1 -0
  73. package/dist/cli/commands/init.js +110 -210
  74. package/dist/cli/commands/init.js.map +1 -1
  75. package/dist/cli/commands/join.js +89 -24
  76. package/dist/cli/commands/join.js.map +1 -1
  77. package/dist/cli/commands/lint.d.ts +8 -0
  78. package/dist/cli/commands/lint.js +70 -0
  79. package/dist/cli/commands/lint.js.map +1 -0
  80. package/dist/cli/commands/mcp.d.ts +27 -0
  81. package/dist/cli/commands/mcp.js +56 -0
  82. package/dist/cli/commands/mcp.js.map +1 -0
  83. package/dist/cli/commands/orphans.d.ts +8 -0
  84. package/dist/cli/commands/orphans.js +125 -0
  85. package/dist/cli/commands/orphans.js.map +1 -0
  86. package/dist/cli/commands/provision.d.ts +8 -0
  87. package/dist/cli/commands/provision.js +116 -0
  88. package/dist/cli/commands/provision.js.map +1 -0
  89. package/dist/cli/commands/r2.d.ts +2 -0
  90. package/dist/cli/commands/r2.js +87 -6
  91. package/dist/cli/commands/r2.js.map +1 -1
  92. package/dist/cli/commands/reset.d.ts +12 -0
  93. package/dist/cli/commands/reset.js +137 -0
  94. package/dist/cli/commands/reset.js.map +1 -0
  95. package/dist/cli/commands/review.d.ts +19 -0
  96. package/dist/cli/commands/review.js +128 -0
  97. package/dist/cli/commands/review.js.map +1 -0
  98. package/dist/cli/commands/serve.js +47 -2
  99. package/dist/cli/commands/serve.js.map +1 -1
  100. package/dist/cli/commands/source.d.ts +16 -0
  101. package/dist/cli/commands/source.js +159 -0
  102. package/dist/cli/commands/source.js.map +1 -0
  103. package/dist/cli/commands/start.js +472 -103
  104. package/dist/cli/commands/start.js.map +1 -1
  105. package/dist/cli/commands/sync-entities.d.ts +13 -0
  106. package/dist/cli/commands/sync-entities.js +242 -0
  107. package/dist/cli/commands/sync-entities.js.map +1 -0
  108. package/dist/cli/commands/sync.js +40 -9
  109. package/dist/cli/commands/sync.js.map +1 -1
  110. package/dist/cli/commands/update.d.ts +8 -0
  111. package/dist/cli/commands/update.js +155 -0
  112. package/dist/cli/commands/update.js.map +1 -0
  113. package/dist/cli/index.js +114 -3
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/scaffolding.d.ts +10 -0
  116. package/dist/cli/scaffolding.js +302 -0
  117. package/dist/cli/scaffolding.js.map +1 -0
  118. package/dist/cli/setup-wizard.d.ts +30 -0
  119. package/dist/cli/setup-wizard.js +244 -0
  120. package/dist/cli/setup-wizard.js.map +1 -0
  121. package/dist/cli/sync-review-interactive.d.ts +31 -0
  122. package/dist/cli/sync-review-interactive.js +393 -0
  123. package/dist/cli/sync-review-interactive.js.map +1 -0
  124. package/dist/cli/theme.d.ts +31 -0
  125. package/dist/cli/theme.js +116 -0
  126. package/dist/cli/theme.js.map +1 -0
  127. package/dist/core/graph.d.ts +16 -9
  128. package/dist/core/graph.js +263 -145
  129. package/dist/core/graph.js.map +1 -1
  130. package/dist/core/migration-runner.d.ts +42 -0
  131. package/dist/core/migration-runner.js +232 -0
  132. package/dist/core/migration-runner.js.map +1 -0
  133. package/dist/core/migration-types.d.ts +101 -0
  134. package/dist/core/migration-types.js +21 -0
  135. package/dist/core/migration-types.js.map +1 -0
  136. package/dist/core/migrations/20260219-formalize-memory-location.d.ts +2 -0
  137. package/dist/core/migrations/20260219-formalize-memory-location.js +35 -0
  138. package/dist/core/migrations/20260219-formalize-memory-location.js.map +1 -0
  139. package/dist/core/migrations/20260220-add-workspace-metadata.d.ts +12 -0
  140. package/dist/core/migrations/20260220-add-workspace-metadata.js +65 -0
  141. package/dist/core/migrations/20260220-add-workspace-metadata.js.map +1 -0
  142. package/dist/core/migrations/20260220-add-workspace-readme.d.ts +11 -0
  143. package/dist/core/migrations/20260220-add-workspace-readme.js +82 -0
  144. package/dist/core/migrations/20260220-add-workspace-readme.js.map +1 -0
  145. package/dist/core/migrations/20260220-migrate-yaml-to-json.d.ts +9 -0
  146. package/dist/core/migrations/20260220-migrate-yaml-to-json.js +64 -0
  147. package/dist/core/migrations/20260220-migrate-yaml-to-json.js.map +1 -0
  148. package/dist/core/migrations/index.d.ts +11 -0
  149. package/dist/core/migrations/index.js +23 -0
  150. package/dist/core/migrations/index.js.map +1 -0
  151. package/dist/core/schema-registry.d.ts +36 -0
  152. package/dist/core/schema-registry.js +161 -0
  153. package/dist/core/schema-registry.js.map +1 -0
  154. package/dist/core/types.d.ts +242 -3
  155. package/dist/core/types.js +21 -2
  156. package/dist/core/types.js.map +1 -1
  157. package/dist/core/user-config.d.ts +16 -0
  158. package/dist/core/user-config.js +8 -0
  159. package/dist/core/user-config.js.map +1 -1
  160. package/dist/core/validation.d.ts +973 -32
  161. package/dist/core/validation.js +163 -4
  162. package/dist/core/validation.js.map +1 -1
  163. package/dist/core/workspace-manager.d.ts +26 -2
  164. package/dist/core/workspace-manager.js +113 -15
  165. package/dist/core/workspace-manager.js.map +1 -1
  166. package/dist/core/workspace.d.ts +20 -11
  167. package/dist/core/workspace.js +123 -34
  168. package/dist/core/workspace.js.map +1 -1
  169. package/dist/mcp/connector-manager.d.ts +65 -0
  170. package/dist/mcp/connector-manager.js +223 -0
  171. package/dist/mcp/connector-manager.js.map +1 -0
  172. package/dist/mcp/connectors/asana.d.ts +2 -0
  173. package/dist/mcp/connectors/asana.js +20 -0
  174. package/dist/mcp/connectors/asana.js.map +1 -0
  175. package/dist/mcp/connectors/definitions.d.ts +45 -0
  176. package/dist/mcp/connectors/definitions.js +32 -0
  177. package/dist/mcp/connectors/definitions.js.map +1 -0
  178. package/dist/mcp/connectors/figma.d.ts +5 -0
  179. package/dist/mcp/connectors/figma.js +21 -0
  180. package/dist/mcp/connectors/figma.js.map +1 -0
  181. package/dist/mcp/connectors/gdrive.d.ts +2 -0
  182. package/dist/mcp/connectors/gdrive.js +20 -0
  183. package/dist/mcp/connectors/gdrive.js.map +1 -0
  184. package/dist/mcp/connectors/granola.d.ts +2 -0
  185. package/dist/mcp/connectors/granola.js +12 -0
  186. package/dist/mcp/connectors/granola.js.map +1 -0
  187. package/dist/mcp/connectors/linear.d.ts +2 -0
  188. package/dist/mcp/connectors/linear.js +19 -0
  189. package/dist/mcp/connectors/linear.js.map +1 -0
  190. package/dist/mcp/connectors/obsidian.d.ts +2 -0
  191. package/dist/mcp/connectors/obsidian.js +19 -0
  192. package/dist/mcp/connectors/obsidian.js.map +1 -0
  193. package/dist/mcp/connectors/pipedrive.d.ts +2 -0
  194. package/dist/mcp/connectors/pipedrive.js +20 -0
  195. package/dist/mcp/connectors/pipedrive.js.map +1 -0
  196. package/dist/mcp/connectors/slack.d.ts +2 -0
  197. package/dist/mcp/connectors/slack.js +21 -0
  198. package/dist/mcp/connectors/slack.js.map +1 -0
  199. package/dist/mcp/oauth-provider.d.ts +41 -0
  200. package/dist/mcp/oauth-provider.js +160 -0
  201. package/dist/mcp/oauth-provider.js.map +1 -0
  202. package/dist/mcp/server.d.ts +11 -0
  203. package/dist/mcp/server.js +28 -0
  204. package/dist/mcp/server.js.map +1 -0
  205. package/dist/mcp/tools.d.ts +14 -0
  206. package/dist/mcp/tools.js +172 -0
  207. package/dist/mcp/tools.js.map +1 -0
  208. package/dist/server/index.js +17 -4
  209. package/dist/server/index.js.map +1 -1
  210. package/dist/server/plugin-loader.d.ts +15 -0
  211. package/dist/server/plugin-loader.js +68 -2
  212. package/dist/server/plugin-loader.js.map +1 -1
  213. package/dist/server/routes/graph-api.js +1 -1
  214. package/dist/server/routes/graph-api.js.map +1 -1
  215. package/dist/server/routes/webhook.js +33 -0
  216. package/dist/server/routes/webhook.js.map +1 -1
  217. package/dist/services/github-provisioner.d.ts +9 -3
  218. package/dist/services/github-provisioner.js +46 -8
  219. package/dist/services/github-provisioner.js.map +1 -1
  220. package/dist/services/lint-service.d.ts +27 -0
  221. package/dist/services/lint-service.js +83 -0
  222. package/dist/services/lint-service.js.map +1 -0
  223. package/dist/services/markdown.d.ts +9 -0
  224. package/dist/services/markdown.js +26 -5
  225. package/dist/services/markdown.js.map +1 -1
  226. package/dist/services/memory-service.d.ts +1 -2
  227. package/dist/services/memory-service.js +5 -4
  228. package/dist/services/memory-service.js.map +1 -1
  229. package/dist/services/orphan-service.d.ts +31 -0
  230. package/dist/services/orphan-service.js +100 -0
  231. package/dist/services/orphan-service.js.map +1 -0
  232. package/dist/services/sync/commit.d.ts +58 -0
  233. package/dist/services/sync/commit.js +350 -0
  234. package/dist/services/sync/commit.js.map +1 -0
  235. package/dist/services/sync/context-index.d.ts +69 -0
  236. package/dist/services/sync/context-index.js +280 -0
  237. package/dist/services/sync/context-index.js.map +1 -0
  238. package/dist/services/sync/derive.d.ts +34 -0
  239. package/dist/services/sync/derive.js +164 -0
  240. package/dist/services/sync/derive.js.map +1 -0
  241. package/dist/services/sync/enrichment-state.d.ts +31 -0
  242. package/dist/services/sync/enrichment-state.js +63 -0
  243. package/dist/services/sync/enrichment-state.js.map +1 -0
  244. package/dist/services/sync/enrichment.d.ts +25 -0
  245. package/dist/services/sync/enrichment.js +121 -0
  246. package/dist/services/sync/enrichment.js.map +1 -0
  247. package/dist/services/sync/frontmatter-extractor.d.ts +40 -0
  248. package/dist/services/sync/frontmatter-extractor.js +273 -0
  249. package/dist/services/sync/frontmatter-extractor.js.map +1 -0
  250. package/dist/services/sync/graph-match-state.d.ts +33 -0
  251. package/dist/services/sync/graph-match-state.js +61 -0
  252. package/dist/services/sync/graph-match-state.js.map +1 -0
  253. package/dist/services/sync/graph-match.d.ts +53 -0
  254. package/dist/services/sync/graph-match.js +316 -0
  255. package/dist/services/sync/graph-match.js.map +1 -0
  256. package/dist/services/sync/graphrag-client.d.ts +43 -0
  257. package/dist/services/sync/graphrag-client.js +94 -0
  258. package/dist/services/sync/graphrag-client.js.map +1 -0
  259. package/dist/services/sync/graphrag-config.d.ts +16 -0
  260. package/dist/services/sync/graphrag-config.js +39 -0
  261. package/dist/services/sync/graphrag-config.js.map +1 -0
  262. package/dist/services/sync/graphrag-context.d.ts +14 -0
  263. package/dist/services/sync/graphrag-context.js +109 -0
  264. package/dist/services/sync/graphrag-context.js.map +1 -0
  265. package/dist/services/sync/graphrag-indexer.d.ts +30 -0
  266. package/dist/services/sync/graphrag-indexer.js +358 -0
  267. package/dist/services/sync/graphrag-indexer.js.map +1 -0
  268. package/dist/services/sync/llm.d.ts +32 -0
  269. package/dist/services/sync/llm.js +115 -0
  270. package/dist/services/sync/llm.js.map +1 -0
  271. package/dist/services/sync/mcp-client.d.ts +59 -0
  272. package/dist/services/sync/mcp-client.js +285 -0
  273. package/dist/services/sync/mcp-client.js.map +1 -0
  274. package/dist/services/sync/model-factory.d.ts +10 -0
  275. package/dist/services/sync/model-factory.js +24 -0
  276. package/dist/services/sync/model-factory.js.map +1 -0
  277. package/dist/services/sync/name-quality.d.ts +31 -0
  278. package/dist/services/sync/name-quality.js +60 -0
  279. package/dist/services/sync/name-quality.js.map +1 -0
  280. package/dist/services/sync/output-schemas.d.ts +92 -0
  281. package/dist/services/sync/output-schemas.js +43 -0
  282. package/dist/services/sync/output-schemas.js.map +1 -0
  283. package/dist/services/sync/prompts.d.ts +19 -0
  284. package/dist/services/sync/prompts.js +128 -0
  285. package/dist/services/sync/prompts.js.map +1 -0
  286. package/dist/services/sync/reconciler.d.ts +48 -0
  287. package/dist/services/sync/reconciler.js +295 -0
  288. package/dist/services/sync/reconciler.js.map +1 -0
  289. package/dist/services/sync/source-config.d.ts +45 -0
  290. package/dist/services/sync/source-config.js +208 -0
  291. package/dist/services/sync/source-config.js.map +1 -0
  292. package/dist/services/sync/source-definitions/asana.d.ts +15 -0
  293. package/dist/services/sync/source-definitions/asana.js +48 -0
  294. package/dist/services/sync/source-definitions/asana.js.map +1 -0
  295. package/dist/services/sync/source-definitions/definitions.d.ts +21 -0
  296. package/dist/services/sync/source-definitions/definitions.js +26 -0
  297. package/dist/services/sync/source-definitions/definitions.js.map +1 -0
  298. package/dist/services/sync/source-definitions/gdrive.d.ts +16 -0
  299. package/dist/services/sync/source-definitions/gdrive.js +68 -0
  300. package/dist/services/sync/source-definitions/gdrive.js.map +1 -0
  301. package/dist/services/sync/source-definitions/granola.d.ts +2 -0
  302. package/dist/services/sync/source-definitions/granola.js +28 -0
  303. package/dist/services/sync/source-definitions/granola.js.map +1 -0
  304. package/dist/services/sync/source-definitions/linear.d.ts +2 -0
  305. package/dist/services/sync/source-definitions/linear.js +60 -0
  306. package/dist/services/sync/source-definitions/linear.js.map +1 -0
  307. package/dist/services/sync/source-definitions/obsidian.d.ts +2 -0
  308. package/dist/services/sync/source-definitions/obsidian.js +55 -0
  309. package/dist/services/sync/source-definitions/obsidian.js.map +1 -0
  310. package/dist/services/sync/source-definitions/pipedrive.d.ts +2 -0
  311. package/dist/services/sync/source-definitions/pipedrive.js +52 -0
  312. package/dist/services/sync/source-definitions/pipedrive.js.map +1 -0
  313. package/dist/services/sync/staging.d.ts +53 -0
  314. package/dist/services/sync/staging.js +131 -0
  315. package/dist/services/sync/staging.js.map +1 -0
  316. package/dist/services/sync/structured-extractor.d.ts +49 -0
  317. package/dist/services/sync/structured-extractor.js +344 -0
  318. package/dist/services/sync/structured-extractor.js.map +1 -0
  319. package/dist/services/sync/sync-runner.d.ts +32 -0
  320. package/dist/services/sync/sync-runner.js +195 -0
  321. package/dist/services/sync/sync-runner.js.map +1 -0
  322. package/dist/services/sync/sync-state.d.ts +43 -0
  323. package/dist/services/sync/sync-state.js +154 -0
  324. package/dist/services/sync/sync-state.js.map +1 -0
  325. package/dist/services/sync/types.d.ts +203 -0
  326. package/dist/services/sync/types.js +8 -0
  327. package/dist/services/sync/types.js.map +1 -0
  328. package/dist/services/sync/unstructured-extractor.d.ts +29 -0
  329. package/dist/services/sync/unstructured-extractor.js +197 -0
  330. package/dist/services/sync/unstructured-extractor.js.map +1 -0
  331. package/dist/services/vector-service.d.ts +88 -0
  332. package/dist/services/vector-service.js +322 -0
  333. package/dist/services/vector-service.js.map +1 -0
  334. package/dist/utils/git.d.ts +26 -4
  335. package/dist/utils/git.js +55 -7
  336. package/dist/utils/git.js.map +1 -1
  337. package/dist/utils/merge-resolver.d.ts +34 -0
  338. package/dist/utils/merge-resolver.js +201 -0
  339. package/dist/utils/merge-resolver.js.map +1 -0
  340. package/dist/utils/preflight.d.ts +2 -1
  341. package/dist/utils/preflight.js +8 -1
  342. package/dist/utils/preflight.js.map +1 -1
  343. package/dist/utils/version-checker.d.ts +23 -0
  344. package/dist/utils/version-checker.js +116 -0
  345. package/dist/utils/version-checker.js.map +1 -0
  346. package/dist/utils/workspace-config.d.ts +8 -0
  347. package/dist/utils/workspace-config.js +22 -0
  348. package/dist/utils/workspace-config.js.map +1 -0
  349. package/package.json +24 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-tools.js","sourceRoot":"","sources":["../../../src/agent/tools/sync-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,aAAqB,EAAE,eAAgC;IACrF,OAAO;QACL,oBAAoB;QACpB;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,sHAAsH;YACnI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC,CAAC;gBACxG,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC,CAAC;gBACvF,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAC;aACjG,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B;wBACE,aAAa;wBACb,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,gBAAgB,EAAE,eAAe,CAAC,iBAAiB;qBACpD,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;oBAEF,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,MAAM;wBACN,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,uBAAuB;QACvB;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,kHAAkH;YAC/H,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;oBAClD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;oBAErC,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;wBAC7B,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,yCAAyC;QACzC;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,0IAA0I;YACvJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC,CAAC;aACpG,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,aAAa,EACb,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACxB,CAAC;oBAEF,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;wBACrF,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC7B,SAAS,EAAE,+FAA+F;qBAC3G,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,oCAAoC;QACpC;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,8JAA8J;YAC3K,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAC;aAClG,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,MAAM,WAAW,CACf,aAAa,EACb,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,QAAQ,EAAE,CACpD,CAAC;oBAEF,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,0EAA0E;QAC1E;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,6BAA6B;YACpC,WAAW,EAAE,uGAAuG;YACpH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC,CAAC;aACrG,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,QAAQ,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;oBAChG,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,aAAa,EACb,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CACtC,CAAC;oBAEF,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,MAAM;wBACN,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,gBAAgB;QAChB;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,+CAA+C;YAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;oBAClD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;oBACxC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAEhB,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,UAAU;wBACV,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,4BAA4B;qBACxE,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,8BAA8B;QAC9B;YACE,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,mPAAmP;YAChQ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAEnC,6CAA6C;oBAC7C,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC1D,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC,CAAC;oBAEJ,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAE7D,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,OAAO;wBACP,UAAU;wBACV,oBAAoB;qBACrB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,sBAAsB;QACtB;YACE,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,iGAAiG;YAC9G,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAAC;gBAC7F,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC,CAAC;gBAC5F,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CACjC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,EAC5C,EAAE,WAAW,EAAE,6DAA6D,EAAE,CAC/E,CAAC;gBACF,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAC;aAClF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;oBACzD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;oBAEtD,iCAAiC;oBACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAC9B,OAAO,cAAc,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,WAAW,MAAM,CAAC,IAAI,iDAAiD;yBAC/E,CAAC,CAAC;oBACL,CAAC;oBAED,0BAA0B;oBAC1B,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;oBAClD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;oBACjE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,cAAc,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,cAAc,aAAa,oFAAoF,aAAa,EAAE;4BACrI,mBAAmB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBACjD,CAAC,CAAC;oBACL,CAAC;oBAED,sBAAsB;oBACtB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;oBACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,IAAI,UAAU,EAAE,eAAe,IAAI,EAAE,CAAC;oBAE7E,MAAM,MAAM,GAAiB;wBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,SAAS,EAAE,aAAa;wBACxB,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAClC,eAAe,EAAE,QAAQ;qBAC1B,CAAC;oBAEF,WAAW;oBACX,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtB,OAAO,cAAc,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,uBAAuB;4BAC9B,gBAAgB,EAAE,UAAU,CAAC,MAAM;yBACpC,CAAC,CAAC;oBACL,CAAC;oBAED,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEvB,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,qBAAqB,QAAQ,CAAC,MAAM,qBAAqB;wBACxF,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,kBAAkB;QAClB;YACE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,qCAAqC;YAClD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;aACzD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAE9C,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,OAAO;wBACP,OAAO,EAAE,OAAO;4BACd,CAAC,CAAC,WAAW,MAAM,CAAC,IAAI,YAAY;4BACpC,CAAC,CAAC,WAAW,MAAM,CAAC,IAAI,cAAc;qBACzC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,6EAA6E;QAE7E,iBAAiB;QACjB;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,6MAA6M;YAC1N,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAC;gBAClG,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC,CAAC;gBACjF,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC,CAAC;gBAClG,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC,CAAC;aACzG,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC;wBACE,aAAa;wBACb,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,eAAe,EAAE,MAAM,CAAC,eAAe;wBACvC,gBAAgB,EAAE,eAAe,CAAC,iBAAiB;qBACpD,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;oBAEF,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,MAAM;wBACN,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC7B,SAAS,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;4BAC9C,CAAC,CAAC,+FAA+F;4BACjG,CAAC,CAAC,SAAS;qBACd,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,gDAAgD;QAChD;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,kGAAkG;YAC/G,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,OAAY,EAAE,EAAE;gBAClD,IAAI,CAAC;oBACH,MAAM,KAAK,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAEpC,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAChF,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBACzE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBAED,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,QAAQ;wBACR,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;4BAC1B,CAAC,CAAC,wBAAwB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BAC/C,CAAC,CAAC,uBAAuB;qBAC5B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,gDAAgD;QAChD;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,+OAA+O;YAC5P,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,OAAY,EAAE,EAAE;gBAClD,IAAI,CAAC;oBACH,MAAM,KAAK,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,UAAU,GAAa,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAa,EAAE,CAAC;oBAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAEpC,sCAAsC;wBACtC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBACjG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;4BAAE,SAAS;wBAE3D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;wBAE1D,8BAA8B;wBAC9B,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAEhF,yCAAyC;wBACzC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAEzE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,gBAAgB,CAAC,CAAC;oBAC3D,CAAC;oBAED,oBAAoB;oBACpB,IAAI,cAAc,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;wBAClD,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;4BACzB,OAAO,CAAC,KAAK,EAAE,CAAC;4BAChB,cAAc,GAAG,IAAI,CAAC;wBACxB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,+BAA+B,CAAC,CAAC;oBAE3C,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtG,IAAI,cAAc;wBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAElD,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,UAAU;wBACV,OAAO;wBACP,cAAc;wBACd,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB;qBAC5E,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,iBAAiB;QACjB;YACE,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,sIAAsI;YACnJ,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;aAC1E,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;oBACtF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC3E,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;oBAE3B,MAAM,QAAQ,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACpF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI;wBACvB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;wBAC9C,CAAC,CAAC,QAAQ,CAAC;oBAEb,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtC,OAAO,cAAc,CAAC;4BACpB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,SAAS,MAAM,CAAC,IAAI,0BAA0B;4BACrD,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBAC1C,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,WAAW,GAA2B,EAAE,CAAC;oBAC/C,IAAI,YAAY,GAAG,CAAC,CAAC;oBAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAEpC,IAAI,CAAC;4BACH,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;gCACjC,QAAQ;gCACR,QAAQ,EAAE,IAAI,CAAC,IAAI;gCACnB,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,2BAA2B,EAAE;6BAChF,CAAC,CAAC;4BAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;4BAC9B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACxB,MAAM,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;4BACtD,CAAC;4BACD,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAE5C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;4BACzC,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC;wBAClC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB;wBAChD,CAAC;oBACH,CAAC;oBAED,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,WAAW,YAAY,oBAAoB,KAAK,CAAC,MAAM,UAAU;qBAC3E,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,6EAA6E;QAE7E,kCAAkC;QAClC;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,gLAAgL;YAC7L,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,KAAK,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,OAAO,GAA6B,EAAE,CAAC;oBAC7C,IAAI,YAAY,GAAG,CAAC,CAAC;oBAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAEpC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBACjG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;4BAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;4BAC3B,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;wBAC/B,CAAC;oBACH,CAAC;oBAED,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,YAAY;wBACZ,OAAO;wBACP,OAAO,EAAE,YAAY,GAAG,CAAC;4BACvB,CAAC,CAAC,GAAG,YAAY,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,mBAAmB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;4BAC1J,CAAC,CAAC,yBAAyB;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,wBAAwB;QACxB;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,2KAA2K;YACxL,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+DAA+D,EAAE,CAAC,CAAC;gBAClH,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAC;gBACjF,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC,CAAC;aACvG,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAW,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,KAAK,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;wBAC/B,CAAC,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC;wBAC1B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACb,MAAM,KAAK,GAA2B,EAAE,CAAC;oBAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBAEpC,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;wBAC3B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;4BAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC/B,CAAC;6BAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;4BAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;wBAC3C,CAAC;wBAED,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;4BAChD,8DAA8D;4BAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;4BAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK;gCACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,uDAAuD;gCAChF,CAAC,CAAC,IAAI,CAAC;wBACX,CAAC;oBACH,CAAC;oBAED,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;wBACvC,KAAK;wBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;4BACpC,CAAC,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,UAAU;4BACnD,CAAC,CAAC,mBAAmB;qBACxB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,iBAAiB;QACjB;YACE,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,kGAAkG;YAC/G,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,OAAY,EAAE,EAAE;gBACnD,IAAI,CAAC;oBACH,MAAM,KAAK,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,OAAO,GAA2B,EAAE,CAAC;oBAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBACpC,IAAI,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACzC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpF,CAAC;oBACH,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;oBACzE,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,IAAI;wBACb,OAAO;wBACP,OAAO,EAAE,MAAM,GAAG,CAAC;4BACjB,CAAC,CAAC,UAAU,MAAM,QAAQ,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;4BACnD,CAAC,CAAC,+BAA+B;qBACpC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;QAED,iBAAiB;QACjB;YACE,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,4EAA4E;YACzF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,OAAY,EAAE,EAAE;gBACnD,IAAI,CAAC;oBACH,MAAM,KAAK,GAA0C,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,OAAO,GAA2B,EAAE,CAAC;oBAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBACpC,IAAI,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACzC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpF,CAAC;oBACH,CAAC;oBAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;oBAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;oBAC9E,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,SAAS,KAAK,CAAC;wBACxB,OAAO;wBACP,OAAO,EAAE,SAAS,GAAG,CAAC;4BACpB,CAAC,CAAC,GAAG,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0CAA0C;4BAC1F,CAAC,CAAC,OAAO,GAAG,CAAC;gCACX,CAAC,CAAC,qBAAqB,OAAO,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;gCAChE,CAAC,CAAC,+BAA+B;qBACtC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,cAAc,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Custom Tool Loader — user-defined agent tools (STU-48).
3
+ *
4
+ * Scans one or more tool directories for subdirectories containing a tool.js
5
+ * entrypoint. Each tool.js must export a default object with:
6
+ *
7
+ * {
8
+ * name: string — unique tool identifier
9
+ * description: string — shown to the agent
10
+ * parameters: JSON Schema — input validation
11
+ * execute: async (toolCallId, params, context) => { content, details }
12
+ * }
13
+ *
14
+ * Directories are processed in order — first occurrence of a name wins,
15
+ * so workspace-level tools override app-bundled tools.
16
+ *
17
+ * context provides: { workspaceManager, gitUser }
18
+ */
19
+ import { WorkspaceManager } from '../../core/workspace-manager.js';
20
+ import { GitUser } from '../../services/git.js';
21
+ export interface ToolContext {
22
+ workspaceManager: WorkspaceManager;
23
+ gitUser: GitUser;
24
+ }
25
+ export declare function loadCustomTools(toolsDirs: string[], context: ToolContext): Promise<any[]>;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Custom Tool Loader — user-defined agent tools (STU-48).
3
+ *
4
+ * Scans one or more tool directories for subdirectories containing a tool.js
5
+ * entrypoint. Each tool.js must export a default object with:
6
+ *
7
+ * {
8
+ * name: string — unique tool identifier
9
+ * description: string — shown to the agent
10
+ * parameters: JSON Schema — input validation
11
+ * execute: async (toolCallId, params, context) => { content, details }
12
+ * }
13
+ *
14
+ * Directories are processed in order — first occurrence of a name wins,
15
+ * so workspace-level tools override app-bundled tools.
16
+ *
17
+ * context provides: { workspaceManager, gitUser }
18
+ */
19
+ import { existsSync, readdirSync } from 'fs';
20
+ import { join } from 'path';
21
+ export async function loadCustomTools(toolsDirs, context) {
22
+ const tools = [];
23
+ const seen = new Set();
24
+ for (const dir of toolsDirs) {
25
+ if (!existsSync(dir))
26
+ continue;
27
+ let entries;
28
+ try {
29
+ entries = readdirSync(dir);
30
+ }
31
+ catch {
32
+ continue;
33
+ }
34
+ for (const entry of entries) {
35
+ if (entry.startsWith('.'))
36
+ continue;
37
+ const toolPath = join(dir, entry, 'tool.js');
38
+ if (!existsSync(toolPath))
39
+ continue;
40
+ try {
41
+ const mod = await import(toolPath);
42
+ const tool = mod.default ?? mod;
43
+ if (!tool || typeof tool !== 'object') {
44
+ console.warn(`Custom tool at ${toolPath}: does not export an object — skipping`);
45
+ continue;
46
+ }
47
+ if (typeof tool.name !== 'string' || !tool.name) {
48
+ console.warn(`Custom tool at ${toolPath}: missing required field "name" — skipping`);
49
+ continue;
50
+ }
51
+ if (typeof tool.execute !== 'function') {
52
+ console.warn(`Custom tool at ${toolPath}: missing required field "execute" — skipping`);
53
+ continue;
54
+ }
55
+ // First occurrence wins (workspace overrides app-bundled)
56
+ if (seen.has(tool.name))
57
+ continue;
58
+ seen.add(tool.name);
59
+ // Wrap execute to inject context as third argument
60
+ const originalExecute = tool.execute.bind(tool);
61
+ tools.push({
62
+ ...tool,
63
+ execute: (toolCallId, params) => originalExecute(toolCallId, params, context),
64
+ });
65
+ }
66
+ catch (err) {
67
+ console.warn(`Failed to load custom tool from ${toolPath}:`, err);
68
+ }
69
+ }
70
+ }
71
+ return tools;
72
+ }
73
+ //# sourceMappingURL=tool-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-loader.js","sourceRoot":"","sources":["../../../src/agent/tools/tool-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAmB,EACnB,OAAoB;IAEpB,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAE/B,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAEpC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;gBAEhC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,kBAAkB,QAAQ,wCAAwC,CAAC,CAAC;oBACjF,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChD,OAAO,CAAC,IAAI,CAAC,kBAAkB,QAAQ,4CAA4C,CAAC,CAAC;oBACrF,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,kBAAkB,QAAQ,+CAA+C,CAAC,CAAC;oBACxF,SAAS;gBACX,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEpB,mDAAmD;gBACnD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,IAAI;oBACP,OAAO,EAAE,CAAC,UAAkB,EAAE,MAAW,EAAE,EAAE,CAC3C,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;iBAC/C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * GitHub authentication for Studiograph
3
3
  *
4
- * Uses GitHub Device Flowdesigned for CLI tools.
5
- * No redirect URI or local HTTP server required.
4
+ * Uses Personal Access Tokens (classic) universally compatible with
5
+ * any org, no OAuth app approval required.
6
6
  * Token stored globally at ~/.studiograph/auth.json
7
7
  */
8
8
  import { Octokit } from '@octokit/rest';
9
- export declare const GITHUB_CLIENT_ID: string;
9
+ /** URL to create a classic PAT with pre-filled scopes */
10
+ export declare const PAT_CREATE_URL = "https://github.com/settings/tokens/new?scopes=repo,read:org,user:email&description=Studiograph+CLI";
10
11
  export interface GitHubUser {
11
12
  login: string;
12
13
  name: string;
@@ -17,17 +18,19 @@ interface StoredAuth {
17
18
  user: GitHubUser;
18
19
  }
19
20
  /**
20
- * Run GitHub Device Flow to get an access token.
21
- * Displays a user_code and verification URL, polls until user completes auth.
21
+ * Prompt the user for a GitHub Personal Access Token (classic).
22
+ * Opens the browser to the PAT creation page, displays required scopes,
23
+ * and accepts masked input.
22
24
  */
23
- export declare function runDeviceFlow(): Promise<string>;
25
+ export declare function promptForPAT(): Promise<string>;
24
26
  /**
25
27
  * Store token and user info at ~/.studiograph/auth.json
26
28
  */
27
29
  export declare function storeToken(token: string, user: GitHubUser): void;
28
30
  /**
29
- * Load stored token and user from ~/.studiograph/auth.json
30
- * Returns null if not found or invalid.
31
+ * Load stored token and user.
32
+ * Checks environment variables first (STUDIOGRAPH_GITHUB_TOKEN, then GITHUB_TOKEN),
33
+ * then falls back to ~/.studiograph/auth.json.
31
34
  */
32
35
  export declare function loadToken(): StoredAuth | null;
33
36
  /**
@@ -1,87 +1,62 @@
1
1
  /**
2
2
  * GitHub authentication for Studiograph
3
3
  *
4
- * Uses GitHub Device Flowdesigned for CLI tools.
5
- * No redirect URI or local HTTP server required.
4
+ * Uses Personal Access Tokens (classic) universally compatible with
5
+ * any org, no OAuth app approval required.
6
6
  * Token stored globally at ~/.studiograph/auth.json
7
7
  */
8
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
9
9
  import { join } from 'path';
10
10
  import { homedir } from 'os';
11
+ import { exec } from 'child_process';
11
12
  import { Octokit } from '@octokit/rest';
12
- // OAuth App client_id for Device Flow. Safe to commit — Device Flow has no client_secret
13
- // and client_ids are public by design (see: github.com/cli/cli source).
14
- // Registered under the studiographai org as "Studiograph CLI".
15
- export const GITHUB_CLIENT_ID = process.env.STUDIOGRAPH_GITHUB_CLIENT_ID ?? 'Ov23lipHzDbTRqhz4Zqe';
16
- const SCOPES = 'repo read:org user:email';
17
- const DEVICE_CODE_URL = 'https://github.com/login/device/code';
18
- const ACCESS_TOKEN_URL = 'https://github.com/login/oauth/access_token';
13
+ import { note, password, isCancel } from '@clack/prompts';
14
+ /** URL to create a classic PAT with pre-filled scopes */
15
+ export const PAT_CREATE_URL = 'https://github.com/settings/tokens/new?scopes=repo,read:org,user:email&description=Studiograph+CLI';
19
16
  /**
20
- * Run GitHub Device Flow to get an access token.
21
- * Displays a user_code and verification URL, polls until user completes auth.
17
+ * Prompt the user for a GitHub Personal Access Token (classic).
18
+ * Opens the browser to the PAT creation page, displays required scopes,
19
+ * and accepts masked input.
22
20
  */
23
- export async function runDeviceFlow() {
24
- // Step 1: Request device and user codes
25
- const codeResponse = await fetch(DEVICE_CODE_URL, {
26
- method: 'POST',
27
- headers: {
28
- 'Content-Type': 'application/json',
29
- Accept: 'application/json',
21
+ export async function promptForPAT() {
22
+ // Best-effort browser open
23
+ const url = PAT_CREATE_URL;
24
+ if (process.platform === 'darwin') {
25
+ exec(`open "${url}"`);
26
+ }
27
+ else if (process.platform === 'linux') {
28
+ exec(`xdg-open "${url}"`);
29
+ }
30
+ else if (process.platform === 'win32') {
31
+ exec(`start "" "${url}"`);
32
+ }
33
+ note([
34
+ 'Studiograph needs a GitHub Personal Access Token',
35
+ '(classic) with these scopes:',
36
+ '',
37
+ ' repo — read/write repositories',
38
+ ' read:org — verify org membership',
39
+ ' user:email — read your email address',
40
+ '',
41
+ `Create one here: ${url}`,
42
+ ].join('\n'), 'GitHub Authentication');
43
+ const token = await password({
44
+ message: 'Paste your GitHub Personal Access Token:',
45
+ validate: (value) => {
46
+ const trimmed = value.trim();
47
+ if (!trimmed)
48
+ return 'Token is required';
49
+ if (!trimmed.startsWith('ghp_') &&
50
+ !trimmed.startsWith('github_pat_') &&
51
+ !trimmed.startsWith('gho_')) {
52
+ return 'Invalid token format. GitHub tokens start with ghp_, github_pat_, or gho_';
53
+ }
30
54
  },
31
- body: JSON.stringify({
32
- client_id: GITHUB_CLIENT_ID,
33
- scope: SCOPES,
34
- }),
35
55
  });
36
- if (!codeResponse.ok) {
37
- throw new Error(`Failed to start device flow: ${codeResponse.statusText}`);
56
+ if (isCancel(token)) {
57
+ throw new Error('Authentication cancelled');
38
58
  }
39
- const codeData = await codeResponse.json();
40
- const { device_code, user_code, verification_uri, expires_in, interval } = codeData;
41
- // Step 2: Display instructions to user
42
- console.log(`\nGo to ${verification_uri} and enter: ${user_code}\n`);
43
- // Step 3: Poll for token
44
- const pollIntervalMs = (interval ?? 5) * 1000;
45
- const expiresAt = Date.now() + (expires_in ?? 900) * 1000;
46
- while (Date.now() < expiresAt) {
47
- await sleep(pollIntervalMs);
48
- const tokenResponse = await fetch(ACCESS_TOKEN_URL, {
49
- method: 'POST',
50
- headers: {
51
- 'Content-Type': 'application/json',
52
- Accept: 'application/json',
53
- },
54
- body: JSON.stringify({
55
- client_id: GITHUB_CLIENT_ID,
56
- device_code,
57
- grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
58
- }),
59
- });
60
- if (!tokenResponse.ok) {
61
- throw new Error(`Token poll failed: ${tokenResponse.statusText}`);
62
- }
63
- const tokenData = await tokenResponse.json();
64
- if (tokenData.access_token) {
65
- return tokenData.access_token;
66
- }
67
- if (tokenData.error === 'authorization_pending') {
68
- // Still waiting — continue polling
69
- continue;
70
- }
71
- if (tokenData.error === 'slow_down') {
72
- // Back off by an extra 5 seconds
73
- await sleep(5000);
74
- continue;
75
- }
76
- if (tokenData.error === 'expired_token') {
77
- throw new Error('Device code expired. Please try again.');
78
- }
79
- if (tokenData.error === 'access_denied') {
80
- throw new Error('Authorization was denied.');
81
- }
82
- throw new Error(`Unexpected error: ${tokenData.error ?? 'unknown'}`);
83
- }
84
- throw new Error('Device code expired before authorization completed.');
59
+ return token.trim();
85
60
  }
86
61
  /**
87
62
  * Get the path to the global auth file (~/.studiograph/auth.json)
@@ -99,10 +74,19 @@ export function storeToken(token, user) {
99
74
  writeFileSync(getAuthFilePath(), JSON.stringify(data, null, 2), { encoding: 'utf-8', mode: 0o600 });
100
75
  }
101
76
  /**
102
- * Load stored token and user from ~/.studiograph/auth.json
103
- * Returns null if not found or invalid.
77
+ * Load stored token and user.
78
+ * Checks environment variables first (STUDIOGRAPH_GITHUB_TOKEN, then GITHUB_TOKEN),
79
+ * then falls back to ~/.studiograph/auth.json.
104
80
  */
105
81
  export function loadToken() {
82
+ // Environment variable tokens take priority
83
+ const envToken = process.env.STUDIOGRAPH_GITHUB_TOKEN || process.env.GITHUB_TOKEN;
84
+ if (envToken) {
85
+ return {
86
+ token: envToken,
87
+ user: { login: '_env', name: 'Environment Token', email: '' },
88
+ };
89
+ }
106
90
  const authPath = getAuthFilePath();
107
91
  if (!existsSync(authPath))
108
92
  return null;
@@ -174,7 +158,4 @@ export async function getUserOrgTeams(octokit, org) {
174
158
  return [];
175
159
  }
176
160
  }
177
- function sleep(ms) {
178
- return new Promise(resolve => setTimeout(resolve, ms));
179
- }
180
161
  //# sourceMappingURL=github.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/auth/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/auth/github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Semantic color helpers for CLI output.
3
+ * Wraps picocolors for consistent styling across all commands.
4
+ */
5
+ export { default as pc } from 'picocolors';
6
+ export declare const created: (s: string) => string;
7
+ export declare const updated: (s: string) => string;
8
+ export declare const skipped: (s: string) => string;
9
+ export declare const error: (s: string) => string;
10
+ export declare const success: (s: string) => string;
11
+ export declare const warn: (s: string) => string;
12
+ export declare const info: (s: string) => string;
13
+ export declare const entityRef: (s: string) => string;
14
+ export declare const header: (s: string) => string;
15
+ export declare const count: (s: string) => string;
16
+ export declare const dimText: (s: string) => string;
17
+ export declare const accent: (s: string) => string;
18
+ export declare const toolRef: (s: string) => string;
19
+ /**
20
+ * Colorize a raw unified diff string line-by-line.
21
+ *
22
+ * - `+` lines → green
23
+ * - `-` lines → red
24
+ * - `@@` hunk headers → magenta
25
+ * - `---`/`+++` file headers → cyan bold
26
+ * - everything else → dim
27
+ */
28
+ export declare function colorizeDiff(rawDiff: string): string;
29
+ /**
30
+ * Colorize a single line of agent text output for the CLI chat interface.
31
+ * Detects patterns the agent uses (ALL CAPS headers, bullet lists, numbered
32
+ * items) and applies minimal coloring to improve scanability.
33
+ */
34
+ export declare function colorizeAgentLine(line: string): string;
35
+ /**
36
+ * Render a user prompt line with a dark gray background (256-color mode).
37
+ * The \x1b[K clears to end of line with the current background, giving
38
+ * a full-width bar effect.
39
+ */
40
+ export declare function renderUserPrompt(message: string): string;
41
+ /**
42
+ * Format an action line like " Created: person/john-doe"
43
+ */
44
+ export declare function formatAction(action: 'create' | 'update' | 'skip', type: string, id: string): string;
45
+ /**
46
+ * Format a summary line like "3 created, 5 updated, 1 skipped"
47
+ */
48
+ export declare function formatSummary(counts: {
49
+ created?: number;
50
+ updated?: number;
51
+ skipped?: number;
52
+ }): string;
53
+ export declare function statusIcon(status: 'A' | 'M' | 'D'): string;
54
+ export declare function statusLabel(status: 'A' | 'M' | 'D'): string;
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Semantic color helpers for CLI output.
3
+ * Wraps picocolors for consistent styling across all commands.
4
+ */
5
+ import pc from 'picocolors';
6
+ // ── Base colors (re-export for direct use when semantic helpers don't fit) ───
7
+ export { default as pc } from 'picocolors';
8
+ // ── Action colors ────────────────────────────────────────────────────────────
9
+ export const created = (s) => pc.green(s);
10
+ export const updated = (s) => pc.yellow(s);
11
+ export const skipped = (s) => pc.dim(s);
12
+ export const error = (s) => pc.red(s);
13
+ export const success = (s) => pc.green(pc.bold(s));
14
+ export const warn = (s) => pc.yellow(s);
15
+ export const info = (s) => pc.cyan(s);
16
+ // ── Structural colors ────────────────────────────────────────────────────────
17
+ export const entityRef = (s) => pc.cyan(s);
18
+ export const header = (s) => pc.bold(s);
19
+ export const count = (s) => pc.bold(s);
20
+ export const dimText = (s) => pc.dim(s);
21
+ export const accent = (s) => pc.blue(s);
22
+ export const toolRef = (s) => pc.cyan(pc.bold(s));
23
+ // ── Diff colorizer ───────────────────────────────────────────────────────────
24
+ /**
25
+ * Colorize a raw unified diff string line-by-line.
26
+ *
27
+ * - `+` lines → green
28
+ * - `-` lines → red
29
+ * - `@@` hunk headers → magenta
30
+ * - `---`/`+++` file headers → cyan bold
31
+ * - everything else → dim
32
+ */
33
+ export function colorizeDiff(rawDiff) {
34
+ if (!rawDiff)
35
+ return '';
36
+ return rawDiff
37
+ .split('\n')
38
+ .map((line) => {
39
+ if (line.startsWith('+++') || line.startsWith('---')) {
40
+ return pc.cyan(pc.bold(line));
41
+ }
42
+ if (line.startsWith('@@')) {
43
+ return pc.magenta(line);
44
+ }
45
+ if (line.startsWith('+')) {
46
+ return pc.green(line);
47
+ }
48
+ if (line.startsWith('-')) {
49
+ return pc.red(line);
50
+ }
51
+ if (line.startsWith('diff ')) {
52
+ return pc.bold(line);
53
+ }
54
+ return pc.dim(line);
55
+ })
56
+ .join('\n');
57
+ }
58
+ // ── Agent output colorizer ──────────────────────────────────────────────────
59
+ /**
60
+ * Colorize a single line of agent text output for the CLI chat interface.
61
+ * Detects patterns the agent uses (ALL CAPS headers, bullet lists, numbered
62
+ * items) and applies minimal coloring to improve scanability.
63
+ */
64
+ export function colorizeAgentLine(line) {
65
+ const trimmed = line.trim();
66
+ // ALL CAPS header lines (2+ chars, only uppercase + digits + spaces + punctuation)
67
+ if (trimmed.length > 2 && /^[A-Z][A-Z\s\d\-—:,.()&/]+$/.test(trimmed)) {
68
+ return pc.bold(line);
69
+ }
70
+ // Numbered items: "1. text" or " 2. text" — color the number
71
+ const numMatch = line.match(/^(\s*)(\d+\.)(\s)(.*)/);
72
+ if (numMatch) {
73
+ return numMatch[1] + pc.cyan(numMatch[2]) + numMatch[3] + numMatch[4];
74
+ }
75
+ // Bullet points: "- text" or " - text" — dim the dash
76
+ const bulletMatch = line.match(/^(\s*)(- )(.*)/);
77
+ if (bulletMatch) {
78
+ return bulletMatch[1] + pc.dim(bulletMatch[2]) + bulletMatch[3];
79
+ }
80
+ return line;
81
+ }
82
+ /**
83
+ * Render a user prompt line with a dark gray background (256-color mode).
84
+ * The \x1b[K clears to end of line with the current background, giving
85
+ * a full-width bar effect.
86
+ */
87
+ export function renderUserPrompt(message) {
88
+ return `\x1b[48;5;237m > ${message} \x1b[K\x1b[0m`;
89
+ }
90
+ // ── Compound formatters ──────────────────────────────────────────────────────
91
+ /**
92
+ * Format an action line like " Created: person/john-doe"
93
+ */
94
+ export function formatAction(action, type, id) {
95
+ const ref = entityRef(`${type}/${id}`);
96
+ switch (action) {
97
+ case 'create':
98
+ return ` ${created('Created')}: ${ref}`;
99
+ case 'update':
100
+ return ` ${updated('Updated')}: ${ref}`;
101
+ case 'skip':
102
+ return ` ${skipped('Skipped')}: ${skipped(`${type}/${id}`)}`;
103
+ }
104
+ }
105
+ /**
106
+ * Format a summary line like "3 created, 5 updated, 1 skipped"
107
+ */
108
+ export function formatSummary(counts) {
109
+ const parts = [];
110
+ if (counts.created && counts.created > 0)
111
+ parts.push(created(`${counts.created} created`));
112
+ if (counts.updated && counts.updated > 0)
113
+ parts.push(updated(`${counts.updated} updated`));
114
+ if (counts.skipped && counts.skipped > 0)
115
+ parts.push(skipped(`${counts.skipped} skipped`));
116
+ return parts.join(', ') || dimText('no changes');
117
+ }
118
+ // ── File status helpers (for review) ─────────────────────────────────────────
119
+ export function statusIcon(status) {
120
+ switch (status) {
121
+ case 'A': return created('+');
122
+ case 'M': return updated('~');
123
+ case 'D': return error('−');
124
+ }
125
+ }
126
+ export function statusLabel(status) {
127
+ switch (status) {
128
+ case 'A': return created('new');
129
+ case 'M': return updated('modified');
130
+ case 'D': return error('deleted');
131
+ }
132
+ }
133
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/cli/colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * studiograph app command
3
+ *
4
+ * Manages Studiograph app plugins — install, and in future: list, remove.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const appCommand: Command;