@kubbisec/ai-linux-arm64 0.1.22 → 0.1.23

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 (358) hide show
  1. package/bin/kubbisec +0 -0
  2. package/bundled/components/kubbisec-model-selector.d.ts +34 -47
  3. package/bundled/components/kubbisec-model-selector.js +177 -187
  4. package/bundled/components/kubbisec-model-selector.js.map +1 -1
  5. package/bundled/config/config.d.ts +6 -6
  6. package/bundled/config/config.d.ts.map +1 -1
  7. package/bundled/config/config.js +52 -54
  8. package/bundled/config/config.js.map +1 -1
  9. package/bundled/config/detect-local-llm-providers.d.ts +16 -26
  10. package/bundled/config/detect-local-llm-providers.js +142 -130
  11. package/bundled/config/ensure-kbs-project-settings.d.ts +20 -0
  12. package/bundled/config/ensure-kbs-project-settings.d.ts.map +1 -0
  13. package/bundled/config/ensure-kbs-project-settings.js +46 -0
  14. package/bundled/config/ensure-kbs-project-settings.js.map +1 -0
  15. package/bundled/config/ensure-kubbisec-project-settings.d.ts +11 -9
  16. package/bundled/config/ensure-kubbisec-project-settings.d.ts.map +1 -1
  17. package/bundled/config/ensure-kubbisec-project-settings.js +72 -44
  18. package/bundled/config/ensure-kubbisec-project-settings.js.map +1 -1
  19. package/bundled/config/extended-context.d.ts +6 -5
  20. package/bundled/config/extended-context.js +22 -23
  21. package/bundled/config/feature-flags.d.ts +2 -10
  22. package/bundled/config/feature-flags.js +2 -8
  23. package/bundled/config/format-kubbisec-footer-status.d.ts +1 -1
  24. package/bundled/config/format-kubbisec-footer-status.js +31 -26
  25. package/bundled/config/kubbisec-extension-manifest.d.ts +2 -22
  26. package/bundled/config/kubbisec-extension-manifest.d.ts.map +1 -1
  27. package/bundled/config/kubbisec-extension-manifest.js +19 -20
  28. package/bundled/config/kubbisec-extension-manifest.js.map +1 -1
  29. package/bundled/config/llm-config-mutations.d.ts +25 -51
  30. package/bundled/config/llm-config-mutations.js +182 -173
  31. package/bundled/config/llm-config.d.ts +41 -54
  32. package/bundled/config/llm-config.js +199 -199
  33. package/bundled/config/llm-provider-catalog.d.ts +15 -18
  34. package/bundled/config/llm-provider-catalog.js +46 -45
  35. package/bundled/config/materialize-kubbisec-pi-resources.d.ts +1 -1
  36. package/bundled/config/materialize-kubbisec-pi-resources.d.ts.map +1 -1
  37. package/bundled/config/materialize-kubbisec-pi-resources.js +182 -174
  38. package/bundled/config/materialize-kubbisec-pi-resources.js.map +1 -1
  39. package/bundled/config/register-custom-llm-providers.d.ts +5 -11
  40. package/bundled/config/register-custom-llm-providers.js +15 -17
  41. package/bundled/config/register-kubbisec-llm-provider.d.ts +10 -14
  42. package/bundled/config/register-kubbisec-llm-provider.js +42 -50
  43. package/bundled/config/resolve-agents-context-file.d.ts +1 -1
  44. package/bundled/config/resolve-agents-context-file.js +34 -33
  45. package/bundled/config/resource-budget.d.ts +12 -12
  46. package/bundled/config/resource-budget.js +28 -28
  47. package/bundled/config/sync-kubbisec-pi-models.d.ts +3 -6
  48. package/bundled/config/sync-kubbisec-pi-models.js +58 -58
  49. package/bundled/copy/cli-reference-index.d.ts +2 -7
  50. package/bundled/copy/cli-reference-index.d.ts.map +1 -1
  51. package/bundled/copy/cli-reference-index.js +2 -62
  52. package/bundled/copy/cli-reference-index.js.map +1 -1
  53. package/bundled/copy/kubbisec-shell-copy.d.ts +6 -11
  54. package/bundled/copy/kubbisec-shell-copy.js +1 -1
  55. package/bundled/extensions/cli-local-shared.d.ts +36 -45
  56. package/bundled/extensions/cli-local-shared.d.ts.map +1 -1
  57. package/bundled/extensions/cli-local-shared.js +129 -128
  58. package/bundled/extensions/cli-local-shared.js.map +1 -1
  59. package/bundled/extensions/kubbisec-aspm-local.extension.d.ts +15 -18
  60. package/bundled/extensions/kubbisec-aspm-local.extension.d.ts.map +1 -1
  61. package/bundled/extensions/kubbisec-aspm-local.extension.js +106 -121
  62. package/bundled/extensions/kubbisec-aspm-local.extension.js.map +1 -1
  63. package/bundled/extensions/kubbisec-brand.extension.d.ts +1 -1
  64. package/bundled/extensions/kubbisec-brand.extension.js +25 -25
  65. package/bundled/extensions/kubbisec-byok-provider.extension.d.ts +1 -1
  66. package/bundled/extensions/kubbisec-byok-provider.extension.js +2 -2
  67. package/bundled/extensions/kubbisec-clarify.extension.d.ts +35 -64
  68. package/bundled/extensions/kubbisec-clarify.extension.d.ts.map +1 -1
  69. package/bundled/extensions/kubbisec-clarify.extension.js +305 -323
  70. package/bundled/extensions/kubbisec-clarify.extension.js.map +1 -1
  71. package/bundled/extensions/kubbisec-exit.extension.d.ts +1 -1
  72. package/bundled/extensions/kubbisec-exit.extension.js +32 -29
  73. package/bundled/extensions/kubbisec-extended-context.extension.d.ts +1 -1
  74. package/bundled/extensions/kubbisec-extended-context.extension.js +43 -56
  75. package/bundled/extensions/kubbisec-footer.extension.d.ts +14 -14
  76. package/bundled/extensions/kubbisec-footer.extension.d.ts.map +1 -1
  77. package/bundled/extensions/kubbisec-footer.extension.js +215 -205
  78. package/bundled/extensions/kubbisec-footer.extension.js.map +1 -1
  79. package/bundled/extensions/kubbisec-github-local.extension.d.ts +18 -29
  80. package/bundled/extensions/kubbisec-github-local.extension.d.ts.map +1 -1
  81. package/bundled/extensions/kubbisec-github-local.extension.js +457 -129
  82. package/bundled/extensions/kubbisec-github-local.extension.js.map +1 -1
  83. package/bundled/extensions/kubbisec-llm-config.extension.d.ts +1 -1
  84. package/bundled/extensions/kubbisec-llm-config.extension.js +181 -200
  85. package/bundled/extensions/kubbisec-memory.extension.d.ts +7 -9
  86. package/bundled/extensions/kubbisec-memory.extension.d.ts.map +1 -1
  87. package/bundled/extensions/kubbisec-memory.extension.js +95 -88
  88. package/bundled/extensions/kubbisec-naus-local.extension.d.ts +15 -18
  89. package/bundled/extensions/kubbisec-naus-local.extension.d.ts.map +1 -1
  90. package/bundled/extensions/kubbisec-naus-local.extension.js +103 -135
  91. package/bundled/extensions/kubbisec-naus-local.extension.js.map +1 -1
  92. package/bundled/extensions/kubbisec-platform-tools.extension.d.ts +21 -31
  93. package/bundled/extensions/kubbisec-platform-tools.extension.d.ts.map +1 -1
  94. package/bundled/extensions/kubbisec-platform-tools.extension.js +152 -152
  95. package/bundled/extensions/kubbisec-platform-tools.extension.js.map +1 -1
  96. package/bundled/extensions/kubbisec-runtime-status.extension.d.ts +8 -10
  97. package/bundled/extensions/kubbisec-runtime-status.extension.js +13 -15
  98. package/bundled/extensions/kubbisec-scope.extension.d.ts +7 -12
  99. package/bundled/extensions/kubbisec-scope.extension.js +13 -13
  100. package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts +16 -27
  101. package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts.map +1 -1
  102. package/bundled/extensions/kubbisec-skill-mentions.extension.js +64 -73
  103. package/bundled/extensions/kubbisec-skill-mentions.extension.js.map +1 -1
  104. package/bundled/extensions/kubbisec-skill-telemetry.extension.d.ts +3 -2
  105. package/bundled/extensions/kubbisec-skill-telemetry.extension.js +64 -59
  106. package/bundled/extensions/kubbisec-theme-lock.extension.d.ts +1 -1
  107. package/bundled/extensions/kubbisec-theme-lock.extension.js +34 -33
  108. package/bundled/extensions/kubbisec-ui.extension.d.ts +1 -1
  109. package/bundled/extensions/kubbisec-ui.extension.d.ts.map +1 -1
  110. package/bundled/extensions/kubbisec-ui.extension.js +122 -116
  111. package/bundled/extensions/kubbisec-ui.extension.js.map +1 -1
  112. package/bundled/extensions/kubbisec-workflow.extension.d.ts +18 -20
  113. package/bundled/extensions/kubbisec-workflow.extension.d.ts.map +1 -1
  114. package/bundled/extensions/kubbisec-workflow.extension.js +140 -138
  115. package/bundled/node_modules/@aspm/shared/dist/ai/index.d.ts +1 -0
  116. package/bundled/node_modules/@aspm/shared/dist/ai/index.d.ts.map +1 -1
  117. package/bundled/node_modules/@aspm/shared/dist/ai/index.js +1 -0
  118. package/bundled/node_modules/@aspm/shared/dist/ai/index.js.map +1 -1
  119. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.d.ts +7 -0
  120. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.d.ts.map +1 -0
  121. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.js +30 -0
  122. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.js.map +1 -0
  123. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.d.ts +7 -0
  124. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.d.ts.map +1 -0
  125. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.js +14 -0
  126. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.js.map +1 -0
  127. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.d.ts +6 -0
  128. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.d.ts.map +1 -0
  129. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.js +65 -0
  130. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.js.map +1 -0
  131. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.d.ts +8 -0
  132. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.d.ts.map +1 -0
  133. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.js +29 -0
  134. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.js.map +1 -0
  135. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.d.ts +7 -0
  136. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.d.ts.map +1 -0
  137. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.js +16 -0
  138. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.js.map +1 -0
  139. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.d.ts +2 -0
  140. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.d.ts.map +1 -0
  141. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.js +36 -0
  142. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.js.map +1 -0
  143. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.d.ts +6 -0
  144. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.d.ts.map +1 -0
  145. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.js +32 -0
  146. package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.js.map +1 -0
  147. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.d.ts +12 -0
  148. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.d.ts.map +1 -0
  149. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.js +93 -0
  150. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.js.map +1 -0
  151. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.d.ts +13 -0
  152. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.d.ts.map +1 -0
  153. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.js +79 -0
  154. package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.js.map +1 -0
  155. package/bundled/node_modules/@aspm/shared/dist/api-key/index.d.ts +4 -0
  156. package/bundled/node_modules/@aspm/shared/dist/api-key/index.d.ts.map +1 -0
  157. package/bundled/node_modules/@aspm/shared/dist/api-key/index.js +20 -0
  158. package/bundled/node_modules/@aspm/shared/dist/api-key/index.js.map +1 -0
  159. package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.d.ts +20 -0
  160. package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.d.ts.map +1 -0
  161. package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.js +78 -0
  162. package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.js.map +1 -0
  163. package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.d.ts +19 -0
  164. package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.d.ts.map +1 -0
  165. package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.js +126 -0
  166. package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.js.map +1 -0
  167. package/bundled/node_modules/@aspm/shared/dist/assistant/index.d.ts +1 -0
  168. package/bundled/node_modules/@aspm/shared/dist/assistant/index.d.ts.map +1 -1
  169. package/bundled/node_modules/@aspm/shared/dist/assistant/index.js +1 -0
  170. package/bundled/node_modules/@aspm/shared/dist/assistant/index.js.map +1 -1
  171. package/bundled/node_modules/@aspm/shared/dist/billing/index.d.ts +2 -0
  172. package/bundled/node_modules/@aspm/shared/dist/billing/index.d.ts.map +1 -0
  173. package/bundled/node_modules/@aspm/shared/dist/billing/index.js +18 -0
  174. package/bundled/node_modules/@aspm/shared/dist/billing/index.js.map +1 -0
  175. package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.d.ts +17 -0
  176. package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.d.ts.map +1 -0
  177. package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.js +30 -0
  178. package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.js.map +1 -0
  179. package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.d.ts +42 -0
  180. package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.d.ts.map +1 -0
  181. package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.js +147 -0
  182. package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.js.map +1 -0
  183. package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.d.ts +12 -0
  184. package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.d.ts.map +1 -0
  185. package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.js +70 -0
  186. package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.js.map +1 -0
  187. package/bundled/node_modules/@aspm/shared/dist/ci/index.d.ts +4 -0
  188. package/bundled/node_modules/@aspm/shared/dist/ci/index.d.ts.map +1 -0
  189. package/bundled/node_modules/@aspm/shared/dist/ci/index.js +20 -0
  190. package/bundled/node_modules/@aspm/shared/dist/ci/index.js.map +1 -0
  191. package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.d.ts +16 -0
  192. package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.d.ts.map +1 -0
  193. package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.js +45 -0
  194. package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.js.map +1 -0
  195. package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.d.ts +1 -0
  196. package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.d.ts.map +1 -1
  197. package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.js +6 -0
  198. package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.js.map +1 -1
  199. package/bundled/node_modules/@aspm/shared/dist/dto/index.d.ts +5 -3
  200. package/bundled/node_modules/@aspm/shared/dist/dto/index.d.ts.map +1 -1
  201. package/bundled/node_modules/@aspm/shared/dist/dto/index.js +5 -3
  202. package/bundled/node_modules/@aspm/shared/dist/dto/index.js.map +1 -1
  203. package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.d.ts +9 -0
  204. package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.d.ts.map +1 -0
  205. package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.js +52 -0
  206. package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.js.map +1 -0
  207. package/bundled/node_modules/@aspm/shared/dist/enums.d.ts +3 -1
  208. package/bundled/node_modules/@aspm/shared/dist/enums.d.ts.map +1 -1
  209. package/bundled/node_modules/@aspm/shared/dist/enums.js +4 -0
  210. package/bundled/node_modules/@aspm/shared/dist/enums.js.map +1 -1
  211. package/bundled/node_modules/@aspm/shared/dist/index.d.ts +8 -2
  212. package/bundled/node_modules/@aspm/shared/dist/index.d.ts.map +1 -1
  213. package/bundled/node_modules/@aspm/shared/dist/index.js +8 -2
  214. package/bundled/node_modules/@aspm/shared/dist/index.js.map +1 -1
  215. package/bundled/node_modules/@aspm/shared/dist/mcp/constants.d.ts +22 -0
  216. package/bundled/node_modules/@aspm/shared/dist/mcp/constants.d.ts.map +1 -0
  217. package/bundled/node_modules/@aspm/shared/dist/mcp/constants.js +52 -0
  218. package/bundled/node_modules/@aspm/shared/dist/mcp/constants.js.map +1 -0
  219. package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.d.ts +37 -0
  220. package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.d.ts.map +1 -0
  221. package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.js +51 -0
  222. package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.js.map +1 -0
  223. package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.d.ts +7 -4
  224. package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.d.ts.map +1 -1
  225. package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.js +15 -7
  226. package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.js.map +1 -1
  227. package/bundled/node_modules/@aspm/shared/dist/rbac/index.d.ts +1 -0
  228. package/bundled/node_modules/@aspm/shared/dist/rbac/index.d.ts.map +1 -1
  229. package/bundled/node_modules/@aspm/shared/dist/rbac/index.js +1 -0
  230. package/bundled/node_modules/@aspm/shared/dist/rbac/index.js.map +1 -1
  231. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permission-descriptions.d.ts.map +1 -1
  232. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permission-descriptions.js +2 -0
  233. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permission-descriptions.js.map +1 -1
  234. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.d.ts +1 -1
  235. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.d.ts.map +1 -1
  236. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.js +2 -0
  237. package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.js.map +1 -1
  238. package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.d.ts +8 -0
  239. package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.d.ts.map +1 -0
  240. package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.js +19 -0
  241. package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.js.map +1 -0
  242. package/bundled/node_modules/@aspm/shared/dist/rbac/resolve-org-permissions.d.ts.map +1 -1
  243. package/bundled/node_modules/@aspm/shared/dist/rbac/resolve-org-permissions.js +4 -0
  244. package/bundled/node_modules/@aspm/shared/dist/rbac/resolve-org-permissions.js.map +1 -1
  245. package/bundled/node_modules/@aspm/shared/dist/redaction.d.ts +1 -0
  246. package/bundled/node_modules/@aspm/shared/dist/redaction.d.ts.map +1 -1
  247. package/bundled/node_modules/@aspm/shared/dist/redaction.js +1 -0
  248. package/bundled/node_modules/@aspm/shared/dist/redaction.js.map +1 -1
  249. package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.d.ts.map +1 -1
  250. package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.js.map +1 -1
  251. package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.d.ts.map +1 -1
  252. package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.js.map +1 -1
  253. package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.d.ts.map +1 -1
  254. package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js +2 -2
  255. package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js.map +1 -1
  256. package/bundled/node_modules/@aspm/shared/dist/security/index.d.ts +2 -2
  257. package/bundled/node_modules/@aspm/shared/dist/security/index.d.ts.map +1 -1
  258. package/bundled/node_modules/@aspm/shared/dist/security/index.js +2 -2
  259. package/bundled/node_modules/@aspm/shared/dist/security/index.js.map +1 -1
  260. package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.d.ts +4 -0
  261. package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.d.ts.map +1 -0
  262. package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.js +10 -0
  263. package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.js.map +1 -0
  264. package/bundled/node_modules/@aspm/shared/dist/shared-project/index.d.ts +4 -0
  265. package/bundled/node_modules/@aspm/shared/dist/shared-project/index.d.ts.map +1 -0
  266. package/bundled/node_modules/@aspm/shared/dist/shared-project/index.js +20 -0
  267. package/bundled/node_modules/@aspm/shared/dist/shared-project/index.js.map +1 -0
  268. package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.d.ts +2 -0
  269. package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.d.ts.map +1 -0
  270. package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.js +9 -0
  271. package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.js.map +1 -0
  272. package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.d.ts +3 -0
  273. package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.d.ts.map +1 -0
  274. package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.js +18 -0
  275. package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.js.map +1 -0
  276. package/bundled/node_modules/@aspm/shared/package.json +27 -5
  277. package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js +2 -2
  278. package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js.map +1 -1
  279. package/bundled/node_modules/@kubbisec/chat-memory/package.json +4 -4
  280. package/bundled/node_modules/@kubbisec/home/dist/migrate.d.ts.map +1 -1
  281. package/bundled/node_modules/@kubbisec/home/dist/migrate.js +1 -1
  282. package/bundled/node_modules/@kubbisec/home/dist/migrate.js.map +1 -1
  283. package/bundled/node_modules/@kubbisec/home/package.json +3 -3
  284. package/bundled/resolve-bundled-dist-root.js +130 -122
  285. package/bundled/resolve-bundled-dist-root.js.map +1 -1
  286. package/bundled/skills/aspm-platform/SKILL.md +3 -1
  287. package/bundled/skills/at-path-mentions.d.ts +1 -1
  288. package/bundled/skills/at-path-mentions.js +153 -146
  289. package/bundled/skills/chat-mention-render.d.ts +2 -2
  290. package/bundled/skills/chat-mention-render.js +126 -121
  291. package/bundled/skills/chat-mentions.d.ts +8 -17
  292. package/bundled/skills/chat-mentions.js +76 -76
  293. package/bundled/skills/github-local/SKILL.md +5 -5
  294. package/bundled/skills/kubbisec-resource-router/SKILL.md +3 -0
  295. package/bundled/skills/list-bundled-skills.d.ts +3 -3
  296. package/bundled/skills/list-bundled-skills.js +35 -33
  297. package/bundled/skills/naus-pipelines/SKILL.md +11 -10
  298. package/bundled/skills/remediation/SKILL.md +1 -1
  299. package/bundled/skills/skill-mention.d.ts +2 -10
  300. package/bundled/skills/skill-mention.js +2 -10
  301. package/bundled/theme/clear-terminal.d.ts +1 -1
  302. package/bundled/theme/clear-terminal.js +4 -3
  303. package/bundled/theme/footer-render-hook.d.ts +1 -1
  304. package/bundled/theme/footer-render-hook.js +3 -3
  305. package/bundled/theme/kubbisec-brand-fg.d.ts +1 -1
  306. package/bundled/theme/kubbisec-brand-fg.js +2 -2
  307. package/bundled/theme/kubbisec-menu-themes.d.ts +7 -7
  308. package/bundled/theme/kubbisec-menu-themes.js +31 -30
  309. package/bundled/theme/kubbisec-theme-name.d.ts +1 -1
  310. package/bundled/theme/kubbisec-theme-name.js +1 -1
  311. package/bundled/theme/patch-pi-settings-theme.runtime.d.ts +1 -1
  312. package/bundled/theme/patch-pi-settings-theme.runtime.js +10 -11
  313. package/bundled/theme/render-compact-header.d.ts +5 -13
  314. package/bundled/theme/render-compact-header.js +128 -126
  315. package/bundled/theme/render-compact-header.js.map +1 -1
  316. package/bundled/workflow/session-workflow-mode.d.ts +1 -1
  317. package/bundled/workflow/session-workflow-mode.js +33 -33
  318. package/package.json +1 -1
  319. package/bundled/clarify/clarify-gate-state.d.ts +0 -3
  320. package/bundled/clarify/clarify-gate-state.d.ts.map +0 -1
  321. package/bundled/clarify/clarify-gate-state.js +0 -9
  322. package/bundled/clarify/clarify-gate-state.js.map +0 -1
  323. package/bundled/clarify/clarify-gate.d.ts +0 -35
  324. package/bundled/clarify/clarify-gate.d.ts.map +0 -1
  325. package/bundled/clarify/clarify-gate.js +0 -159
  326. package/bundled/clarify/clarify-gate.js.map +0 -1
  327. package/bundled/clarify/clarify-select-panel.d.ts +0 -21
  328. package/bundled/clarify/clarify-select-panel.d.ts.map +0 -1
  329. package/bundled/clarify/clarify-select-panel.js +0 -80
  330. package/bundled/clarify/clarify-select-panel.js.map +0 -1
  331. package/bundled/clarify/clarify-ui-state.d.ts +0 -23
  332. package/bundled/clarify/clarify-ui-state.d.ts.map +0 -1
  333. package/bundled/clarify/clarify-ui-state.js +0 -48
  334. package/bundled/clarify/clarify-ui-state.js.map +0 -1
  335. package/bundled/clarify/parse-clarify-answer.d.ts +0 -32
  336. package/bundled/clarify/parse-clarify-answer.d.ts.map +0 -1
  337. package/bundled/clarify/parse-clarify-answer.js +0 -51
  338. package/bundled/clarify/parse-clarify-answer.js.map +0 -1
  339. package/bundled/clarify/question-format.d.ts +0 -50
  340. package/bundled/clarify/question-format.d.ts.map +0 -1
  341. package/bundled/clarify/question-format.js +0 -137
  342. package/bundled/clarify/question-format.js.map +0 -1
  343. package/bundled/clarify/questionnaire-tool.d.ts +0 -36
  344. package/bundled/clarify/questionnaire-tool.d.ts.map +0 -1
  345. package/bundled/clarify/questionnaire-tool.js +0 -197
  346. package/bundled/clarify/questionnaire-tool.js.map +0 -1
  347. package/bundled/clarify/scope-discovery.d.ts +0 -12
  348. package/bundled/clarify/scope-discovery.d.ts.map +0 -1
  349. package/bundled/clarify/scope-discovery.js +0 -122
  350. package/bundled/clarify/scope-discovery.js.map +0 -1
  351. package/bundled/clarify/session-questionnaire.d.ts +0 -61
  352. package/bundled/clarify/session-questionnaire.d.ts.map +0 -1
  353. package/bundled/clarify/session-questionnaire.js +0 -364
  354. package/bundled/clarify/session-questionnaire.js.map +0 -1
  355. package/bundled/clarify/session-questionnaire.types.d.ts +0 -49
  356. package/bundled/clarify/session-questionnaire.types.d.ts.map +0 -1
  357. package/bundled/clarify/session-questionnaire.types.js +0 -13
  358. package/bundled/clarify/session-questionnaire.types.js.map +0 -1
