@kodycodes/cli 1.26.2 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/README.md +175 -167
  2. package/dist/add-mcp-install.d.ts +1 -1
  3. package/dist/api-token.d.ts +1 -1
  4. package/dist/auth-6ZE6QQXA.js +31 -0
  5. package/dist/auth-6ZE6QQXA.js.map +6 -0
  6. package/dist/auth-bootstrap.d.ts +1 -1
  7. package/dist/auth.d.ts +27 -3
  8. package/dist/bin.js +27 -3
  9. package/dist/bin.js.map +6 -1
  10. package/dist/capability-proxy.d.ts +1 -1
  11. package/dist/chunk-2IHISXHN.js +1413 -0
  12. package/dist/chunk-2IHISXHN.js.map +6 -0
  13. package/dist/chunk-2XPH7L2P.js +23 -0
  14. package/dist/chunk-2XPH7L2P.js.map +6 -0
  15. package/dist/chunk-3H72XY5R.js +535 -0
  16. package/dist/chunk-3H72XY5R.js.map +6 -0
  17. package/dist/chunk-46IJPEID.js +30 -0
  18. package/dist/chunk-46IJPEID.js.map +6 -0
  19. package/dist/chunk-4GIFJVGT.js +14 -0
  20. package/dist/chunk-4GIFJVGT.js.map +6 -0
  21. package/dist/chunk-5JIRHJQP.js +1016 -0
  22. package/dist/chunk-5JIRHJQP.js.map +6 -0
  23. package/dist/chunk-5ZBJAP6G.js +2005 -0
  24. package/dist/chunk-5ZBJAP6G.js.map +6 -0
  25. package/dist/chunk-6ZYUGXVW.js +26 -0
  26. package/dist/chunk-6ZYUGXVW.js.map +6 -0
  27. package/dist/chunk-7PRJ36I5.js +23 -0
  28. package/dist/chunk-7PRJ36I5.js.map +6 -0
  29. package/dist/chunk-BTL3PJ2H.js +38 -0
  30. package/dist/chunk-BTL3PJ2H.js.map +6 -0
  31. package/dist/chunk-CASGRYOF.js +21 -0
  32. package/dist/chunk-CASGRYOF.js.map +6 -0
  33. package/dist/chunk-CPS7HW4T.js +56 -0
  34. package/dist/chunk-CPS7HW4T.js.map +6 -0
  35. package/dist/chunk-CWWHR4FH.js +19 -0
  36. package/dist/chunk-CWWHR4FH.js.map +6 -0
  37. package/dist/chunk-D366STO5.js +2051 -0
  38. package/dist/chunk-D366STO5.js.map +6 -0
  39. package/dist/chunk-DW5UTJ6T.js +115 -0
  40. package/dist/chunk-DW5UTJ6T.js.map +6 -0
  41. package/dist/chunk-EJXEVGWF.js +47 -0
  42. package/dist/chunk-EJXEVGWF.js.map +6 -0
  43. package/dist/chunk-FBEZ6PZ7.js +746 -0
  44. package/dist/chunk-FBEZ6PZ7.js.map +6 -0
  45. package/dist/chunk-JOMBXQOS.js +435 -0
  46. package/dist/chunk-JOMBXQOS.js.map +6 -0
  47. package/dist/{package-local-runtime-source.js → chunk-LU7I7CQ4.js} +395 -52
  48. package/dist/chunk-LU7I7CQ4.js.map +6 -0
  49. package/dist/chunk-OZDWOZLV.js +964 -0
  50. package/dist/chunk-OZDWOZLV.js.map +6 -0
  51. package/dist/chunk-SLNAWWQK.js +64 -0
  52. package/dist/chunk-SLNAWWQK.js.map +6 -0
  53. package/dist/chunk-TUUFQYWP.js +348 -0
  54. package/dist/chunk-TUUFQYWP.js.map +6 -0
  55. package/dist/chunk-UW6AWLXX.js +43 -0
  56. package/dist/chunk-UW6AWLXX.js.map +6 -0
  57. package/dist/chunk-W2SAFAT4.js +1563 -0
  58. package/dist/chunk-W2SAFAT4.js.map +6 -0
  59. package/dist/chunk-XV6D6HSG.js +57 -0
  60. package/dist/chunk-XV6D6HSG.js.map +6 -0
  61. package/dist/chunk-Y4FOJETX.js +616 -0
  62. package/dist/chunk-Y4FOJETX.js.map +6 -0
  63. package/dist/chunk-YDWTXEKQ.js +469 -0
  64. package/dist/chunk-YDWTXEKQ.js.map +6 -0
  65. package/dist/chunk-ZILB2HWE.js +24 -0
  66. package/dist/chunk-ZILB2HWE.js.map +6 -0
  67. package/dist/cli.js +74 -1500
  68. package/dist/cli.js.map +6 -1
  69. package/dist/defaults.d.ts +1 -1
  70. package/dist/detect-running-hosts.d.ts +1 -1
  71. package/dist/dev/dev-assets.d.ts +1 -1
  72. package/dist/dev/dev-registry.d.ts +1 -1
  73. package/dist/dev/error-page.d.ts +1 -1
  74. package/dist/dev/live-reload.d.ts +2 -2
  75. package/dist/dev-command-5PDEIWOC.js +5025 -0
  76. package/dist/dev-command-5PDEIWOC.js.map +6 -0
  77. package/dist/dev-command.d.ts +1 -1
  78. package/dist/discover-login-identity.d.ts +6 -7
  79. package/dist/discover-org.d.ts +2 -3
  80. package/dist/generated/openapi-routes.d.ts +6 -0
  81. package/dist/git-credential-INB2UV4C.js +170 -0
  82. package/dist/git-credential-INB2UV4C.js.map +6 -0
  83. package/dist/install-ONEJRYZ3.js +10728 -0
  84. package/dist/install-ONEJRYZ3.js.map +6 -0
  85. package/dist/install.d.ts +1 -1
  86. package/dist/local-execute-I3BP5NEQ.js +395 -0
  87. package/dist/local-execute-I3BP5NEQ.js.map +6 -0
  88. package/dist/local-execute-auth.d.ts +2 -2
  89. package/dist/local-execute.d.ts +1 -1
  90. package/dist/local-gateway-fetch-forward.d.ts +2 -2
  91. package/dist/local-package-run-JFKNSNWM.js +23 -0
  92. package/dist/local-package-run-JFKNSNWM.js.map +6 -0
  93. package/dist/local-package-run.d.ts +2 -2
  94. package/dist/mock/mock-fetch-gateway.d.ts +2 -2
  95. package/dist/mock/mock-supported.d.ts +1 -1
  96. package/dist/mock-dep-resolve-B5ZH4U3H.js +60 -0
  97. package/dist/mock-dep-resolve-B5ZH4U3H.js.map +6 -0
  98. package/dist/mock-fetch-gateway-S2ULVFAI.js +35 -0
  99. package/dist/mock-fetch-gateway-S2ULVFAI.js.map +6 -0
  100. package/dist/mock-local-deps-2VVNJLFF.js +200 -0
  101. package/dist/mock-local-deps-2VVNJLFF.js.map +6 -0
  102. package/dist/mock-local-deps.d.ts +1 -1
  103. package/dist/mock-server-TFO7Q26H.js +22 -0
  104. package/dist/mock-server-TFO7Q26H.js.map +6 -0
  105. package/dist/oauth-browser.d.ts +42 -0
  106. package/dist/oauth-provider.d.ts +14 -19
  107. package/dist/open-api-client-SR4B7265.js +43 -0
  108. package/dist/open-api-client-SR4B7265.js.map +6 -0
  109. package/dist/open-api-client.d.ts +2 -1
  110. package/dist/org-535LB4PD.js +134 -0
  111. package/dist/org-535LB4PD.js.map +6 -0
  112. package/dist/org-resolve.d.ts +2 -0
  113. package/dist/package-app-dev.d.ts +2 -2
  114. package/dist/package-manifest-DFF6XCPV.js +15 -0
  115. package/dist/package-manifest-DFF6XCPV.js.map +6 -0
  116. package/dist/remote-execute-JN6DRFEU.js +129 -0
  117. package/dist/remote-execute-JN6DRFEU.js.map +6 -0
  118. package/dist/remote-execute.d.ts +3 -3
  119. package/dist/setup-git-MHK563LB.js +87 -0
  120. package/dist/setup-git-MHK563LB.js.map +6 -0
  121. package/dist/setup-git.d.ts +1 -1
  122. package/dist/skill-D74XVI6T.js +61 -0
  123. package/dist/skill-D74XVI6T.js.map +6 -0
  124. package/dist/store-27J4CQZ2.js +48 -0
  125. package/dist/store-27J4CQZ2.js.map +6 -0
  126. package/dist/structured-error-5MLWXYR3.js +14 -0
  127. package/dist/structured-error-5MLWXYR3.js.map +6 -0
  128. package/dist/structured-error.d.ts +1 -1
  129. package/dist/target-33ATHDUF.js +17 -0
  130. package/dist/target-33ATHDUF.js.map +6 -0
  131. package/package.json +12 -11
  132. package/skills/kody/SKILL.md +53 -50
  133. package/dist/add-mcp-install.js +0 -59
  134. package/dist/add-mcp-install.js.map +0 -1
  135. package/dist/api-token-store.js +0 -120
  136. package/dist/api-token-store.js.map +0 -1
  137. package/dist/api-token.js +0 -238
  138. package/dist/api-token.js.map +0 -1
  139. package/dist/auth-bootstrap.js +0 -373
  140. package/dist/auth-bootstrap.js.map +0 -1
  141. package/dist/auth.js +0 -386
  142. package/dist/auth.js.map +0 -1
  143. package/dist/capability-proxy.js +0 -527
  144. package/dist/capability-proxy.js.map +0 -1
  145. package/dist/credential-call-map.js +0 -155
  146. package/dist/credential-call-map.js.map +0 -1
  147. package/dist/credential-client-runtime-source.js +0 -9
  148. package/dist/credential-client-runtime-source.js.map +0 -1
  149. package/dist/credentialed-fetch-scan.js +0 -98
  150. package/dist/credentialed-fetch-scan.js.map +0 -1
  151. package/dist/defaults.js +0 -34
  152. package/dist/defaults.js.map +0 -1
  153. package/dist/detect-running-hosts.js +0 -13
  154. package/dist/detect-running-hosts.js.map +0 -1
  155. package/dist/dev/dev-assets.js +0 -202
  156. package/dist/dev/dev-assets.js.map +0 -1
  157. package/dist/dev/dev-bundler.js +0 -65
  158. package/dist/dev/dev-bundler.js.map +0 -1
  159. package/dist/dev/dev-events.js +0 -94
  160. package/dist/dev/dev-events.js.map +0 -1
  161. package/dist/dev/dev-port.js +0 -80
  162. package/dist/dev/dev-port.js.map +0 -1
  163. package/dist/dev/dev-protocol.js +0 -14
  164. package/dist/dev/dev-protocol.js.map +0 -1
  165. package/dist/dev/dev-registry.js +0 -95
  166. package/dist/dev/dev-registry.js.map +0 -1
  167. package/dist/dev/dev-watcher.js +0 -162
  168. package/dist/dev/dev-watcher.js.map +0 -1
  169. package/dist/dev/error-page.js +0 -64
  170. package/dist/dev/error-page.js.map +0 -1
  171. package/dist/dev/live-reload.js +0 -151
  172. package/dist/dev/live-reload.js.map +0 -1
  173. package/dist/dev/prebuild.js +0 -102
  174. package/dist/dev/prebuild.js.map +0 -1
  175. package/dist/dev/process-reaper.js +0 -151
  176. package/dist/dev/process-reaper.js.map +0 -1
  177. package/dist/dev/stack-trace.js +0 -56
  178. package/dist/dev/stack-trace.js.map +0 -1
  179. package/dist/dev/workerd-process.js +0 -118
  180. package/dist/dev/workerd-process.js.map +0 -1
  181. package/dist/dev-command.js +0 -676
  182. package/dist/dev-command.js.map +0 -1
  183. package/dist/discover-login-identity.js +0 -77
  184. package/dist/discover-login-identity.js.map +0 -1
  185. package/dist/discover-org.js +0 -62
  186. package/dist/discover-org.js.map +0 -1
  187. package/dist/git-credential.js +0 -147
  188. package/dist/git-credential.js.map +0 -1
  189. package/dist/help.js +0 -333
  190. package/dist/help.js.map +0 -1
  191. package/dist/host-catalog.js +0 -427
  192. package/dist/host-catalog.js.map +0 -1
  193. package/dist/host-config.js +0 -80
  194. package/dist/host-config.js.map +0 -1
  195. package/dist/http-error-body.js +0 -35
  196. package/dist/http-error-body.js.map +0 -1
  197. package/dist/install-hosts.js +0 -328
  198. package/dist/install-hosts.js.map +0 -1
  199. package/dist/install.js +0 -120
  200. package/dist/install.js.map +0 -1
  201. package/dist/invoke-passthrough.js +0 -60
  202. package/dist/invoke-passthrough.js.map +0 -1
  203. package/dist/local-bundle.js +0 -200
  204. package/dist/local-bundle.js.map +0 -1
  205. package/dist/local-execute-auth.js +0 -53
  206. package/dist/local-execute-auth.js.map +0 -1
  207. package/dist/local-execute.js +0 -338
  208. package/dist/local-execute.js.map +0 -1
  209. package/dist/local-gateway-fetch-forward.js +0 -135
  210. package/dist/local-gateway-fetch-forward.js.map +0 -1
  211. package/dist/local-host-runtime-surface.js +0 -75
  212. package/dist/local-host-runtime-surface.js.map +0 -1
  213. package/dist/local-package-graph.js +0 -405
  214. package/dist/local-package-graph.js.map +0 -1
  215. package/dist/local-package-run.js +0 -307
  216. package/dist/local-package-run.js.map +0 -1
  217. package/dist/local-runtime-bridge.js +0 -132
  218. package/dist/local-runtime-bridge.js.map +0 -1
  219. package/dist/local-runtime-source.js +0 -541
  220. package/dist/local-runtime-source.js.map +0 -1
  221. package/dist/login-callback-assets.js +0 -10
  222. package/dist/login-callback-assets.js.map +0 -1
  223. package/dist/login-callback-page.js +0 -362
  224. package/dist/login-callback-page.js.map +0 -1
  225. package/dist/mcp.d.ts +0 -34
  226. package/dist/mcp.js +0 -134
  227. package/dist/mcp.js.map +0 -1
  228. package/dist/mock/ensure-msw.js +0 -215
  229. package/dist/mock/ensure-msw.js.map +0 -1
  230. package/dist/mock/install-mock-fetch-shim.js +0 -36
  231. package/dist/mock/install-mock-fetch-shim.js.map +0 -1
  232. package/dist/mock/load-package-mocks.js +0 -136
  233. package/dist/mock/load-package-mocks.js.map +0 -1
  234. package/dist/mock/mock-fetch-gateway.js +0 -343
  235. package/dist/mock/mock-fetch-gateway.js.map +0 -1
  236. package/dist/mock/mock-gateway-fetch-shim.js +0 -104
  237. package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
  238. package/dist/mock/mock-server.js +0 -499
  239. package/dist/mock/mock-server.js.map +0 -1
  240. package/dist/mock/mock-storage.js +0 -186
  241. package/dist/mock/mock-storage.js.map +0 -1
  242. package/dist/mock/mock-supported.js +0 -63
  243. package/dist/mock/mock-supported.js.map +0 -1
  244. package/dist/mock-dep-resolve.js +0 -47
  245. package/dist/mock-dep-resolve.js.map +0 -1
  246. package/dist/mock-local-deps.js +0 -207
  247. package/dist/mock-local-deps.js.map +0 -1
  248. package/dist/network-error.js +0 -11
  249. package/dist/network-error.js.map +0 -1
  250. package/dist/node-engine.js +0 -21
  251. package/dist/node-engine.js.map +0 -1
  252. package/dist/oauth-provider.js +0 -107
  253. package/dist/oauth-provider.js.map +0 -1
  254. package/dist/onboarding-prompt.js +0 -15
  255. package/dist/onboarding-prompt.js.map +0 -1
  256. package/dist/open-api-client.js +0 -432
  257. package/dist/open-api-client.js.map +0 -1
  258. package/dist/open-url.js +0 -21
  259. package/dist/open-url.js.map +0 -1
  260. package/dist/org-resolve.js +0 -16
  261. package/dist/org-resolve.js.map +0 -1
  262. package/dist/org-slug.js +0 -11
  263. package/dist/org-slug.js.map +0 -1
  264. package/dist/org.js +0 -100
  265. package/dist/org.js.map +0 -1
  266. package/dist/package-app-dev.js +0 -922
  267. package/dist/package-app-dev.js.map +0 -1
  268. package/dist/package-collaborators.js +0 -179
  269. package/dist/package-collaborators.js.map +0 -1
  270. package/dist/package-info.js +0 -19
  271. package/dist/package-info.js.map +0 -1
  272. package/dist/package-local-runtime-source.js.map +0 -1
  273. package/dist/package-manifest.js +0 -364
  274. package/dist/package-manifest.js.map +0 -1
  275. package/dist/process-info.js +0 -14
  276. package/dist/process-info.js.map +0 -1
  277. package/dist/redact.js +0 -16
  278. package/dist/redact.js.map +0 -1
  279. package/dist/remote-execute.js +0 -108
  280. package/dist/remote-execute.js.map +0 -1
  281. package/dist/setup-git.js +0 -676
  282. package/dist/setup-git.js.map +0 -1
  283. package/dist/skill.js +0 -35
  284. package/dist/skill.js.map +0 -1
  285. package/dist/store.js +0 -597
  286. package/dist/store.js.map +0 -1
  287. package/dist/structured-error.js +0 -57
  288. package/dist/structured-error.js.map +0 -1
  289. package/dist/target.js +0 -52
  290. package/dist/target.js.map +0 -1
  291. package/dist/tool-result.js +0 -19
  292. package/dist/tool-result.js.map +0 -1
  293. package/dist/which.js +0 -22
  294. package/dist/which.js.map +0 -1
  295. package/dist/workerd-binary.js +0 -98
  296. package/dist/workerd-binary.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-git.js","sourceRoot":"","sources":["../src/setup-git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EACN,cAAc,EACd,OAAO,EACP,aAAa,EACb,aAAa,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GAEvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACN,oBAAoB,EACpB,kBAAkB,GAElB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/E,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAEjD,iEAAiE;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,cAAc,EAAE,eAAe,CAAU,CAAA;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC3D,aAAa;IACb,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,UAAU;IACV,aAAa;IACb,aAAa;IACb,UAAU;IACV,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,YAAY;IACZ,cAAc;CACd,CAAA;AASD;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAiB,aAAa;IACzE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,MAAgD,EAChD,WAAkC,sBAAsB;IAExD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CACnC,OAA8B,qBAAqB;IAEnD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACrB,KAAK,MAAM,QAAQ,IAAI,sBAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,KAI/C;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,UAAU,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM;QACN,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC,CAA4B,CAAA;IAE9B,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAA;IACzC,MAAM,UAAU,GACf,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IAE3E,OAAO;QACN,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;QAC5B,UAAU;QACV,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;YAC9E,CAAC,CAAC,EAAE;QACL,SAAS,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;KAC7E,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAA8B;IACvE,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACd,uNAAuN,CACvN,CAAA;IACF,CAAC;AACF,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAKnC;IACA,MAAM,QAAQ,GACb,KAAK,CAAC,QAAQ;QACd,uBAAuB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAE9C,IACC,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM;QACpC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,CAAC,KAAK,CAAC,cAAc,EACpB,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC3E,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,MAAM,MAAM,GAAG,oBAAoB,CAClC,KAAK,CAAC,cAAc;QACnB,KAAK,CAAC,QAAQ,EAAE,MAAM;QACtB,KAAK,CAAC,MAAM,EAAE,MAAM;QACpB,qBAAqB,CACtB,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM;QAC3B,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,MAAM;YACtC,CAAC,CAAC,gEAAgE;YAClE,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAC/C,CAAC,CAAC,4DAA4D;gBAC9D,CAAC,CAAC,2CAA2C,CAAA;IAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;AACpD,CAAC;AAOD,MAAM,UAAU,sBAAsB,CAAC,IAA2B;IAIjE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QAC1C,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KAChB,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IACnD,CAAC;IACD,OAAO;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;QAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KACpC,CAAA;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAK1C;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,sBAAsB,CAAA;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAC7D,MAAM,SAAS,GAAG,sBAAsB,KAAK,CAAC,IAAI,SAAS,CAAA;IAC3D,MAAM,OAAO,GAAG,sBAAsB,KAAK,CAAC,IAAI,cAAc,CAAA;IAE9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI;QAC1B,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;QAChC,CAAC,OAAO,EAAE,MAAM,CAAC;KACR,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACd,cAAc,KAAK,IAAI,GAAG,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAClG,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA;AACvE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAA;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,QAAQ,CAAA;AAE7D,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE1D,MAAM,UAAU,qBAAqB;IACpC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,mBAAmB,CAAC,iBAAiB,CAAyB,CAAA;QAC1E,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAA;IAC7F,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,qCAAqC,CAAA;IAC7C,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACxD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAChD,OAAO,CACN,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QAClC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B,CAAA;AACF,CAAC;AAID,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvB,CAAA;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAY,EAAE,CAAY;IAC1D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,OAAO,CAAC,CAAA;AACT,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAe;IAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACrC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACjC,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAa;IAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACjC,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,+BAA+B,CAAC,OAAe;IAC9D,OAAO,aAAa,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAAsB;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAA;IACzD,CAAC;IACD,OAAO,qCAAqC,CAAA;AAC7C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,cAAsB;IAC3D,OAAO,qBAAqB,CAAC,cAAc,CAAC,CAAA;AAC7C,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,oBAAoB,CACnC,MAA4D,EAC5D,QAAgB,IAAI,CAAC,GAAG,EAAE,EAC1B,SAAiB,wBAAwB;IAEzC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5C,OAAO,SAAS,GAAG,KAAK,IAAI,MAAM,CAAA;AACnC,CAAC;AAID;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACxC,OAAe,EACf,OAA8B,CAAC,WAAW,CAAC;IAE3C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QAC5C,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE;YACJ,GAAG,OAAO,CAAC,GAAG;YACd,4BAA4B,EAAE,GAAG;SACjC;QACD,OAAO,EAAE,KAAK;KACd,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,KAAK,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAA;IAC7D,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC1B,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe;IACpD,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAO1C;IACA,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACrC,MAAM,OAAO,GAAG,KAAK,EAAE,KAAK,IAAI,WAAW,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,KAAK,EAAE,eAAe,IAAI,4BAA4B,CAAA;IAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,IAAI,UAAU,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;QAC7C,IAAI,aAAa,IAAI,+BAA+B,CAAC,aAAa,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAA;QACnD,CAAC;IACF,CAAC;IACD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;QACpD,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAA;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,qBAAqB,CAClC,KAAK,EAAE,cAAc,IAAI,qBAAqB,EAAE,CAChD,CAAA;IACD,OAAO,WAAW,OAAO,IAAI,KAAK,iBAAiB,CAAA;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACvD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAA;AAC3C,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAClD,OAAO,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACpD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,MAAc;IACnD,MAAM,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAM9C;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,IAAI,uBAAuB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAE7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAA;QACzD,MAAM,OAAO,GAAG,qBAAqB,CACpC,KAAK,CAAC,cAAc,IAAI,qBAAqB,EAAE,CAC/C,CAAA;QACD,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACvC,yEAAyE;QACzE,mEAAmE;QACnE,oDAAoD;QACpD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,4EAA4E;IAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,IAAI,4BAA4B,CAAA;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAA;YAC3C,IAAI,OAAO,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAA;QACtE,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE;gBACzD,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,WAAW;aACX,CAAC,CAAA;YACF,IAAI,OAAO,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAA;QACtE,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAQD,MAAM,UAAU,yBAAyB,CAAC,IAA2B;IAKpE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QAC1C,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KAChB,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC/D,CAAC;IACD,OAAO;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;QAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KACpC,CAAA;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qCAAqC,CAAC,KAcrD;IACA,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,aAAa,CAAA;IAC7C,MAAM,IAAI,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAC9D,MAAM,MAAM,GAAG,KAAK,EAAE,SAAS,IAAI,yBAAyB,CAAA;IAC5D,MAAM,SAAS,GAAG,sBAAsB,IAAI,SAAS,CAAA;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IACzD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEjD,MAAM,cAAc,GAAG,KAAK,EAAE,cAAc,IAAI,qBAAqB,EAAE,CAAA;IACvE,IACC,CAAC,8BAA8B,CAAC;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,cAAc;QACd,eAAe,EAAE,KAAK,EAAE,eAAe;QACvC,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAK,IAAI;KACtD,CAAC,EACD,CAAC;QACF,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,aAAa,GAClB,KAAK,EAAE,aAAa;QACpB,0BAA0B,CAAC;YAC1B,cAAc;YACd,KAAK,EAAE,KAAK,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK,EAAE,QAAQ;YACzB,SAAS,EAAE,KAAK,EAAE,SAAS;YAC3B,GAAG,EAAE,KAAK,EAAE,GAAG;YACf,eAAe,EAAE,KAAK,EAAE,eAAe;SACvC,CAAC,CAAA;IACH,IAAI,aAAa,KAAK,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAE9C,0BAA0B,CAAC;QAC1B,IAAI;QACJ,aAAa;QACb,MAAM,EAAE,KAAK,EAAE,MAAM;QACrB,MAAM,EAAE,KAAK,EAAE,MAAM;KACrB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACZ,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAqBlC;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,MAAM,IAAI,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAEhD,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAClF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,cAAc,EAAE,KAAK,CAAA;IACvD,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAA;IACtD,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACd,2GAA2G,cAAc,oBAAoB,CAC7I,CAAA;IACF,CAAC;IAED,IAAI,aAAa,GAAgC,IAAI,CAAA;IACrD,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,aAAa,GAAG,MAAM,yBAAyB,CAAC;gBAC/C,KAAK,EAAE,UAAU;gBACjB,MAAM;gBACN,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACd,sCAAsC,MAAM,iEAAiE,cAAc,GAAG,CAC9H,CAAA;YACF,CAAC;YACD,MAAM,KAAK,CAAA;QACZ,CAAC;QACD,iFAAiF;QACjF,yBAAyB,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,cAAc,GAAgC,IAAI,CAAA;IACtD,IAAI,cAAc,EAAE,CAAC;QACpB,IAAI,aAAa,IAAI,cAAc,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC1D,cAAc,GAAG,aAAa,CAAA;QAC/B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC;gBACJ,cAAc,GAAG,MAAM,yBAAyB,CAAC;oBAChD,KAAK,EAAE,cAAc,CAAC,KAAK;oBAC3B,MAAM;oBACN,OAAO,EAAE,KAAK,CAAC,OAAO;iBACtB,CAAC,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,cAAc,GAAG,IAAI,CAAA;YACtB,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACpC,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,cAAc;QACxB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACxB,CAAC,CAAA;IAEF,IAAI,MAAsB,CAAA;IAC1B,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,WAAmB,CAAA;IACvB,IAAI,WAA+B,CAAA;IAEnC,IAAI,aAAmC,CAAA;IAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QACxB,WAAW,GAAG,UAAU,CAAA;QACxB,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAA;IAClC,CAAC;SAAM,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC5C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAA;QACF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,MAAM,GAAG,IAAI,CAAA;QACb,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QAChC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QAEhC,oEAAoE;QACpE,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC;YAC7C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAA;QACF,yBAAyB,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACd,gBAAgB,MAAM,CAAC,OAAO,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,wDAAwD,CAC1I,CAAA;QACF,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACd,gBAAgB,MAAM,CAAC,OAAO,iFAAiF,CAC/G,CAAA;QACF,CAAC;QACD,aAAa,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,0BAA0B,EAAE,CAAA;IACzE,0BAA0B,CAAC;QAC1B,IAAI;QACJ,aAAa;QACb,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC,CAAA;IAEF,OAAO;QACN,IAAI;QACJ,aAAa;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,UAAU,EAAE,MAAM;QAClB,MAAM;QACN,WAAW;QACX,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,SAAS,EAAE,aAAa,CAAC,SAAS;KAClC,CAAA;AACF,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAU,CAAA;AAqBpE;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC3D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACtB,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACpB,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7C,IAAI,uBAAuB,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAChF,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAChE,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KASnC;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,MAAM,IAAI,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,yBAAyB,CAAA;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,sBAAsB,CAAA;IAErD,MAAM,SAAS,GAAG,sBAAsB,IAAI,SAAS,CAAA;IACrD,MAAM,OAAO,GAAG,sBAAsB,IAAI,cAAc,CAAA;IACxD,MAAM,cAAc,GAAiC,EAAE,CAAA;IACvD,MAAM,eAAe,GAA2C,EAAE,CAAA;IAElE,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QAC1C,mEAAmE;QACnE,kEAAkE;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;QACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;iBAC3B,KAAK,CAAC,OAAO,CAAC;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,OAAO,CAAC,CAAA;YACjB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;YACjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC5B,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;gBACtD,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAA;YAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,eAAe,CAAC,IAAI,CAAC;oBACpB,KAAK;oBACL,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9C,CAAC,CAAA;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC1E,IAAI,YAAY,GAAwC,SAAS,CAAA;IACjE,IAAI,gBAAoC,CAAA;IACxC,IAAI,OAAO,GAAkB,MAAM,EAAE,OAAO,IAAI,IAAI,CAAA;IAEpD,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,cAAc,CAAC;gBACpB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM;gBACN,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,YAAY,GAAG,KAAK,CAAA;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;gBACrF,YAAY,GAAG,SAAS,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACP,YAAY,GAAG,QAAQ,CAAA;gBACvB,gBAAgB;oBACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxD,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAE7E,OAAO;QACN,IAAI;QACJ,cAAc;QACd,eAAe;QACf,OAAO;QACP,YAAY;QACZ,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,mBAAmB,EAAE,OAAO,CAAC,OAAO;KACpC,CAAA;AACF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,yBAAyB,CAAC,MAA2B;IACpE,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,eAAe,GACpB,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAChC,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACjC,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,YAAY,KAAK,KAAK;QAC7B,MAAM,CAAC,YAAY,KAAK,SAAS,CAAA;IAElC,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,OAAO;YACN,6EAA6E,MAAM,CAAC,IAAI,IAAI;YAC5F,4DAA4D;YAC5D,EAAE;SACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,4CAA4C,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;IACtE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACT,oBAAoB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,gCAAgC,CAC9F,CAAA;IACF,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CACT,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,4CAA4C,CAClG,CAAA;IACF,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CACT,2CAA2C,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC3G,CAAA;IACF,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;IACjF,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