@@ -1,142 +1,470 @@
1
- /**
2
- * Local GitHub/gh tools — only when user opted in: KUBBISEC_CHAT_EXTENDED_CONTEXT=1
3
- */
4
1
  import { spawn } from "node:child_process";
5
2
  import * as fs from "node:fs";
6
3
  import * as path from "node:path";
7
4
  import { summarizeSubprocessFailure, toUserError } from "@aspm/shared/cli-user-error";
8
5
  import { Type } from "@earendil-works/pi-ai";
9
- import {
10
- EXTENDED_CONTEXT_DENY_MESSAGE,
11
- extendedContextEnabled,
12
- resolveExtendedWorkspace,
13
- } from "../config/extended-context.js";
14
-
6
+ import { buildAuthenticatedGitRemoteUrl, buildGitGhSubprocessEnv, resolveHostGitAuth, } from "@kubbisec/remediation";
7
+ import { resolveExtendedWorkspace } from "../config/extended-context.js";
8
+ import { resolvePathInWorkspace } from "./cli-local-shared.js";
15
9
  function resolveWorkspace() {
16
- return resolveExtendedWorkspace();
17
- }
18
- function execCapture(bin, args, cwd) {
19
- return new Promise((resolve) => {
20
- const child = spawn(bin, args, {
21
- cwd,
22
- env: {
23
- ...process.env,
24
- GIT_TERMINAL_PROMPT: "0",
25
- GH_PROMPT_DISABLED: "1",
26
- },
27
- stdio: ["ignore", "pipe", "pipe"],
10
+ return resolveExtendedWorkspace();
11
+ }
12
+ function resolveWorkspacePath() {
13
+ const candidates = [
14
+ process.env.KUBBISEC_LOCAL_WORKSPACE,
15
+ process.env.KUBBISEC_AI_WORKSPACE,
16
+ ].filter((value) => typeof value === "string" && value.trim().length > 0);
17
+ for (const candidate of candidates) {
18
+ const segments = candidate.split(/[\\/]+/).filter(Boolean);
19
+ if (segments.includes("..")) {
20
+ throw new Error("workspace path traversal is not allowed");
21
+ }
22
+ }
23
+ return resolveWorkspace();
24
+ }
25
+ function execCapture(bin, args, cwd, options) {
26
+ return new Promise((resolve) => {
27
+ const child = spawn(bin, args, {
28
+ cwd,
29
+ env: options?.env ?? {
30
+ ...process.env,
31
+ GIT_TERMINAL_PROMPT: "0",
32
+ GH_PROMPT_DISABLED: "1",
33
+ },
34
+ stdio: ["ignore", "pipe", "pipe"],
35
+ });
36
+ let stdout = "";
37
+ let stderr = "";
38
+ child.stdout?.on("data", (c) => {
39
+ stdout += String(c);
40
+ });
41
+ child.stderr?.on("data", (c) => {
42
+ stderr += String(c);
43
+ });
44
+ child.on("error", (err) => {
45
+ resolve({ code: 127, stdout: "", stderr: toUserError(err).detail });
46
+ });
47
+ child.on("close", (code) => resolve({ code: code ?? 1, stdout, stderr }));
28
48
  });
29
- let stdout = "";
30
- let stderr = "";
31
- child.stdout?.on("data", (c) => {
32
- stdout += String(c);
49
+ }
50
+ function redactGithubSecrets(text) {
51
+ return text
52
+ .replace(/https:\/\/([^/\s:@]+):([^@\s]+)@/gi, (_match, user) => `https://${String(user)}:***@`)
53
+ .replace(/\b(gh[pousr]_[A-Za-z0-9_]+)\b/g, "***");
54
+ }
55
+ function formatGitSummary(bin, label, result) {
56
+ const stdout = redactGithubSecrets(result.stdout.trim());
57
+ const stderr = redactGithubSecrets(result.stderr.trim());
58
+ if (result.code === 0 && stdout) {
59
+ return `${label}:\n${stdout}`;
60
+ }
61
+ if (result.code === 0) {
62
+ return `${label}: (sem saída)`;
63
+ }
64
+ return summarizeSubprocessFailure({
65
+ bin,
66
+ code: result.code,
67
+ stderr,
68
+ stdout,
33
69
  });
34
- child.stderr?.on("data", (c) => {
35
- stderr += String(c);
70
+ }
71
+ function resolvePlatformToken() {
72
+ const candidate = process.env.KUBBISEC_GIT_TOKEN?.trim() ||
73
+ process.env.GITHUB_TOKEN?.trim() ||
74
+ process.env.GH_TOKEN?.trim();
75
+ return candidate || null;
76
+ }
77
+ function buildTextResult(text) {
78
+ return { content: [{ type: "text", text }] };
79
+ }
80
+ function buildErrorResult(error) {
81
+ return buildTextResult(toUserError(error, "Falha ao executar github local").detail);
82
+ }
83
+ function isGitWorkspace(cwd) {
84
+ return fs.existsSync(path.join(cwd, ".git"));
85
+ }
86
+ async function resolveRemoteUrl(cwd) {
87
+ if (!isGitWorkspace(cwd))
88
+ return null;
89
+ const remoteUrlResult = await execCapture("git", ["remote", "get-url", "origin"], cwd);
90
+ if (remoteUrlResult.code !== 0)
91
+ return null;
92
+ return remoteUrlResult.stdout.trim() || null;
93
+ }
94
+ async function resolveWorkspaceAuth(cwd) {
95
+ const remoteUrl = await resolveRemoteUrl(cwd);
96
+ const platformToken = resolvePlatformToken();
97
+ const auth = await resolveHostGitAuth({
98
+ cwd,
99
+ remoteUrl,
100
+ platformToken,
36
101
  });
37
- child.on("error", (err) => {
38
- resolve({ code: 127, stdout: "", stderr: toUserError(err).detail });
102
+ const env = buildGitGhSubprocessEnv(auth, process.env);
103
+ return { auth, env, remoteUrl, platformToken };
104
+ }
105
+ function requireGitWorkspace(cwd) {
106
+ if (isGitWorkspace(cwd)) {
107
+ return { ok: true };
108
+ }
109
+ return {
110
+ ok: false,
111
+ result: buildTextResult("git: no .git in workspace (clone via kubsec_github_repository + remediation flow)"),
112
+ };
113
+ }
114
+ async function runAuthenticatedCommand(bin, args, cwd) {
115
+ const { env } = await resolveWorkspaceAuth(cwd);
116
+ return execCapture(bin, args, cwd, { env });
117
+ }
118
+ function isGitAuthFailure(stderr, stdout) {
119
+ const detail = `${stderr}\n${stdout}`.toLowerCase();
120
+ return (detail.includes("invalid credentials") ||
121
+ detail.includes("authentication failed") ||
122
+ detail.includes("403") ||
123
+ detail.includes("401") ||
124
+ detail.includes("unauthorized"));
125
+ }
126
+ function buildRetryAuth(platformToken) {
127
+ return {
128
+ source: "platform-token",
129
+ mode: "embedded-token",
130
+ token: platformToken,
131
+ detail: "retry after native auth failure",
132
+ };
133
+ }
134
+ async function prepareRemoteForAuth(cwd, remoteUrl, auth) {
135
+ const env = buildGitGhSubprocessEnv(auth, process.env);
136
+ if (!remoteUrl) {
137
+ return env;
138
+ }
139
+ const nextRemoteUrl = auth.mode === "embedded-token"
140
+ ? buildAuthenticatedGitRemoteUrl(remoteUrl, auth.token)
141
+ : remoteUrl;
142
+ const setUrl = await execCapture("git", ["remote", "set-url", "origin", nextRemoteUrl], cwd, {
143
+ env,
39
144
  });
40
- child.on("close", (code) => resolve({ code: code ?? 1, stdout, stderr }));
41
- });
145
+ if (setUrl.code !== 0) {
146
+ throw new Error(formatGitSummary("git", "git remote set-url", setUrl));
147
+ }
148
+ return env;
42
149
  }
43
- function formatGitSummary(bin, label, result) {
44
- if (result.code === 0 && result.stdout.trim()) {
45
- return `${label}:\n${result.stdout.trim()}`;
46
- }
47
- if (result.code === 0) {
48
- return `${label}: (sem saída)`;
49
- }
50
- return summarizeSubprocessFailure({
51
- bin,
52
- code: result.code,
53
- stderr: result.stderr,
54
- stdout: result.stdout,
55
- });
56
- }
57
- function denyExtended() {
58
- return {
59
- content: [{ type: "text", text: EXTENDED_CONTEXT_DENY_MESSAGE }],
60
- };
150
+ function normalizeCloneRemote(params) {
151
+ const remoteUrl = typeof params.remoteUrl === "string" ? params.remoteUrl.trim() : "";
152
+ if (remoteUrl) {
153
+ return remoteUrl;
154
+ }
155
+ const repo = typeof params.repo === "string" ? params.repo.trim().replace(/^\/+|\/+$/g, "") : "";
156
+ if (!repo) {
157
+ return null;
158
+ }
159
+ return `https://github.com/${repo.endsWith(".git") ? repo : `${repo}.git`}`;
160
+ }
161
+ function inferCloneDirectory(params, remoteUrl) {
162
+ const explicit = typeof params.directory === "string" ? params.directory.trim() : "";
163
+ if (explicit) {
164
+ return explicit;
165
+ }
166
+ const repo = typeof params.repo === "string" ? params.repo.trim() : "";
167
+ if (repo) {
168
+ return (repo
169
+ .split("/")
170
+ .filter(Boolean)
171
+ .pop()
172
+ ?.replace(/\.git$/i, "") || "repo");
173
+ }
174
+ const normalized = remoteUrl.replace(/[\\/]+$/, "");
175
+ const basename = normalized
176
+ .split(/[/:]/)
177
+ .pop()
178
+ ?.replace(/\.git$/i, "");
179
+ return basename || "repo";
180
+ }
181
+ async function sanitizeClonedRemote(cwd, remoteUrl, auth) {
182
+ if (auth.mode !== "embedded-token") {
183
+ return;
184
+ }
185
+ const sanitizedEnv = buildGitGhSubprocessEnv(auth, process.env);
186
+ const sanitized = await execCapture("git", ["remote", "set-url", "origin", remoteUrl], cwd, {
187
+ env: sanitizedEnv,
188
+ });
189
+ if (sanitized.code !== 0) {
190
+ throw new Error(formatGitSummary("git", "git remote set-url", sanitized));
191
+ }
192
+ }
193
+ async function resolveCurrentBranch(cwd) {
194
+ const branch = await execCapture("git", ["branch", "--show-current"], cwd);
195
+ const branchName = branch.stdout.trim();
196
+ return branch.code === 0 && branchName ? branchName : null;
61
197
  }
62
198
  export default function kubbisecGithubLocal(api) {
63
- api.registerTool({
64
- name: "github_local_status",
65
- label: "GitHub local status",
66
- description:
67
- "Reports gh auth and git remote on this machine (requires kubbisec chat --extended-context).",
68
- parameters: Type.Object({}),
69
- async execute() {
70
- if (!extendedContextEnabled()) return denyExtended();
71
- const cwd = resolveWorkspace();
72
- const parts = [`workspace: ${cwd}`];
73
- const gh = await execCapture("gh", ["auth", "status"], cwd);
74
- if (gh.code === 0) {
75
- parts.push("GitHub CLI autenticado nesta máquina.");
76
- } else if (gh.code === 127) {
77
- parts.push("gh: not installed or not on PATH");
78
- } else {
79
- parts.push(
80
- summarizeSubprocessFailure({
81
- bin: "gh",
82
- code: gh.code,
83
- stderr: gh.stderr,
84
- stdout: gh.stdout,
85
- }),
86
- );
87
- }
88
- if (fs.existsSync(path.join(cwd, ".git"))) {
89
- const remote = await execCapture("git", ["remote", "-v"], cwd);
90
- const branch = await execCapture("git", ["branch", "--show-current"], cwd);
91
- parts.push(formatGitSummary("git", "git remote", remote));
92
- const branchName = branch.stdout.trim();
93
- parts.push(
94
- `git branch: ${branchName || (branch.code === 0 ? "(detached)" : "indisponível")}`,
95
- );
96
- } else {
97
- parts.push(
98
- "git: no .git in workspace (clone via kubsec_github_repository + remediation flow)",
99
- );
100
- }
101
- return { content: [{ type: "text", text: parts.join("\n\n") }] };
102
- },
103
- });
104
- api.registerTool({
105
- name: "github_local_repo_summary",
106
- label: "GitHub local repo summary",
107
- description:
108
- "Lists top-level files and recent git log in workspace (requires --extended-context).",
109
- parameters: Type.Object({}),
110
- async execute() {
111
- if (!extendedContextEnabled()) return denyExtended();
112
- const cwd = resolveWorkspace();
113
- const entries = fs.existsSync(cwd)
114
- ? fs
115
- .readdirSync(cwd, { withFileTypes: true })
116
- .slice(0, 40)
117
- .map((e) => (e.isDirectory() ? `${e.name}/` : e.name))
118
- : [];
119
- let logOut = "";
120
- if (fs.existsSync(path.join(cwd, ".git"))) {
121
- const log = await execCapture("git", ["log", "-5", "--oneline"], cwd);
122
- if (log.code === 0 && log.stdout.trim()) {
123
- logOut = log.stdout.trim();
124
- } else if (log.code !== 0) {
125
- logOut = summarizeSubprocessFailure({
126
- bin: "git",
127
- code: log.code,
128
- stderr: log.stderr,
129
- stdout: log.stdout,
130
- });
131
- }
132
- }
133
- const text = [
134
- `workspace: ${cwd}`,
135
- `entries: ${entries.join(", ") || "(empty)"}`,
136
- logOut ? `recent commits:\n${logOut}` : "no git history",
137
- ].join("\n\n");
138
- return { content: [{ type: "text", text }] };
139
- },
140
- });
141
- }
142
- //# sourceMappingURL=kubbisec-github-local.extension.js.map
199
+ api.registerTool({
200
+ name: "github_local_status",
201
+ label: "GitHub local status",
202
+ description: "Reports host GitHub auth and git remote details for this machine.",
203
+ parameters: Type.Object({}),
204
+ async execute() {
205
+ try {
206
+ const cwd = resolveWorkspacePath();
207
+ const parts = [`workspace: ${cwd}`];
208
+ const hasGit = isGitWorkspace(cwd);
209
+ const remoteUrl = await resolveRemoteUrl(cwd);
210
+ const auth = await resolveHostGitAuth({
211
+ cwd,
212
+ remoteUrl,
213
+ platformToken: resolvePlatformToken(),
214
+ });
215
+ parts.push(`auth source: ${auth.source}`);
216
+ parts.push(`auth detail: ${auth.detail}`);
217
+ if (hasGit) {
218
+ const remote = await execCapture("git", ["remote", "-v"], cwd);
219
+ const branch = await execCapture("git", ["branch", "--show-current"], cwd);
220
+ parts.push(formatGitSummary("git", "git remote", remote));
221
+ const branchName = branch.stdout.trim();
222
+ parts.push(`git branch: ${branchName || (branch.code === 0 ? "(detached)" : "indisponível")}`);
223
+ }
224
+ else {
225
+ parts.push("git: no .git in workspace (clone via kubsec_github_repository + remediation flow)");
226
+ }
227
+ return buildTextResult(parts.join("\n\n"));
228
+ }
229
+ catch (error) {
230
+ return buildErrorResult(error);
231
+ }
232
+ },
233
+ });
234
+ api.registerTool({
235
+ name: "github_local_repo_summary",
236
+ label: "GitHub local repo summary",
237
+ description: "Lists top-level files and recent git log in the workspace.",
238
+ parameters: Type.Object({}),
239
+ async execute() {
240
+ try {
241
+ const cwd = resolveWorkspacePath();
242
+ const entries = fs.existsSync(cwd)
243
+ ? fs
244
+ .readdirSync(cwd, { withFileTypes: true })
245
+ .slice(0, 40)
246
+ .map((e) => (e.isDirectory() ? `${e.name}/` : e.name))
247
+ : [];
248
+ let logOut = "";
249
+ if (isGitWorkspace(cwd)) {
250
+ const log = await execCapture("git", ["log", "-5", "--oneline"], cwd);
251
+ if (log.code === 0 && log.stdout.trim()) {
252
+ logOut = redactGithubSecrets(log.stdout.trim());
253
+ }
254
+ else if (log.code !== 0) {
255
+ logOut = summarizeSubprocessFailure({
256
+ bin: "git",
257
+ code: log.code,
258
+ stderr: redactGithubSecrets(log.stderr),
259
+ stdout: redactGithubSecrets(log.stdout),
260
+ });
261
+ }
262
+ }
263
+ const text = [
264
+ `workspace: ${cwd}`,
265
+ `entries: ${entries.join(", ") || "(empty)"}`,
266
+ logOut ? `recent commits:\n${logOut}` : "no git history",
267
+ ].join("\n\n");
268
+ return buildTextResult(text);
269
+ }
270
+ catch (error) {
271
+ return buildErrorResult(error);
272
+ }
273
+ },
274
+ });
275
+ api.registerTool({
276
+ name: "github_local_clone",
277
+ label: "GitHub local clone",
278
+ description: "Clones a repository into a workspace-safe local directory.",
279
+ parameters: Type.Object({
280
+ remoteUrl: Type.Optional(Type.String({ description: "Full Git remote URL." })),
281
+ repo: Type.Optional(Type.String({ description: "GitHub repo in owner/name format." })),
282
+ directory: Type.Optional(Type.String({ description: "Optional target directory inside the workspace." })),
283
+ branch: Type.Optional(Type.String({ description: "Optional branch to clone." })),
284
+ }),
285
+ async execute(_toolCallId, params) {
286
+ try {
287
+ const cwd = resolveWorkspacePath();
288
+ const remoteUrl = normalizeCloneRemote(params);
289
+ if (!remoteUrl) {
290
+ return buildTextResult("remoteUrl or repo is required");
291
+ }
292
+ const targetDir = resolvePathInWorkspace(inferCloneDirectory(params, remoteUrl), cwd);
293
+ if (path.resolve(targetDir) === path.resolve(cwd)) {
294
+ return buildTextResult("clone target must be a child path inside the workspace");
295
+ }
296
+ const branch = typeof params.branch === "string" ? params.branch.trim() : "";
297
+ const platformToken = resolvePlatformToken();
298
+ let auth = await resolveHostGitAuth({
299
+ cwd,
300
+ remoteUrl,
301
+ platformToken,
302
+ });
303
+ const buildCloneArgs = (currentAuth) => {
304
+ const cloneRemoteUrl = currentAuth.mode === "embedded-token"
305
+ ? buildAuthenticatedGitRemoteUrl(remoteUrl, currentAuth.token)
306
+ : remoteUrl;
307
+ const args = ["clone"];
308
+ if (branch) {
309
+ args.push("--branch", branch);
310
+ }
311
+ args.push(cloneRemoteUrl, targetDir);
312
+ return { args, cloneRemoteUrl };
313
+ };
314
+ const runClone = async (currentAuth) => {
315
+ const { args, cloneRemoteUrl } = buildCloneArgs(currentAuth);
316
+ const env = buildGitGhSubprocessEnv(currentAuth, process.env);
317
+ const result = await execCapture("git", args, cwd, { env });
318
+ return { result, cloneRemoteUrl };
319
+ };
320
+ let clone = await runClone(auth);
321
+ if (clone.result.code !== 0 &&
322
+ auth.mode === "native" &&
323
+ platformToken &&
324
+ isGitAuthFailure(clone.result.stderr, clone.result.stdout)) {
325
+ fs.rmSync(targetDir, { recursive: true, force: true });
326
+ auth = buildRetryAuth(platformToken);
327
+ clone = await runClone(auth);
328
+ }
329
+ if (clone.result.code === 0) {
330
+ await sanitizeClonedRemote(targetDir, remoteUrl, auth);
331
+ }
332
+ const relativeTarget = path.relative(cwd, targetDir) || ".";
333
+ return buildTextResult(`${formatGitSummary("git", "git clone", clone.result)}\n\ntarget: ${relativeTarget}`);
334
+ }
335
+ catch (error) {
336
+ return buildErrorResult(error);
337
+ }
338
+ },
339
+ });
340
+ api.registerTool({
341
+ name: "github_local_fetch",
342
+ label: "GitHub local fetch",
343
+ description: "Runs `git fetch` in the workspace using host or fallback auth.",
344
+ parameters: Type.Object({}),
345
+ async execute() {
346
+ try {
347
+ const cwd = resolveWorkspacePath();
348
+ const gitWorkspace = requireGitWorkspace(cwd);
349
+ if (!gitWorkspace.ok)
350
+ return gitWorkspace.result;
351
+ const result = await runAuthenticatedCommand("git", ["fetch"], cwd);
352
+ return buildTextResult(formatGitSummary("git", "git fetch", result));
353
+ }
354
+ catch (error) {
355
+ return buildErrorResult(error);
356
+ }
357
+ },
358
+ });
359
+ api.registerTool({
360
+ name: "github_local_commit",
361
+ label: "GitHub local commit",
362
+ description: "Stages all changes and creates a git commit in the workspace.",
363
+ parameters: Type.Object({
364
+ message: Type.String({ description: "Commit message passed to `git commit -m`." }),
365
+ }),
366
+ async execute(_toolCallId, params) {
367
+ try {
368
+ const message = String(params.message ?? "").trim();
369
+ if (!message) {
370
+ return buildTextResult("commit message is required");
371
+ }
372
+ const cwd = resolveWorkspacePath();
373
+ const gitWorkspace = requireGitWorkspace(cwd);
374
+ if (!gitWorkspace.ok)
375
+ return gitWorkspace.result;
376
+ const { env } = await resolveWorkspaceAuth(cwd);
377
+ const addResult = await execCapture("git", ["add", "-A"], cwd, { env });
378
+ if (addResult.code !== 0) {
379
+ return buildTextResult(formatGitSummary("git", "git add", addResult));
380
+ }
381
+ const commitResult = await execCapture("git", ["commit", "-m", message], cwd, { env });
382
+ return buildTextResult(formatGitSummary("git", "git commit", commitResult));
383
+ }
384
+ catch (error) {
385
+ return buildErrorResult(error);
386
+ }
387
+ },
388
+ });
389
+ api.registerTool({
390
+ name: "github_local_push",
391
+ label: "GitHub local push",
392
+ description: "Pushes the current branch to origin using host or fallback auth.",
393
+ parameters: Type.Object({}),
394
+ async execute() {
395
+ try {
396
+ const cwd = resolveWorkspacePath();
397
+ const gitWorkspace = requireGitWorkspace(cwd);
398
+ if (!gitWorkspace.ok)
399
+ return gitWorkspace.result;
400
+ const branch = await resolveCurrentBranch(cwd);
401
+ const args = branch ? ["push", "-u", "origin", branch] : ["push"];
402
+ const { auth, remoteUrl, platformToken } = await resolveWorkspaceAuth(cwd);
403
+ const runPush = async (currentAuth) => {
404
+ const env = await prepareRemoteForAuth(cwd, remoteUrl, currentAuth);
405
+ return execCapture("git", args, cwd, { env });
406
+ };
407
+ let result = await runPush(auth);
408
+ if (result.code !== 0 &&
409
+ auth.mode === "native" &&
410
+ platformToken &&
411
+ isGitAuthFailure(result.stderr, result.stdout)) {
412
+ result = await runPush(buildRetryAuth(platformToken));
413
+ }
414
+ return buildTextResult(formatGitSummary("git", "git push", result));
415
+ }
416
+ catch (error) {
417
+ return buildErrorResult(error);
418
+ }
419
+ },
420
+ });
421
+ api.registerTool({
422
+ name: "github_local_pr_create",
423
+ label: "GitHub local PR create",
424
+ description: "Creates a pull request with `gh pr create` from the current branch.",
425
+ parameters: Type.Object({
426
+ title: Type.String({ description: "Pull request title." }),
427
+ body: Type.String({ description: "Pull request body." }),
428
+ base: Type.Optional(Type.String({ description: "Optional base branch name." })),
429
+ }),
430
+ async execute(_toolCallId, params) {
431
+ try {
432
+ const title = String(params.title ?? "").trim();
433
+ const body = String(params.body ?? "").trim();
434
+ const base = typeof params.base === "string" ? params.base.trim() : "";
435
+ if (!title) {
436
+ return buildTextResult("pull request title is required");
437
+ }
438
+ if (!body) {
439
+ return buildTextResult("pull request body is required");
440
+ }
441
+ const cwd = resolveWorkspacePath();
442
+ const gitWorkspace = requireGitWorkspace(cwd);
443
+ if (!gitWorkspace.ok)
444
+ return gitWorkspace.result;
445
+ const branch = await resolveCurrentBranch(cwd);
446
+ const args = ["pr", "create", "--title", title, "--body", body];
447
+ if (base) {
448
+ args.push("--base", base);
449
+ }
450
+ if (branch) {
451
+ args.push("--head", branch);
452
+ }
453
+ const { auth, env, platformToken } = await resolveWorkspaceAuth(cwd);
454
+ let result = await execCapture("gh", args, cwd, { env });
455
+ if (result.code !== 0 &&
456
+ auth.mode === "native" &&
457
+ platformToken &&
458
+ isGitAuthFailure(result.stderr, result.stdout)) {
459
+ const retryEnv = buildGitGhSubprocessEnv(buildRetryAuth(platformToken), process.env);
460
+ result = await execCapture("gh", args, cwd, { env: retryEnv });
461
+ }
462
+ return buildTextResult(formatGitSummary("gh", "gh pr create", result));
463
+ }
464
+ catch (error) {
465
+ return buildErrorResult(error);
466
+ }
467
+ },
468
+ });
469
+ }
470
+ //# sourceMappingURL=kubbisec-github-local.extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kubbisec-github-local.extension.js","sourceRoot":"","sources":["../../src/extensions/kubbisec-github-local.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kubbisec-github-local.extension.js","sourceRoot":"","sources":["../../src/extensions/kubbisec-github-local.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EAEvB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,SAAS,gBAAgB;IACvB,OAAO,wBAAwB,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,GAAG,CAAC,wBAAwB;QACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB;KAClC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3F,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAClB,GAAW,EACX,IAAc,EACd,GAAW,EACX,OAAqC;IAErC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,GAAG;YACH,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI;gBACnB,GAAG,OAAO,CAAC,GAAG;gBACd,mBAAmB,EAAE,GAAG;gBACxB,kBAAkB,EAAE,GAAG;aACxB;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,OAAO,CAAC,oCAAoC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/F,OAAO,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAW,EACX,KAAa,EACb,MAAwD;IAExD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAChC,OAAO,GAAG,KAAK,MAAM,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,KAAK,eAAe,CAAC;IACjC,CAAC;IACD,OAAO,0BAA0B,CAAC;QAChC,GAAG;QACH,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM;QACN,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AA4BD,SAAS,oBAAoB;IAC3B,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QACtC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW;IACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IACvF,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC;QACpC,GAAG;QACH,SAAS;QACT,aAAa;KACd,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAW;IAEX,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,eAAe,CACrB,mFAAmF,CACpF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,GAAiB,EACjB,IAAc,EACd,GAAW;IAEX,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,MAAc;IACtD,MAAM,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,aAAqB;IAC3C,OAAO;QACL,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,iCAAiC;KAC1C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,SAAwB,EACxB,IAAiB;IAEjB,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC5B,CAAC,CAAC,8BAA8B,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE;QAC3F,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA+B;IAC3D,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,sBAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B,EAAE,SAAiB;IAC7E,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,IAAI;aACD,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,EAAE;YACN,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,MAAM,CACrC,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,UAAU;SACxB,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,EAAE;QACN,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,QAAQ,IAAI,MAAM,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,SAAiB,EACjB,IAAiB;IAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IACD,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE;QAC1F,GAAG,EAAE,YAAY;KAClB,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,GAAiB;IAC3D,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,mEAAmE;QAChF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAa,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAE9C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC;oBACpC,GAAG;oBACH,SAAS;oBACT,aAAa,EAAE,oBAAoB,EAAE;iBACtC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAE1C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC3E,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACxC,KAAK,CAAC,IAAI,CACR,eAAe,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CACnF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CACR,mFAAmF,CACpF,CAAC;gBACJ,CAAC;gBAED,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,4DAA4D;QACzE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;oBAChC,CAAC,CAAC,EAAE;yBACC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;yBACzC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;yBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC1D,CAAC,CAAC,EAAE,CAAC;gBAEP,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtE,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;wBACxC,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClD,CAAC;yBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBAC1B,MAAM,GAAG,0BAA0B,CAAC;4BAClC,GAAG,EAAE,KAAK;4BACV,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;4BACvC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;yBACxC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,GAAG;oBACX,cAAc,GAAG,EAAE;oBACnB,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;oBAC7C,MAAM,CAAC,CAAC,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC,gBAAgB;iBACzD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEf,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,4DAA4D;QACzE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;YAC9E,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAC;YACtF,SAAS,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CAChF;YACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,CAAC;SACjF,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,eAAe,CAAC,+BAA+B,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM,SAAS,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtF,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClD,OAAO,eAAe,CAAC,wDAAwD,CAAC,CAAC;gBACnF,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;gBAC7C,IAAI,IAAI,GAAG,MAAM,kBAAkB,CAAC;oBAClC,GAAG;oBACH,SAAS;oBACT,aAAa;iBACd,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,CAAC,WAAwB,EAAE,EAAE;oBAClD,MAAM,cAAc,GAClB,WAAW,CAAC,IAAI,KAAK,gBAAgB;wBACnC,CAAC,CAAC,8BAA8B,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC;wBAC9D,CAAC,CAAC,SAAS,CAAC;oBAChB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;oBACvB,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;gBAClC,CAAC,CAAC;gBACF,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAwB,EAAE,EAAE;oBAClD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;oBAC7D,MAAM,GAAG,GAAG,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;gBACpC,CAAC,CAAC;gBAEF,IAAI,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjC,IACE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;oBACvB,IAAI,CAAC,IAAI,KAAK,QAAQ;oBACtB,aAAa;oBACb,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAC1D,CAAC;oBACD,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvD,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;oBACrC,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC;gBAC5D,OAAO,eAAe,CACpB,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,cAAc,EAAE,CACrF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,gEAAgE;QAC7E,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,EAAE;oBAAE,OAAO,YAAY,CAAC,MAAM,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpE,OAAO,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,+DAA+D;QAC5E,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;SACnF,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,eAAe,CAAC,4BAA4B,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,EAAE;oBAAE,OAAO,YAAY,CAAC,MAAM,CAAC;gBAEjD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxE,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBACxE,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvF,OAAO,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,kEAAkE;QAC/E,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,EAAE;oBAAE,OAAO,YAAY,CAAC,MAAM,CAAC;gBAEjD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAClE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,KAAK,EAAE,WAAwB,EAAE,EAAE;oBACjD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;oBACpE,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC;gBAEF,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjC,IACE,MAAM,CAAC,IAAI,KAAK,CAAC;oBACjB,IAAI,CAAC,IAAI,KAAK,QAAQ;oBACtB,aAAa;oBACb,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAC9C,CAAC;oBACD,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,qEAAqE;QAClF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;YACxD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;SAChF,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,eAAe,CAAC,gCAAgC,CAAC,CAAC;gBAC3D,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,eAAe,CAAC,+BAA+B,CAAC,CAAC;gBAC1D,CAAC;gBAED,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,EAAE;oBAAE,OAAO,YAAY,CAAC,MAAM,CAAC;gBAEjD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAChE,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBACrE,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzD,IACE,MAAM,CAAC,IAAI,KAAK,CAAC;oBACjB,IAAI,CAAC,IAAI,KAAK,QAAQ;oBACtB,aAAa;oBACb,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAC9C,CAAC;oBACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrF,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}