package/dist/skill.js DELETED
@@ -1,35 +0,0 @@
1
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
- import { dirname, join } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { homedir } from 'node:os';
5
- const skillRelativePath = 'skills/kody/SKILL.md';
6
- export function bundledSkillPath() {
7
- return join(fileURLToPath(new URL('../', import.meta.url)), skillRelativePath);
8
- }
9
- export function userSkillTargets(home = homedir()) {
10
- return [
11
- { host: 'Claude Code', path: join(home, '.claude', 'skills', 'kody', 'SKILL.md') },
12
- { host: 'Cursor', path: join(home, '.cursor', 'skills', 'kody', 'SKILL.md') },
13
- { host: 'Agents', path: join(home, '.agents', 'skills', 'kody', 'SKILL.md') },
14
- ];
15
- }
16
- export function projectSkillTargets(cwd = process.cwd()) {
17
- return [
18
- { host: 'Agents', path: join(cwd, '.agents', 'skills', 'kody', 'SKILL.md') },
19
- { host: 'Cursor', path: join(cwd, '.cursor', 'skills', 'kody', 'SKILL.md') },
20
- { host: 'Claude Code', path: join(cwd, '.claude', 'skills', 'kody', 'SKILL.md') },
21
- ];
22
- }
23
- export async function installSkill(input) {
24
- const source = input.sourcePath ?? bundledSkillPath();
25
- const body = await readFile(source, 'utf8');
26
- const targets = input.project
27
- ? projectSkillTargets(input.cwd)
28
- : userSkillTargets(input.home);
29
- for (const target of targets) {
30
- await mkdir(dirname(target.path), { recursive: true });
31
- await writeFile(target.path, body, 'utf8');
32
- }
33
- return targets;
34
- }
35
- //# sourceMappingURL=skill.js.map
package/dist/skill.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,MAAM,iBAAiB,GAAG,sBAAsB,CAAA;AAEhD,MAAM,UAAU,gBAAgB;IAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,OAAO,EAAE;IAIxD,OAAO;QACN,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;QAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;QAC7E,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;KAC7E,CAAA;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAI9D,OAAO;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;QAC5E,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;QAC5E,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE;KACjF,CAAA;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAKlC;IACA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,gBAAgB,EAAE,CAAA;IACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;QAC5B,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC"}
package/dist/store.js DELETED
@@ -1,597 +0,0 @@
1
- import { chmodSync, mkdirSync, readFileSync, unlinkSync, writeFileSync, } from 'node:fs';
2
- import { dirname, join } from 'node:path';
3
- import { homedir } from 'node:os';
4
- import { Entry } from '@napi-rs/keyring';
5
- import { defaultMcpUrl, keyringService } from './defaults.js';
6
- /** Linux-only: require Secret Service. Ignored on macOS and Windows. */
7
- export const secretServiceKeyringOptions = {
8
- linux: { store: 'secret-service' },
9
- };
10
- export function accountForMcpUrl(mcpUrl) {
11
- return `cli:${new URL(mcpUrl).origin}`;
12
- }
13
- export function fileStorePath(mcpUrl, home = homedir()) {
14
- const origin = new URL(mcpUrl).host.replace(/[^a-zA-Z0-9.-]/g, '_');
15
- const base = process.platform === 'win32'
16
- ? join(process.env.APPDATA || join(home, 'AppData', 'Roaming'), 'kody')
17
- : process.platform === 'darwin'
18
- ? join(home, 'Library', 'Application Support', 'kody')
19
- : join(process.env.XDG_CONFIG_HOME || join(home, '.config'), 'kody');
20
- return join(base, `credentials-${origin}.json`);
21
- }
22
- export function createFileBackend(path) {
23
- return {
24
- kind: 'file',
25
- path,
26
- get() {
27
- try {
28
- return readFileSync(path, 'utf8');
29
- }
30
- catch {
31
- return null;
32
- }
33
- },
34
- set(value) {
35
- mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
36
- writeFileSync(path, value, { mode: 0o600 });
37
- try {
38
- chmodSync(path, 0o600);
39
- }
40
- catch {
41
- // Windows cannot apply POSIX modes.
42
- }
43
- },
44
- delete() {
45
- try {
46
- unlinkSync(path);
47
- return true;
48
- }
49
- catch {
50
- return false;
51
- }
52
- },
53
- };
54
- }
55
- export function createKeyringBackend(mcpUrl) {
56
- const entry = new Entry(keyringService, accountForMcpUrl(mcpUrl), secretServiceKeyringOptions);
57
- return {
58
- kind: 'keyring',
59
- get() {
60
- try {
61
- return entry.getPassword();
62
- }
63
- catch {
64
- return null;
65
- }
66
- },
67
- set(value) {
68
- entry.setPassword(value);
69
- },
70
- delete() {
71
- try {
72
- return entry.deleteCredential();
73
- }
74
- catch {
75
- return false;
76
- }
77
- },
78
- };
79
- }
80
- function fileBackendFor(mcpUrl, resolution) {
81
- const path = resolution?.fileStorePath?.(mcpUrl) ?? fileStorePath(mcpUrl);
82
- return createFileBackend(path);
83
- }
84
- export function resolveBackend(mcpUrl, preferred, resolution) {
85
- if (preferred)
86
- return preferred;
87
- try {
88
- return (resolution?.createKeyring ?? createKeyringBackend)(mcpUrl);
89
- }
90
- catch {
91
- return fileBackendFor(mcpUrl, resolution);
92
- }
93
- }
94
- function withDerivedIssuer(parsed) {
95
- // Pre-SEP-2352 / partial payloads may omit authorizationServerUrl. Derive
96
- // the issuer stamp from the MCP origin so reload does not warn, and the
97
- // next successful save/refresh persists the real AS issuer.
98
- if (typeof parsed.authorizationServerUrl === 'string' &&
99
- parsed.authorizationServerUrl.trim()) {
100
- return parsed;
101
- }
102
- if (typeof parsed.mcpUrl !== 'string' || !parsed.mcpUrl) {
103
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
104
- }
105
- return {
106
- ...parsed,
107
- authorizationServerUrl: new URL(parsed.mcpUrl).origin,
108
- };
109
- }
110
- function recordToCredentials(mcpUrl, record, org) {
111
- const slug = org ?? record.org;
112
- return withDerivedIssuer({
113
- version: 1,
114
- mcpUrl,
115
- ...(slug ? { org: slug } : {}),
116
- resource: record.resource,
117
- authorizationServerUrl: record.authorizationServerUrl,
118
- clientId: record.clientId,
119
- ...(record.clientSecret !== undefined
120
- ? { clientSecret: record.clientSecret }
121
- : {}),
122
- accessToken: record.accessToken,
123
- ...(record.refreshToken !== undefined
124
- ? { refreshToken: record.refreshToken }
125
- : {}),
126
- tokenType: record.tokenType,
127
- ...(record.expiresAt !== undefined ? { expiresAt: record.expiresAt } : {}),
128
- ...(record.scope !== undefined ? { scope: record.scope } : {}),
129
- });
130
- }
131
- function credentialsToRecord(credentials) {
132
- return {
133
- ...(credentials.org ? { org: credentials.org } : {}),
134
- resource: credentials.resource,
135
- authorizationServerUrl: credentials.authorizationServerUrl,
136
- clientId: credentials.clientId,
137
- ...(credentials.clientSecret !== undefined
138
- ? { clientSecret: credentials.clientSecret }
139
- : {}),
140
- accessToken: credentials.accessToken,
141
- ...(credentials.refreshToken !== undefined
142
- ? { refreshToken: credentials.refreshToken }
143
- : {}),
144
- tokenType: credentials.tokenType,
145
- ...(credentials.expiresAt !== undefined
146
- ? { expiresAt: credentials.expiresAt }
147
- : {}),
148
- ...(credentials.scope !== undefined ? { scope: credentials.scope } : {}),
149
- };
150
- }
151
- function isRecord(value) {
152
- return value !== null && typeof value === 'object' && !Array.isArray(value);
153
- }
154
- function parseOrgRecord(value) {
155
- if (!isRecord(value))
156
- return null;
157
- if (typeof value.accessToken !== 'string' || !value.accessToken)
158
- return null;
159
- if (typeof value.clientId !== 'string' || !value.clientId)
160
- return null;
161
- if (typeof value.resource !== 'string' || !value.resource)
162
- return null;
163
- if (typeof value.tokenType !== 'string' || !value.tokenType)
164
- return null;
165
- const authorizationServerUrl = typeof value.authorizationServerUrl === 'string'
166
- ? value.authorizationServerUrl
167
- : '';
168
- return {
169
- ...(typeof value.org === 'string' && value.org.trim()
170
- ? { org: value.org.trim().toLowerCase() }
171
- : {}),
172
- resource: value.resource,
173
- authorizationServerUrl,
174
- clientId: value.clientId,
175
- ...(typeof value.clientSecret === 'string'
176
- ? { clientSecret: value.clientSecret }
177
- : {}),
178
- accessToken: value.accessToken,
179
- ...(typeof value.refreshToken === 'string'
180
- ? { refreshToken: value.refreshToken }
181
- : {}),
182
- tokenType: value.tokenType,
183
- ...(typeof value.expiresAt === 'number' ? { expiresAt: value.expiresAt } : {}),
184
- ...(typeof value.scope === 'string' ? { scope: value.scope } : {}),
185
- };
186
- }
187
- /** Parse v1 single-org or v2 multi-org JSON from the credential backend. */
188
- export function parseCredentialStore(raw, fallbackMcpUrl = defaultMcpUrl) {
189
- const parsed = JSON.parse(raw);
190
- if (!isRecord(parsed) || typeof parsed.version !== 'number') {
191
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
192
- }
193
- if (parsed.version === 2) {
194
- const mcpUrl = typeof parsed.mcpUrl === 'string' && parsed.mcpUrl
195
- ? parsed.mcpUrl
196
- : fallbackMcpUrl;
197
- const orgs = {};
198
- if (isRecord(parsed.orgs)) {
199
- for (const [key, value] of Object.entries(parsed.orgs)) {
200
- const record = parseOrgRecord(value);
201
- if (!record) {
202
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
203
- }
204
- const slug = (record.org ?? key).trim().toLowerCase();
205
- if (!slug) {
206
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
207
- }
208
- orgs[slug] = { ...record, org: slug };
209
- }
210
- }
211
- const pending = parsed.pending !== undefined ? parseOrgRecord(parsed.pending) : undefined;
212
- if (parsed.pending !== undefined && !pending) {
213
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
214
- }
215
- const activeOrgRaw = typeof parsed.activeOrg === 'string' ? parsed.activeOrg.trim().toLowerCase() : null;
216
- const activeOrg = activeOrgRaw && orgs[activeOrgRaw]
217
- ? activeOrgRaw
218
- : Object.keys(orgs).sort((a, b) => a.localeCompare(b))[0] ?? null;
219
- return {
220
- version: 2,
221
- mcpUrl,
222
- activeOrg,
223
- orgs,
224
- ...(pending ? { pending } : {}),
225
- };
226
- }
227
- if (parsed.version === 1) {
228
- const credentials = parseCredentials(JSON.stringify(parsed));
229
- return migrateV1ToMultiOrg(credentials);
230
- }
231
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
232
- }
233
- /**
234
- * Silent offline migration: wrap a v1 single-org payload as a multi-org store.
235
- * When `org` is already known, it becomes the active org; otherwise tokens sit
236
- * in `pending` until metaGetCurrentUser (or login) supplies the slug.
237
- */
238
- export function migrateV1ToMultiOrg(credentials) {
239
- const record = credentialsToRecord(withDerivedIssuer(credentials));
240
- const slug = typeof credentials.org === 'string' && credentials.org.trim()
241
- ? credentials.org.trim().toLowerCase()
242
- : null;
243
- if (slug) {
244
- return {
245
- version: 2,
246
- mcpUrl: credentials.mcpUrl,
247
- activeOrg: slug,
248
- orgs: { [slug]: { ...record, org: slug } },
249
- };
250
- }
251
- return {
252
- version: 2,
253
- mcpUrl: credentials.mcpUrl,
254
- activeOrg: null,
255
- orgs: {},
256
- pending: record,
257
- };
258
- }
259
- /** @deprecated Prefer parseCredentialStore; kept for tests and callers that expect v1. */
260
- export function parseCredentials(raw) {
261
- const parsed = JSON.parse(raw);
262
- if (parsed.version !== 1 || !parsed.accessToken || !parsed.clientId) {
263
- throw new Error('Stored Kody credentials are invalid. Run `kody login`.');
264
- }
265
- const withOrg = typeof parsed.org === 'string' && parsed.org.trim()
266
- ? { ...parsed, org: parsed.org.trim().toLowerCase() }
267
- : parsed;
268
- return withDerivedIssuer(withOrg);
269
- }
270
- function readStore(store, mcpUrl) {
271
- const raw = store.get();
272
- if (!raw)
273
- return null;
274
- return parseCredentialStore(raw, mcpUrl);
275
- }
276
- function writeStore(store, snapshot) {
277
- store.set(JSON.stringify(snapshot));
278
- }
279
- function emptyStore(mcpUrl) {
280
- return { version: 2, mcpUrl, activeOrg: null, orgs: {} };
281
- }
282
- export function loadCredentialStore(mcpUrl = defaultMcpUrl, backend, resolution) {
283
- const store = resolveBackend(mcpUrl, backend, resolution);
284
- try {
285
- const loaded = readStore(store, mcpUrl);
286
- if (loaded)
287
- return loaded;
288
- }
289
- catch (error) {
290
- if (!(store.kind === 'keyring' && !backend))
291
- throw error;
292
- }
293
- if (store.kind === 'keyring' && !backend) {
294
- return readStore(fileBackendFor(mcpUrl, resolution), mcpUrl);
295
- }
296
- return null;
297
- }
298
- export function saveCredentialStore(snapshot, backend, resolution) {
299
- const store = resolveBackend(snapshot.mcpUrl, backend, resolution);
300
- try {
301
- writeStore(store, snapshot);
302
- return { backend: store };
303
- }
304
- catch (error) {
305
- if (store.kind === 'keyring' && !backend) {
306
- const fallback = fileBackendFor(snapshot.mcpUrl, resolution);
307
- writeStore(fallback, snapshot);
308
- return { backend: fallback };
309
- }
310
- throw error;
311
- }
312
- }
313
- /**
314
- * Resolve one org's credentials. Precedence for which org: explicit `org`
315
- * option, else the store's active org, else the sole pending legacy session.
316
- */
317
- export function loadCredentials(mcpUrl = defaultMcpUrl, backend, resolution, options) {
318
- const snapshot = loadCredentialStore(mcpUrl, backend, resolution);
319
- if (!snapshot)
320
- return null;
321
- return pickCredentialsFromStore(snapshot, options?.org);
322
- }
323
- /** Legacy pending session only (not the active named org). */
324
- export function loadPendingCredentials(mcpUrl = defaultMcpUrl, backend, resolution) {
325
- const snapshot = loadCredentialStore(mcpUrl, backend, resolution);
326
- if (!snapshot?.pending)
327
- return null;
328
- return recordToCredentials(snapshot.mcpUrl, snapshot.pending);
329
- }
330
- export function pickCredentialsFromStore(snapshot, org) {
331
- const requested = org?.trim().toLowerCase();
332
- if (requested) {
333
- const record = snapshot.orgs[requested];
334
- if (record)
335
- return recordToCredentials(snapshot.mcpUrl, record, requested);
336
- // Pending-only legacy store: keep commands working when discovery has
337
- // not named the session yet, but do NOT attach the requested slug —
338
- // that would let a refresh persist an unverified org name.
339
- if (snapshot.pending && Object.keys(snapshot.orgs).length === 0) {
340
- return recordToCredentials(snapshot.mcpUrl, snapshot.pending);
341
- }
342
- return null;
343
- }
344
- if (snapshot.activeOrg && snapshot.orgs[snapshot.activeOrg]) {
345
- return recordToCredentials(snapshot.mcpUrl, snapshot.orgs[snapshot.activeOrg], snapshot.activeOrg);
346
- }
347
- if (snapshot.pending) {
348
- return recordToCredentials(snapshot.mcpUrl, snapshot.pending);
349
- }
350
- const only = Object.keys(snapshot.orgs);
351
- if (only.length === 1) {
352
- const slug = only[0];
353
- return recordToCredentials(snapshot.mcpUrl, snapshot.orgs[slug], slug);
354
- }
355
- return null;
356
- }
357
- /**
358
- * Upsert one org's credentials. Replaces that org's prior tokens when the slug
359
- * already exists; leaves other orgs untouched.
360
- *
361
- * `activate` (default true) makes the saved org active — used by `kody login`.
362
- * Pass `activate: false` for token refresh so a one-shot `--org` / `KODY_ORG`
363
- * refresh does not steal the active org from `kody org use`.
364
- */
365
- export function saveCredentials(credentials, backend, resolution, options) {
366
- const mcpUrl = credentials.mcpUrl;
367
- const existing = loadCredentialStore(mcpUrl, backend, resolution) ?? emptyStore(mcpUrl);
368
- const slug = typeof credentials.org === 'string' && credentials.org.trim()
369
- ? credentials.org.trim().toLowerCase()
370
- : null;
371
- const record = credentialsToRecord({
372
- ...credentials,
373
- ...(slug ? { org: slug } : {}),
374
- authorizationServerUrl: withDerivedIssuer(credentials).authorizationServerUrl,
375
- });
376
- const activate = options?.activate !== false;
377
- let next;
378
- if (slug) {
379
- const currentActive = typeof existing.activeOrg === 'string' &&
380
- existing.activeOrg.length > 0 &&
381
- existing.orgs[existing.activeOrg]
382
- ? existing.activeOrg
383
- : null;
384
- next = {
385
- version: 2,
386
- mcpUrl,
387
- activeOrg: activate || !currentActive ? slug : currentActive,
388
- orgs: {
389
- ...existing.orgs,
390
- [slug]: { ...record, org: slug },
391
- },
392
- // Keep an unresolved legacy session unless this save is promoting it
393
- // (pending tokens matched / were the only login being named).
394
- ...(existing.pending &&
395
- existing.pending.accessToken !== record.accessToken
396
- ? { pending: existing.pending }
397
- : {}),
398
- };
399
- }
400
- else {
401
- next = {
402
- version: 2,
403
- mcpUrl,
404
- activeOrg: existing.activeOrg,
405
- orgs: existing.orgs,
406
- pending: record,
407
- };
408
- }
409
- return saveCredentialStore(next, backend, resolution);
410
- }
411
- /**
412
- * Promote pending legacy tokens into `orgs[slug]`.
413
- * Never overwrites an existing named login (a fresh `kody login` wins), and
414
- * never steals `activeOrg` away from an already-active named org.
415
- */
416
- export function promotePendingOrg(mcpUrl, org, backend, resolution) {
417
- const snapshot = loadCredentialStore(mcpUrl, backend, resolution);
418
- if (!snapshot?.pending)
419
- return snapshot;
420
- const slug = org.trim().toLowerCase();
421
- if (!slug) {
422
- throw new Error('Organization slug is required to finish credential migration.');
423
- }
424
- const existingNamed = snapshot.orgs[slug];
425
- const orgs = existingNamed
426
- ? snapshot.orgs
427
- : {
428
- ...snapshot.orgs,
429
- [slug]: { ...snapshot.pending, org: slug },
430
- };
431
- const activeIsNamed = typeof snapshot.activeOrg === 'string' &&
432
- snapshot.activeOrg.length > 0 &&
433
- snapshot.orgs[snapshot.activeOrg] != null;
434
- const next = {
435
- version: 2,
436
- mcpUrl: snapshot.mcpUrl,
437
- activeOrg: activeIsNamed ? snapshot.activeOrg : slug,
438
- orgs,
439
- };
440
- saveCredentialStore(next, backend, resolution);
441
- return next;
442
- }
443
- export function setActiveOrg(mcpUrl, org, backend, resolution) {
444
- const snapshot = loadCredentialStore(mcpUrl, backend, resolution);
445
- if (!snapshot) {
446
- throw new Error('Not logged in. Run `kody login`.');
447
- }
448
- const slug = org.trim().toLowerCase();
449
- if (!snapshot.orgs[slug]) {
450
- const known = listOrgSlugs(snapshot);
451
- throw new Error(known.length > 0
452
- ? `No login stored for org "${slug}". Logged-in orgs: ${known.join(', ')}. Run \`kody login --org ${slug}\`.`
453
- : `No login stored for org "${slug}". Run \`kody login --org ${slug}\`.`);
454
- }
455
- const next = {
456
- ...snapshot,
457
- activeOrg: slug,
458
- };
459
- saveCredentialStore(next, backend, resolution);
460
- return next;
461
- }
462
- export function listOrgSlugs(snapshot) {
463
- return Object.keys(snapshot.orgs).sort((a, b) => a.localeCompare(b));
464
- }
465
- /** Local-only listing for help / `org list` (no network). */
466
- export function listStoredOrgs(mcpUrl = defaultMcpUrl, backend, resolution) {
467
- const snapshot = loadCredentialStore(mcpUrl, backend, resolution);
468
- if (!snapshot)
469
- return [];
470
- const rows = listOrgSlugs(snapshot).map((slug) => ({
471
- slug,
472
- active: snapshot.activeOrg === slug,
473
- }));
474
- if (snapshot.pending && rows.length === 0) {
475
- rows.push({ slug: '(pending)', active: true, pending: true });
476
- }
477
- return rows;
478
- }
479
- export function deleteCredentials(mcpUrl = defaultMcpUrl, backend, resolution, options) {
480
- const store = resolveBackend(mcpUrl, backend, resolution);
481
- const snapshot = (() => {
482
- try {
483
- return readStore(store, mcpUrl);
484
- }
485
- catch {
486
- return null;
487
- }
488
- })();
489
- if (!options?.org) {
490
- // Plain logout: remove the active org only (or pending / entire store
491
- // when that is all that remains). Documented in help.
492
- if (!snapshot) {
493
- if (store.kind === 'keyring' && !backend) {
494
- const file = fileBackendFor(mcpUrl, resolution);
495
- const fileSnap = readStore(file, mcpUrl);
496
- if (!fileSnap)
497
- return { deleted: false, backend: store, remaining: 0 };
498
- return deleteCredentials(mcpUrl, file, resolution, options);
499
- }
500
- return { deleted: false, backend: store, remaining: 0 };
501
- }
502
- const target = snapshot.activeOrg ??
503
- (snapshot.pending ? null : listOrgSlugs(snapshot)[0] ?? null);
504
- if (target) {
505
- return deleteOrgFromStore(snapshot, target, store, backend, resolution);
506
- }
507
- if (snapshot.pending) {
508
- const next = {
509
- version: 2,
510
- mcpUrl: snapshot.mcpUrl,
511
- activeOrg: snapshot.activeOrg,
512
- orgs: snapshot.orgs,
513
- };
514
- if (Object.keys(next.orgs).length === 0) {
515
- return wipeStore(mcpUrl, store, backend, resolution);
516
- }
517
- writeStore(store, next);
518
- return {
519
- deleted: true,
520
- backend: store,
521
- remaining: Object.keys(next.orgs).length,
522
- };
523
- }
524
- return wipeStore(mcpUrl, store, backend, resolution);
525
- }
526
- const slug = options.org.trim().toLowerCase();
527
- if (!snapshot) {
528
- if (store.kind === 'keyring' && !backend) {
529
- const file = fileBackendFor(mcpUrl, resolution);
530
- const fileSnap = readStore(file, mcpUrl);
531
- if (!fileSnap)
532
- return { deleted: false, backend: store, remaining: 0 };
533
- return deleteCredentials(mcpUrl, file, resolution, options);
534
- }
535
- return { deleted: false, backend: store, remaining: 0 };
536
- }
537
- return deleteOrgFromStore(snapshot, slug, store, backend, resolution);
538
- }
539
- function deleteOrgFromStore(snapshot, slug, store, backend, resolution) {
540
- if (!snapshot.orgs[slug]) {
541
- return {
542
- deleted: false,
543
- backend: store,
544
- remaining: Object.keys(snapshot.orgs).length + (snapshot.pending ? 1 : 0),
545
- };
546
- }
547
- const { [slug]: _removed, ...rest } = snapshot.orgs;
548
- const remainingSlugs = Object.keys(rest);
549
- if (remainingSlugs.length === 0 && !snapshot.pending) {
550
- return wipeStore(snapshot.mcpUrl, store, backend, resolution);
551
- }
552
- const nextActive = snapshot.activeOrg === slug
553
- ? remainingSlugs.sort((a, b) => a.localeCompare(b))[0] ?? null
554
- : snapshot.activeOrg;
555
- const next = {
556
- version: 2,
557
- mcpUrl: snapshot.mcpUrl,
558
- activeOrg: nextActive,
559
- orgs: rest,
560
- ...(snapshot.pending ? { pending: snapshot.pending } : {}),
561
- };
562
- try {
563
- writeStore(store, next);
564
- return { deleted: true, backend: store, remaining: remainingSlugs.length };
565
- }
566
- catch (error) {
567
- if (store.kind === 'keyring' && !backend) {
568
- const fallback = fileBackendFor(snapshot.mcpUrl, resolution);
569
- writeStore(fallback, next);
570
- // Drop the stale keyring secret so the next load prefers the file
571
- // (loadCredentials prefers keyring over file when both exist).
572
- try {
573
- store.delete();
574
- }
575
- catch {
576
- // best-effort; file has the reduced store either way
577
- }
578
- return { deleted: true, backend: fallback, remaining: remainingSlugs.length };
579
- }
580
- throw error;
581
- }
582
- }
583
- function wipeStore(mcpUrl, store, backend, resolution) {
584
- let deleted = false;
585
- try {
586
- deleted = store.delete();
587
- }
588
- catch {
589
- deleted = false;
590
- }
591
- if (store.kind === 'keyring' && !backend) {
592
- const file = fileBackendFor(mcpUrl, resolution);
593
- deleted = file.delete() || deleted;
594
- }
595
- return { deleted, backend: store, remaining: 0 };
596
- }
597
- //# sourceMappingURL=store.js.map