@skaile/workspaces 0.8.5

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 (1058) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/LICENSE +201 -0
  3. package/README.md +82 -0
  4. package/dist/asset-manager/catalog-deployer.js +4 -0
  5. package/dist/asset-manager/catalog-deployer.js.map +1 -0
  6. package/dist/asset-manager/contrib.js +4 -0
  7. package/dist/asset-manager/contrib.js.map +1 -0
  8. package/dist/asset-manager/fragments.js +4 -0
  9. package/dist/asset-manager/fragments.js.map +1 -0
  10. package/dist/asset-manager/history.js +4 -0
  11. package/dist/asset-manager/history.js.map +1 -0
  12. package/dist/asset-manager/index.js +22 -0
  13. package/dist/asset-manager/index.js.map +1 -0
  14. package/dist/asset-manager/installer.js +18 -0
  15. package/dist/asset-manager/installer.js.map +1 -0
  16. package/dist/asset-manager/renderers.js +5 -0
  17. package/dist/asset-manager/renderers.js.map +1 -0
  18. package/dist/asset-manager/scaffold.js +18 -0
  19. package/dist/asset-manager/scaffold.js.map +1 -0
  20. package/dist/asset-manager/src/catalog-deployer.d.ts +144 -0
  21. package/dist/asset-manager/src/catalog-deployer.d.ts.map +1 -0
  22. package/dist/asset-manager/src/contrib.d.ts +133 -0
  23. package/dist/asset-manager/src/contrib.d.ts.map +1 -0
  24. package/dist/asset-manager/src/fragments.d.ts +111 -0
  25. package/dist/asset-manager/src/fragments.d.ts.map +1 -0
  26. package/dist/asset-manager/src/history.d.ts +52 -0
  27. package/dist/asset-manager/src/history.d.ts.map +1 -0
  28. package/dist/asset-manager/src/index.d.ts +459 -0
  29. package/dist/asset-manager/src/index.d.ts.map +1 -0
  30. package/dist/asset-manager/src/installer.d.ts +85 -0
  31. package/dist/asset-manager/src/installer.d.ts.map +1 -0
  32. package/dist/asset-manager/src/renderers.d.ts +125 -0
  33. package/dist/asset-manager/src/renderers.d.ts.map +1 -0
  34. package/dist/asset-manager/src/scaffold/index.d.ts +19 -0
  35. package/dist/asset-manager/src/scaffold/index.d.ts.map +1 -0
  36. package/dist/asset-manager/src/scaffold/layers/agents.d.ts +67 -0
  37. package/dist/asset-manager/src/scaffold/layers/agents.d.ts.map +1 -0
  38. package/dist/asset-manager/src/scaffold/layers/base.d.ts +17 -0
  39. package/dist/asset-manager/src/scaffold/layers/base.d.ts.map +1 -0
  40. package/dist/asset-manager/src/scaffold/layers/connectors.d.ts +18 -0
  41. package/dist/asset-manager/src/scaffold/layers/connectors.d.ts.map +1 -0
  42. package/dist/asset-manager/src/scaffold/layers/container.d.ts +16 -0
  43. package/dist/asset-manager/src/scaffold/layers/container.d.ts.map +1 -0
  44. package/dist/asset-manager/src/scaffold/layers/driver-target.d.ts +17 -0
  45. package/dist/asset-manager/src/scaffold/layers/driver-target.d.ts.map +1 -0
  46. package/dist/asset-manager/src/scaffold/layers/hooks.d.ts +22 -0
  47. package/dist/asset-manager/src/scaffold/layers/hooks.d.ts.map +1 -0
  48. package/dist/asset-manager/src/scaffold/layers/skills.d.ts +31 -0
  49. package/dist/asset-manager/src/scaffold/layers/skills.d.ts.map +1 -0
  50. package/dist/asset-manager/src/scaffold/layers/template.d.ts +16 -0
  51. package/dist/asset-manager/src/scaffold/layers/template.d.ts.map +1 -0
  52. package/dist/asset-manager/src/scaffold/scaffolder.d.ts +77 -0
  53. package/dist/asset-manager/src/scaffold/scaffolder.d.ts.map +1 -0
  54. package/dist/asset-manager/src/scaffold/types.d.ts +241 -0
  55. package/dist/asset-manager/src/scaffold/types.d.ts.map +1 -0
  56. package/dist/base-assets/connectors/deploy/adapter.d.ts +37 -0
  57. package/dist/base-assets/connectors/deploy/adapter.d.ts.map +1 -0
  58. package/dist/base-assets/connectors/deploy.js +20 -0
  59. package/dist/base-assets/connectors/deploy.js.map +1 -0
  60. package/dist/base-assets/connectors/devserver/adapter.d.ts +43 -0
  61. package/dist/base-assets/connectors/devserver/adapter.d.ts.map +1 -0
  62. package/dist/base-assets/connectors/devserver.js +20 -0
  63. package/dist/base-assets/connectors/devserver.js.map +1 -0
  64. package/dist/base-assets/connectors/flow/adapter.d.ts +200 -0
  65. package/dist/base-assets/connectors/flow/adapter.d.ts.map +1 -0
  66. package/dist/base-assets/connectors/flow/adapter.js +20 -0
  67. package/dist/base-assets/connectors/flow/adapter.js.map +1 -0
  68. package/dist/base-assets/connectors/flow/engine/engine.d.ts +107 -0
  69. package/dist/base-assets/connectors/flow/engine/engine.d.ts.map +1 -0
  70. package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts +16 -0
  71. package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -0
  72. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts +215 -0
  73. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -0
  74. package/dist/base-assets/connectors/flow/engine/index.d.ts +7 -0
  75. package/dist/base-assets/connectors/flow/engine/index.d.ts.map +1 -0
  76. package/dist/base-assets/connectors/flow/engine/loader.d.ts +43 -0
  77. package/dist/base-assets/connectors/flow/engine/loader.d.ts.map +1 -0
  78. package/dist/base-assets/connectors/flow/engine/types.d.ts +298 -0
  79. package/dist/base-assets/connectors/flow/engine/types.d.ts.map +1 -0
  80. package/dist/base-assets/connectors/flow/engine.js +4 -0
  81. package/dist/base-assets/connectors/flow/engine.js.map +1 -0
  82. package/dist/base-assets/connectors/flow/index.d.ts +3 -0
  83. package/dist/base-assets/connectors/flow/index.d.ts.map +1 -0
  84. package/dist/base-assets/connectors/flow/prompt-fragments.d.ts +90 -0
  85. package/dist/base-assets/connectors/flow/prompt-fragments.d.ts.map +1 -0
  86. package/dist/base-assets/connectors/flow/prompt-fragments.js +4 -0
  87. package/dist/base-assets/connectors/flow/prompt-fragments.js.map +1 -0
  88. package/dist/base-assets/connectors/flow/run-flow.d.ts +159 -0
  89. package/dist/base-assets/connectors/flow/run-flow.d.ts.map +1 -0
  90. package/dist/base-assets/connectors/flow/run-flow.js +23 -0
  91. package/dist/base-assets/connectors/flow/run-flow.js.map +1 -0
  92. package/dist/base-assets/connectors/flow/stimulus-driver.d.ts +42 -0
  93. package/dist/base-assets/connectors/flow/stimulus-driver.d.ts.map +1 -0
  94. package/dist/base-assets/connectors/flow/stimulus-driver.js +4 -0
  95. package/dist/base-assets/connectors/flow/stimulus-driver.js.map +1 -0
  96. package/dist/base-assets/connectors/flow.js +20 -0
  97. package/dist/base-assets/connectors/flow.js.map +1 -0
  98. package/dist/base-assets/connectors/gmail/adapter.d.ts +31 -0
  99. package/dist/base-assets/connectors/gmail/adapter.d.ts.map +1 -0
  100. package/dist/base-assets/connectors/gmail.js +20 -0
  101. package/dist/base-assets/connectors/gmail.js.map +1 -0
  102. package/dist/base-assets/connectors/mattermost/adapter.d.ts +38 -0
  103. package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +1 -0
  104. package/dist/base-assets/connectors/mattermost.js +20 -0
  105. package/dist/base-assets/connectors/mattermost.js.map +1 -0
  106. package/dist/base-assets/connectors/memory/adapter.d.ts +32 -0
  107. package/dist/base-assets/connectors/memory/adapter.d.ts.map +1 -0
  108. package/dist/base-assets/connectors/memory.js +20 -0
  109. package/dist/base-assets/connectors/memory.js.map +1 -0
  110. package/dist/base-assets/connectors/minio/adapter.d.ts +32 -0
  111. package/dist/base-assets/connectors/minio/adapter.d.ts.map +1 -0
  112. package/dist/base-assets/connectors/minio.js +20 -0
  113. package/dist/base-assets/connectors/minio.js.map +1 -0
  114. package/dist/base-assets/connectors/postgres/adapter.d.ts +40 -0
  115. package/dist/base-assets/connectors/postgres/adapter.d.ts.map +1 -0
  116. package/dist/base-assets/connectors/postgres.js +20 -0
  117. package/dist/base-assets/connectors/postgres.js.map +1 -0
  118. package/dist/base-assets/connectors/redis/adapter.d.ts +39 -0
  119. package/dist/base-assets/connectors/redis/adapter.d.ts.map +1 -0
  120. package/dist/base-assets/connectors/redis.js +20 -0
  121. package/dist/base-assets/connectors/redis.js.map +1 -0
  122. package/dist/base-assets/connectors/sqlite/adapter.d.ts +42 -0
  123. package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +1 -0
  124. package/dist/base-assets/connectors/sqlite.js +20 -0
  125. package/dist/base-assets/connectors/sqlite.js.map +1 -0
  126. package/dist/base-assets/connectors/static-server/adapter.d.ts +28 -0
  127. package/dist/base-assets/connectors/static-server/adapter.d.ts.map +1 -0
  128. package/dist/base-assets/connectors/static-server.js +20 -0
  129. package/dist/base-assets/connectors/static-server.js.map +1 -0
  130. package/dist/base-assets/connectors/tunnel/adapter.d.ts +28 -0
  131. package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +1 -0
  132. package/dist/base-assets/connectors/tunnel.js +20 -0
  133. package/dist/base-assets/connectors/tunnel.js.map +1 -0
  134. package/dist/base-assets/connectors/xstate/adapter.d.ts +51 -0
  135. package/dist/base-assets/connectors/xstate/adapter.d.ts.map +1 -0
  136. package/dist/base-assets/connectors/xstate-store/adapter.d.ts +40 -0
  137. package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +1 -0
  138. package/dist/base-assets/connectors/xstate-store.js +20 -0
  139. package/dist/base-assets/connectors/xstate-store.js.map +1 -0
  140. package/dist/base-assets/connectors/xstate.js +20 -0
  141. package/dist/base-assets/connectors/xstate.js.map +1 -0
  142. package/dist/base-assets/connectors/yjs/adapter.d.ts +49 -0
  143. package/dist/base-assets/connectors/yjs/adapter.d.ts.map +1 -0
  144. package/dist/base-assets/connectors/yjs.js +20 -0
  145. package/dist/base-assets/connectors/yjs.js.map +1 -0
  146. package/dist/base-assets/index.d.ts +8 -0
  147. package/dist/base-assets/index.d.ts.map +1 -0
  148. package/dist/base-assets/index.js +9 -0
  149. package/dist/base-assets/index.js.map +1 -0
  150. package/dist/base-assets/mounts/git/driver.d.ts +183 -0
  151. package/dist/base-assets/mounts/git/driver.d.ts.map +1 -0
  152. package/dist/base-assets/mounts/git.js +20 -0
  153. package/dist/base-assets/mounts/git.js.map +1 -0
  154. package/dist/base-assets/mounts/local/driver.d.ts +27 -0
  155. package/dist/base-assets/mounts/local/driver.d.ts.map +1 -0
  156. package/dist/base-assets/mounts/local.js +20 -0
  157. package/dist/base-assets/mounts/local.js.map +1 -0
  158. package/dist/base-assets/mounts/s3/driver.d.ts +27 -0
  159. package/dist/base-assets/mounts/s3/driver.d.ts.map +1 -0
  160. package/dist/base-assets/mounts/s3.js +20 -0
  161. package/dist/base-assets/mounts/s3.js.map +1 -0
  162. package/dist/base-assets/mounts/sharepoint/driver.d.ts +31 -0
  163. package/dist/base-assets/mounts/sharepoint/driver.d.ts.map +1 -0
  164. package/dist/base-assets/mounts/sharepoint.js +20 -0
  165. package/dist/base-assets/mounts/sharepoint.js.map +1 -0
  166. package/dist/base-assets/mounts/webdav/driver.d.ts +32 -0
  167. package/dist/base-assets/mounts/webdav/driver.d.ts.map +1 -0
  168. package/dist/base-assets/mounts/webdav.js +20 -0
  169. package/dist/base-assets/mounts/webdav.js.map +1 -0
  170. package/dist/bridge/drivers/claude-sdk.js +836 -0
  171. package/dist/bridge/drivers/claude-sdk.js.map +1 -0
  172. package/dist/bridge/drivers/codex.js +478 -0
  173. package/dist/bridge/drivers/codex.js.map +1 -0
  174. package/dist/bridge/drivers/echo.js +219 -0
  175. package/dist/bridge/drivers/echo.js.map +1 -0
  176. package/dist/bridge/drivers/omp.js +431 -0
  177. package/dist/bridge/drivers/omp.js.map +1 -0
  178. package/dist/bridge/index.js +9 -0
  179. package/dist/bridge/index.js.map +1 -0
  180. package/dist/bridge/src/capability-dispatch.d.ts +94 -0
  181. package/dist/bridge/src/capability-dispatch.d.ts.map +1 -0
  182. package/dist/bridge/src/drivers/claude-sdk.d.ts +224 -0
  183. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -0
  184. package/dist/bridge/src/drivers/codex.d.ts +66 -0
  185. package/dist/bridge/src/drivers/codex.d.ts.map +1 -0
  186. package/dist/bridge/src/drivers/echo.d.ts +59 -0
  187. package/dist/bridge/src/drivers/echo.d.ts.map +1 -0
  188. package/dist/bridge/src/drivers/omp.d.ts +101 -0
  189. package/dist/bridge/src/drivers/omp.d.ts.map +1 -0
  190. package/dist/bridge/src/error-classifier.d.ts +90 -0
  191. package/dist/bridge/src/error-classifier.d.ts.map +1 -0
  192. package/dist/bridge/src/index.d.ts +10 -0
  193. package/dist/bridge/src/index.d.ts.map +1 -0
  194. package/dist/bridge/src/logger.d.ts +22 -0
  195. package/dist/bridge/src/logger.d.ts.map +1 -0
  196. package/dist/bridge/src/models.d.ts +90 -0
  197. package/dist/bridge/src/models.d.ts.map +1 -0
  198. package/dist/bridge/src/normalizer.d.ts +91 -0
  199. package/dist/bridge/src/normalizer.d.ts.map +1 -0
  200. package/dist/bridge/src/registry.d.ts +90 -0
  201. package/dist/bridge/src/registry.d.ts.map +1 -0
  202. package/dist/bridge/src/runtime.d.ts +42 -0
  203. package/dist/bridge/src/runtime.d.ts.map +1 -0
  204. package/dist/bridge/src/types.d.ts +564 -0
  205. package/dist/bridge/src/types.d.ts.map +1 -0
  206. package/dist/bridge/src/validation.d.ts +27 -0
  207. package/dist/bridge/src/validation.d.ts.map +1 -0
  208. package/dist/chunk-2M3XTMOL.js +23 -0
  209. package/dist/chunk-2M3XTMOL.js.map +1 -0
  210. package/dist/chunk-3W7Z74ZP.js +7678 -0
  211. package/dist/chunk-3W7Z74ZP.js.map +1 -0
  212. package/dist/chunk-44ZICIN4.js +418 -0
  213. package/dist/chunk-44ZICIN4.js.map +1 -0
  214. package/dist/chunk-46T37EBP.js +1517 -0
  215. package/dist/chunk-46T37EBP.js.map +1 -0
  216. package/dist/chunk-4NDWKA64.js +71 -0
  217. package/dist/chunk-4NDWKA64.js.map +1 -0
  218. package/dist/chunk-5CSE3QL2.js +546 -0
  219. package/dist/chunk-5CSE3QL2.js.map +1 -0
  220. package/dist/chunk-65CYXYUW.js +537 -0
  221. package/dist/chunk-65CYXYUW.js.map +1 -0
  222. package/dist/chunk-6UQ66R46.js +72 -0
  223. package/dist/chunk-6UQ66R46.js.map +1 -0
  224. package/dist/chunk-77CUYYO3.js +101 -0
  225. package/dist/chunk-77CUYYO3.js.map +1 -0
  226. package/dist/chunk-7H7EOIRH.js +393 -0
  227. package/dist/chunk-7H7EOIRH.js.map +1 -0
  228. package/dist/chunk-7HCGI2GW.js +385 -0
  229. package/dist/chunk-7HCGI2GW.js.map +1 -0
  230. package/dist/chunk-7HLNUSNE.js +212 -0
  231. package/dist/chunk-7HLNUSNE.js.map +1 -0
  232. package/dist/chunk-7PTP3SQJ.js +151 -0
  233. package/dist/chunk-7PTP3SQJ.js.map +1 -0
  234. package/dist/chunk-AIGWF3TJ.js +73 -0
  235. package/dist/chunk-AIGWF3TJ.js.map +1 -0
  236. package/dist/chunk-BVHFSUFM.js +343 -0
  237. package/dist/chunk-BVHFSUFM.js.map +1 -0
  238. package/dist/chunk-CCKGX5AS.js +481 -0
  239. package/dist/chunk-CCKGX5AS.js.map +1 -0
  240. package/dist/chunk-CGYEHQOX.js +117 -0
  241. package/dist/chunk-CGYEHQOX.js.map +1 -0
  242. package/dist/chunk-CSUBFKAN.js +747 -0
  243. package/dist/chunk-CSUBFKAN.js.map +1 -0
  244. package/dist/chunk-D5IH3QMH.js +112 -0
  245. package/dist/chunk-D5IH3QMH.js.map +1 -0
  246. package/dist/chunk-DOMCYP7D.js +3229 -0
  247. package/dist/chunk-DOMCYP7D.js.map +1 -0
  248. package/dist/chunk-EE3XTJ62.js +840 -0
  249. package/dist/chunk-EE3XTJ62.js.map +1 -0
  250. package/dist/chunk-EWP5HZBV.js +226 -0
  251. package/dist/chunk-EWP5HZBV.js.map +1 -0
  252. package/dist/chunk-FQHHCICT.js +591 -0
  253. package/dist/chunk-FQHHCICT.js.map +1 -0
  254. package/dist/chunk-FVTV7M76.js +30 -0
  255. package/dist/chunk-FVTV7M76.js.map +1 -0
  256. package/dist/chunk-GCRKAFH7.js +40 -0
  257. package/dist/chunk-GCRKAFH7.js.map +1 -0
  258. package/dist/chunk-GVOLEJG5.js +93 -0
  259. package/dist/chunk-GVOLEJG5.js.map +1 -0
  260. package/dist/chunk-GZWJGNNN.js +122 -0
  261. package/dist/chunk-GZWJGNNN.js.map +1 -0
  262. package/dist/chunk-HK5FRWG6.js +44 -0
  263. package/dist/chunk-HK5FRWG6.js.map +1 -0
  264. package/dist/chunk-IPUYL6TD.js +279 -0
  265. package/dist/chunk-IPUYL6TD.js.map +1 -0
  266. package/dist/chunk-JDX54X4Y.js +535 -0
  267. package/dist/chunk-JDX54X4Y.js.map +1 -0
  268. package/dist/chunk-JKNWJ64A.js +31 -0
  269. package/dist/chunk-JKNWJ64A.js.map +1 -0
  270. package/dist/chunk-JLPC4YWT.js +124 -0
  271. package/dist/chunk-JLPC4YWT.js.map +1 -0
  272. package/dist/chunk-K5GBV4SA.js +31 -0
  273. package/dist/chunk-K5GBV4SA.js.map +1 -0
  274. package/dist/chunk-KLNL7QHN.js +56 -0
  275. package/dist/chunk-KLNL7QHN.js.map +1 -0
  276. package/dist/chunk-KOVLSBXK.js +227 -0
  277. package/dist/chunk-KOVLSBXK.js.map +1 -0
  278. package/dist/chunk-KTBKW2FI.js +46 -0
  279. package/dist/chunk-KTBKW2FI.js.map +1 -0
  280. package/dist/chunk-LSGAYQ2E.js +166 -0
  281. package/dist/chunk-LSGAYQ2E.js.map +1 -0
  282. package/dist/chunk-LV2HPH3C.js +73 -0
  283. package/dist/chunk-LV2HPH3C.js.map +1 -0
  284. package/dist/chunk-MBBTBKAS.js +201 -0
  285. package/dist/chunk-MBBTBKAS.js.map +1 -0
  286. package/dist/chunk-MJHLQRJJ.js +325 -0
  287. package/dist/chunk-MJHLQRJJ.js.map +1 -0
  288. package/dist/chunk-NSBPE2FW.js +15 -0
  289. package/dist/chunk-NSBPE2FW.js.map +1 -0
  290. package/dist/chunk-NYJKXVG6.js +4166 -0
  291. package/dist/chunk-NYJKXVG6.js.map +1 -0
  292. package/dist/chunk-O4JH3KUE.js +56 -0
  293. package/dist/chunk-O4JH3KUE.js.map +1 -0
  294. package/dist/chunk-O5AE4QDX.js +67 -0
  295. package/dist/chunk-O5AE4QDX.js.map +1 -0
  296. package/dist/chunk-O7SG5PC2.js +3 -0
  297. package/dist/chunk-O7SG5PC2.js.map +1 -0
  298. package/dist/chunk-OKRUTSG7.js +87 -0
  299. package/dist/chunk-OKRUTSG7.js.map +1 -0
  300. package/dist/chunk-Q5URN24L.js +310 -0
  301. package/dist/chunk-Q5URN24L.js.map +1 -0
  302. package/dist/chunk-QT2KQHDT.js +49 -0
  303. package/dist/chunk-QT2KQHDT.js.map +1 -0
  304. package/dist/chunk-RRVQAE5D.js +51 -0
  305. package/dist/chunk-RRVQAE5D.js.map +1 -0
  306. package/dist/chunk-SZ3SIVZQ.js +78 -0
  307. package/dist/chunk-SZ3SIVZQ.js.map +1 -0
  308. package/dist/chunk-TS6VCR4W.js +195 -0
  309. package/dist/chunk-TS6VCR4W.js.map +1 -0
  310. package/dist/chunk-UMMBL7SW.js +210 -0
  311. package/dist/chunk-UMMBL7SW.js.map +1 -0
  312. package/dist/chunk-UQ6LFBPZ.js +122 -0
  313. package/dist/chunk-UQ6LFBPZ.js.map +1 -0
  314. package/dist/chunk-V37HONL7.js +526 -0
  315. package/dist/chunk-V37HONL7.js.map +1 -0
  316. package/dist/chunk-W2O5LWYU.js +3 -0
  317. package/dist/chunk-W2O5LWYU.js.map +1 -0
  318. package/dist/chunk-X5YPJV4N.js +14 -0
  319. package/dist/chunk-X5YPJV4N.js.map +1 -0
  320. package/dist/chunk-XCBG2KDC.js +23 -0
  321. package/dist/chunk-XCBG2KDC.js.map +1 -0
  322. package/dist/chunk-XEGHWFAX.js +174 -0
  323. package/dist/chunk-XEGHWFAX.js.map +1 -0
  324. package/dist/chunk-XOSBNBB6.js +155 -0
  325. package/dist/chunk-XOSBNBB6.js.map +1 -0
  326. package/dist/chunk-Y46TBPLI.js +97 -0
  327. package/dist/chunk-Y46TBPLI.js.map +1 -0
  328. package/dist/chunk-Z3RER6YZ.js +343 -0
  329. package/dist/chunk-Z3RER6YZ.js.map +1 -0
  330. package/dist/chunk-ZUQIXLRJ.js +284 -0
  331. package/dist/chunk-ZUQIXLRJ.js.map +1 -0
  332. package/dist/cli/index.js +5685 -0
  333. package/dist/cli/index.js.map +1 -0
  334. package/dist/cli/src/commands/asset-cmd.d.ts +15 -0
  335. package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -0
  336. package/dist/cli/src/commands/auth.d.ts +16 -0
  337. package/dist/cli/src/commands/auth.d.ts.map +1 -0
  338. package/dist/cli/src/commands/catalog-cmd.d.ts +23 -0
  339. package/dist/cli/src/commands/catalog-cmd.d.ts.map +1 -0
  340. package/dist/cli/src/commands/catalog.d.ts +92 -0
  341. package/dist/cli/src/commands/catalog.d.ts.map +1 -0
  342. package/dist/cli/src/commands/complete-resolvers.d.ts +35 -0
  343. package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -0
  344. package/dist/cli/src/commands/complete.d.ts +14 -0
  345. package/dist/cli/src/commands/complete.d.ts.map +1 -0
  346. package/dist/cli/src/commands/config.d.ts +17 -0
  347. package/dist/cli/src/commands/config.d.ts.map +1 -0
  348. package/dist/cli/src/commands/connect.d.ts +13 -0
  349. package/dist/cli/src/commands/connect.d.ts.map +1 -0
  350. package/dist/cli/src/commands/connector.d.ts +30 -0
  351. package/dist/cli/src/commands/connector.d.ts.map +1 -0
  352. package/dist/cli/src/commands/debug.d.ts +13 -0
  353. package/dist/cli/src/commands/debug.d.ts.map +1 -0
  354. package/dist/cli/src/commands/diff.d.ts +12 -0
  355. package/dist/cli/src/commands/diff.d.ts.map +1 -0
  356. package/dist/cli/src/commands/flow.d.ts +14 -0
  357. package/dist/cli/src/commands/flow.d.ts.map +1 -0
  358. package/dist/cli/src/commands/history.d.ts +12 -0
  359. package/dist/cli/src/commands/history.d.ts.map +1 -0
  360. package/dist/cli/src/commands/library-cmd.d.ts +12 -0
  361. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -0
  362. package/dist/cli/src/commands/library-status.d.ts +19 -0
  363. package/dist/cli/src/commands/library-status.d.ts.map +1 -0
  364. package/dist/cli/src/commands/logs.d.ts +13 -0
  365. package/dist/cli/src/commands/logs.d.ts.map +1 -0
  366. package/dist/cli/src/commands/manage.d.ts +62 -0
  367. package/dist/cli/src/commands/manage.d.ts.map +1 -0
  368. package/dist/cli/src/commands/mcp-server.d.ts +15 -0
  369. package/dist/cli/src/commands/mcp-server.d.ts.map +1 -0
  370. package/dist/cli/src/commands/mount.d.ts +22 -0
  371. package/dist/cli/src/commands/mount.d.ts.map +1 -0
  372. package/dist/cli/src/commands/npx.d.ts +14 -0
  373. package/dist/cli/src/commands/npx.d.ts.map +1 -0
  374. package/dist/cli/src/commands/outdated.d.ts +12 -0
  375. package/dist/cli/src/commands/outdated.d.ts.map +1 -0
  376. package/dist/cli/src/commands/patch.d.ts +14 -0
  377. package/dist/cli/src/commands/patch.d.ts.map +1 -0
  378. package/dist/cli/src/commands/plugin/claude-code.d.ts +17 -0
  379. package/dist/cli/src/commands/plugin/claude-code.d.ts.map +1 -0
  380. package/dist/cli/src/commands/plugin/codex.d.ts +5 -0
  381. package/dist/cli/src/commands/plugin/codex.d.ts.map +1 -0
  382. package/dist/cli/src/commands/plugin/omp.d.ts +12 -0
  383. package/dist/cli/src/commands/plugin/omp.d.ts.map +1 -0
  384. package/dist/cli/src/commands/plugin/types.d.ts +65 -0
  385. package/dist/cli/src/commands/plugin/types.d.ts.map +1 -0
  386. package/dist/cli/src/commands/plugin.d.ts +14 -0
  387. package/dist/cli/src/commands/plugin.d.ts.map +1 -0
  388. package/dist/cli/src/commands/preset-cmd.d.ts +19 -0
  389. package/dist/cli/src/commands/preset-cmd.d.ts.map +1 -0
  390. package/dist/cli/src/commands/project.d.ts +34 -0
  391. package/dist/cli/src/commands/project.d.ts.map +1 -0
  392. package/dist/cli/src/commands/rebuild.d.ts +21 -0
  393. package/dist/cli/src/commands/rebuild.d.ts.map +1 -0
  394. package/dist/cli/src/commands/run.d.ts +68 -0
  395. package/dist/cli/src/commands/run.d.ts.map +1 -0
  396. package/dist/cli/src/commands/serve.d.ts +13 -0
  397. package/dist/cli/src/commands/serve.d.ts.map +1 -0
  398. package/dist/cli/src/commands/session-logs/format.d.ts +21 -0
  399. package/dist/cli/src/commands/session-logs/format.d.ts.map +1 -0
  400. package/dist/cli/src/commands/session-logs/index.d.ts +18 -0
  401. package/dist/cli/src/commands/session-logs/index.d.ts.map +1 -0
  402. package/dist/cli/src/commands/session-logs/local-query.d.ts +19 -0
  403. package/dist/cli/src/commands/session-logs/local-query.d.ts.map +1 -0
  404. package/dist/cli/src/commands/session-logs/local-tail.d.ts +29 -0
  405. package/dist/cli/src/commands/session-logs/local-tail.d.ts.map +1 -0
  406. package/dist/cli/src/commands/session-logs/parse-time.d.ts +11 -0
  407. package/dist/cli/src/commands/session-logs/parse-time.d.ts.map +1 -0
  408. package/dist/cli/src/commands/session-logs/remote-query.d.ts +26 -0
  409. package/dist/cli/src/commands/session-logs/remote-query.d.ts.map +1 -0
  410. package/dist/cli/src/commands/session-logs/remote-tail.d.ts +22 -0
  411. package/dist/cli/src/commands/session-logs/remote-tail.d.ts.map +1 -0
  412. package/dist/cli/src/commands/session-logs/resolve-mode.d.ts +27 -0
  413. package/dist/cli/src/commands/session-logs/resolve-mode.d.ts.map +1 -0
  414. package/dist/cli/src/commands/session-logs/sqlite-row.d.ts +51 -0
  415. package/dist/cli/src/commands/session-logs/sqlite-row.d.ts.map +1 -0
  416. package/dist/cli/src/commands/session.d.ts +15 -0
  417. package/dist/cli/src/commands/session.d.ts.map +1 -0
  418. package/dist/cli/src/commands/show.d.ts +13 -0
  419. package/dist/cli/src/commands/show.d.ts.map +1 -0
  420. package/dist/cli/src/commands/source-sidecar.d.ts +6 -0
  421. package/dist/cli/src/commands/source-sidecar.d.ts.map +1 -0
  422. package/dist/cli/src/commands/source.d.ts +8 -0
  423. package/dist/cli/src/commands/source.d.ts.map +1 -0
  424. package/dist/cli/src/commands/store.d.ts +13 -0
  425. package/dist/cli/src/commands/store.d.ts.map +1 -0
  426. package/dist/cli/src/commands/tree.d.ts +12 -0
  427. package/dist/cli/src/commands/tree.d.ts.map +1 -0
  428. package/dist/cli/src/commands/update.d.ts +22 -0
  429. package/dist/cli/src/commands/update.d.ts.map +1 -0
  430. package/dist/cli/src/commands/validate.d.ts +17 -0
  431. package/dist/cli/src/commands/validate.d.ts.map +1 -0
  432. package/dist/cli/src/commands/verify.d.ts +13 -0
  433. package/dist/cli/src/commands/verify.d.ts.map +1 -0
  434. package/dist/cli/src/commands/why.d.ts +12 -0
  435. package/dist/cli/src/commands/why.d.ts.map +1 -0
  436. package/dist/cli/src/completion.d.ts +19 -0
  437. package/dist/cli/src/completion.d.ts.map +1 -0
  438. package/dist/cli/src/helpers.d.ts +54 -0
  439. package/dist/cli/src/helpers.d.ts.map +1 -0
  440. package/dist/cli/src/hooks/pre-commit-version.d.ts +10 -0
  441. package/dist/cli/src/hooks/pre-commit-version.d.ts.map +1 -0
  442. package/dist/cli/src/index.d.ts +8 -0
  443. package/dist/cli/src/index.d.ts.map +1 -0
  444. package/dist/cli/src/open-library.d.ts +101 -0
  445. package/dist/cli/src/open-library.d.ts.map +1 -0
  446. package/dist/cli/src/open-registry.d.ts +24 -0
  447. package/dist/cli/src/open-registry.d.ts.map +1 -0
  448. package/dist/cli/src/paths.d.ts +27 -0
  449. package/dist/cli/src/paths.d.ts.map +1 -0
  450. package/dist/cli/src/setup.d.ts +19 -0
  451. package/dist/cli/src/setup.d.ts.map +1 -0
  452. package/dist/cli/src/skill-walker.d.ts +31 -0
  453. package/dist/cli/src/skill-walker.d.ts.map +1 -0
  454. package/dist/cli/src/store-client.d.ts +55 -0
  455. package/dist/cli/src/store-client.d.ts.map +1 -0
  456. package/dist/client/index.js +4 -0
  457. package/dist/client/index.js.map +1 -0
  458. package/dist/client/src/client.d.ts +67 -0
  459. package/dist/client/src/client.d.ts.map +1 -0
  460. package/dist/client/src/index.d.ts +2 -0
  461. package/dist/client/src/index.d.ts.map +1 -0
  462. package/dist/connectors/config.js +14 -0
  463. package/dist/connectors/config.js.map +1 -0
  464. package/dist/connectors/index.js +20 -0
  465. package/dist/connectors/index.js.map +1 -0
  466. package/dist/connectors/rclone-config.js +4 -0
  467. package/dist/connectors/rclone-config.js.map +1 -0
  468. package/dist/connectors/rclone.js +4 -0
  469. package/dist/connectors/rclone.js.map +1 -0
  470. package/dist/connectors/src/adapters/base.d.ts +66 -0
  471. package/dist/connectors/src/adapters/base.d.ts.map +1 -0
  472. package/dist/connectors/src/cli.d.ts +16 -0
  473. package/dist/connectors/src/cli.d.ts.map +1 -0
  474. package/dist/connectors/src/config.d.ts +125 -0
  475. package/dist/connectors/src/config.d.ts.map +1 -0
  476. package/dist/connectors/src/connector-manager.d.ts +147 -0
  477. package/dist/connectors/src/connector-manager.d.ts.map +1 -0
  478. package/dist/connectors/src/connector-registry.d.ts +59 -0
  479. package/dist/connectors/src/connector-registry.d.ts.map +1 -0
  480. package/dist/connectors/src/connector-tools.d.ts +61 -0
  481. package/dist/connectors/src/connector-tools.d.ts.map +1 -0
  482. package/dist/connectors/src/connector-types.d.ts +220 -0
  483. package/dist/connectors/src/connector-types.d.ts.map +1 -0
  484. package/dist/connectors/src/credential-helper-script.d.ts +87 -0
  485. package/dist/connectors/src/credential-helper-script.d.ts.map +1 -0
  486. package/dist/connectors/src/drivers/base.d.ts +44 -0
  487. package/dist/connectors/src/drivers/base.d.ts.map +1 -0
  488. package/dist/connectors/src/index.d.ts +51 -0
  489. package/dist/connectors/src/index.d.ts.map +1 -0
  490. package/dist/connectors/src/log-buffer.d.ts +21 -0
  491. package/dist/connectors/src/log-buffer.d.ts.map +1 -0
  492. package/dist/connectors/src/managed-gitconfig.d.ts +122 -0
  493. package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -0
  494. package/dist/connectors/src/mount-manager.d.ts +147 -0
  495. package/dist/connectors/src/mount-manager.d.ts.map +1 -0
  496. package/dist/connectors/src/mount-prompt.d.ts +13 -0
  497. package/dist/connectors/src/mount-prompt.d.ts.map +1 -0
  498. package/dist/connectors/src/mount-registry.d.ts +61 -0
  499. package/dist/connectors/src/mount-registry.d.ts.map +1 -0
  500. package/dist/connectors/src/mount-types.d.ts +222 -0
  501. package/dist/connectors/src/mount-types.d.ts.map +1 -0
  502. package/dist/connectors/src/npm-installer.d.ts +69 -0
  503. package/dist/connectors/src/npm-installer.d.ts.map +1 -0
  504. package/dist/connectors/src/port-pool.d.ts +25 -0
  505. package/dist/connectors/src/port-pool.d.ts.map +1 -0
  506. package/dist/connectors/src/rclone-config/index.d.ts +8 -0
  507. package/dist/connectors/src/rclone-config/index.d.ts.map +1 -0
  508. package/dist/connectors/src/rclone-config/onedrive.d.ts +47 -0
  509. package/dist/connectors/src/rclone-config/onedrive.d.ts.map +1 -0
  510. package/dist/connectors/src/rclone-config/webdav.d.ts +49 -0
  511. package/dist/connectors/src/rclone-config/webdav.d.ts.map +1 -0
  512. package/dist/connectors/src/rclone-process-manager.d.ts +104 -0
  513. package/dist/connectors/src/rclone-process-manager.d.ts.map +1 -0
  514. package/dist/connectors/src/secrets.d.ts +264 -0
  515. package/dist/connectors/src/secrets.d.ts.map +1 -0
  516. package/dist/connectors/src/shared-types.d.ts +171 -0
  517. package/dist/connectors/src/shared-types.d.ts.map +1 -0
  518. package/dist/connectors/src/watcher.d.ts +23 -0
  519. package/dist/connectors/src/watcher.d.ts.map +1 -0
  520. package/dist/connectors/src/worktree.d.ts +78 -0
  521. package/dist/connectors/src/worktree.d.ts.map +1 -0
  522. package/dist/connectors-7WS2KOSZ.js +5 -0
  523. package/dist/connectors-7WS2KOSZ.js.map +1 -0
  524. package/dist/core/discovery.js +4 -0
  525. package/dist/core/discovery.js.map +1 -0
  526. package/dist/core/driver-targets.js +4 -0
  527. package/dist/core/driver-targets.js.map +1 -0
  528. package/dist/core/framework.js +4 -0
  529. package/dist/core/framework.js.map +1 -0
  530. package/dist/core/index.js +13 -0
  531. package/dist/core/index.js.map +1 -0
  532. package/dist/core/logging.js +4 -0
  533. package/dist/core/logging.js.map +1 -0
  534. package/dist/core/manifest.js +5 -0
  535. package/dist/core/manifest.js.map +1 -0
  536. package/dist/core/models.js +4 -0
  537. package/dist/core/models.js.map +1 -0
  538. package/dist/core/runtime-assets.js +7 -0
  539. package/dist/core/runtime-assets.js.map +1 -0
  540. package/dist/core/src/discovery.d.ts +40 -0
  541. package/dist/core/src/discovery.d.ts.map +1 -0
  542. package/dist/core/src/driver-targets.d.ts +54 -0
  543. package/dist/core/src/driver-targets.d.ts.map +1 -0
  544. package/dist/core/src/framework.d.ts +46 -0
  545. package/dist/core/src/framework.d.ts.map +1 -0
  546. package/dist/core/src/index.d.ts +36 -0
  547. package/dist/core/src/index.d.ts.map +1 -0
  548. package/dist/core/src/lock.d.ts +69 -0
  549. package/dist/core/src/lock.d.ts.map +1 -0
  550. package/dist/core/src/logging/config.d.ts +17 -0
  551. package/dist/core/src/logging/config.d.ts.map +1 -0
  552. package/dist/core/src/logging/create-logger.d.ts +32 -0
  553. package/dist/core/src/logging/create-logger.d.ts.map +1 -0
  554. package/dist/core/src/logging/index.d.ts +16 -0
  555. package/dist/core/src/logging/index.d.ts.map +1 -0
  556. package/dist/core/src/logging/log-store.d.ts +74 -0
  557. package/dist/core/src/logging/log-store.d.ts.map +1 -0
  558. package/dist/core/src/logging/sanitize.d.ts +4 -0
  559. package/dist/core/src/logging/sanitize.d.ts.map +1 -0
  560. package/dist/core/src/logging/sinks/no-op-sink.d.ts +9 -0
  561. package/dist/core/src/logging/sinks/no-op-sink.d.ts.map +1 -0
  562. package/dist/core/src/logging/sinks/on-log-bridge-sink.d.ts +16 -0
  563. package/dist/core/src/logging/sinks/on-log-bridge-sink.d.ts.map +1 -0
  564. package/dist/core/src/logging/sinks/sqlite-sink.d.ts +18 -0
  565. package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -0
  566. package/dist/core/src/logging/sinks/stdout-sink.d.ts +24 -0
  567. package/dist/core/src/logging/sinks/stdout-sink.d.ts.map +1 -0
  568. package/dist/core/src/logging/sinks/types.d.ts +5 -0
  569. package/dist/core/src/logging/sinks/types.d.ts.map +1 -0
  570. package/dist/core/src/logging/sinks/ws-log-sink.d.ts +24 -0
  571. package/dist/core/src/logging/sinks/ws-log-sink.d.ts.map +1 -0
  572. package/dist/core/src/manifest.d.ts +228 -0
  573. package/dist/core/src/manifest.d.ts.map +1 -0
  574. package/dist/core/src/models.d.ts +304 -0
  575. package/dist/core/src/models.d.ts.map +1 -0
  576. package/dist/core/src/patch.d.ts +59 -0
  577. package/dist/core/src/patch.d.ts.map +1 -0
  578. package/dist/core/src/repo-manager.d.ts +232 -0
  579. package/dist/core/src/repo-manager.d.ts.map +1 -0
  580. package/dist/core/src/runtime-assets.d.ts +125 -0
  581. package/dist/core/src/runtime-assets.d.ts.map +1 -0
  582. package/dist/core/src/settings.d.ts +188 -0
  583. package/dist/core/src/settings.d.ts.map +1 -0
  584. package/dist/core/src/store.d.ts +48 -0
  585. package/dist/core/src/store.d.ts.map +1 -0
  586. package/dist/core/src/workspace-config.d.ts +744 -0
  587. package/dist/core/src/workspace-config.d.ts.map +1 -0
  588. package/dist/core/src/workspace-yaml-editor.d.ts +74 -0
  589. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -0
  590. package/dist/core/store.js +5 -0
  591. package/dist/core/store.js.map +1 -0
  592. package/dist/core/workspace-config.js +6 -0
  593. package/dist/core/workspace-config.js.map +1 -0
  594. package/dist/discovery/index.js +8 -0
  595. package/dist/discovery/index.js.map +1 -0
  596. package/dist/discovery/src/asset-kind-registry.d.ts +35 -0
  597. package/dist/discovery/src/asset-kind-registry.d.ts.map +1 -0
  598. package/dist/discovery/src/builtin-providers.d.ts +37 -0
  599. package/dist/discovery/src/builtin-providers.d.ts.map +1 -0
  600. package/dist/discovery/src/discover-manifest.d.ts +41 -0
  601. package/dist/discovery/src/discover-manifest.d.ts.map +1 -0
  602. package/dist/discovery/src/discover.d.ts +92 -0
  603. package/dist/discovery/src/discover.d.ts.map +1 -0
  604. package/dist/discovery/src/hash.d.ts +45 -0
  605. package/dist/discovery/src/hash.d.ts.map +1 -0
  606. package/dist/discovery/src/index.d.ts +19 -0
  607. package/dist/discovery/src/index.d.ts.map +1 -0
  608. package/dist/discovery/src/requires-graph.d.ts +70 -0
  609. package/dist/discovery/src/requires-graph.d.ts.map +1 -0
  610. package/dist/discovery/src/source-config.d.ts +456 -0
  611. package/dist/discovery/src/source-config.d.ts.map +1 -0
  612. package/dist/discovery/src/tree-entries.d.ts +98 -0
  613. package/dist/discovery/src/tree-entries.d.ts.map +1 -0
  614. package/dist/flows-ZULSVHX5.js +7 -0
  615. package/dist/flows-ZULSVHX5.js.map +1 -0
  616. package/dist/helpers-I3SREIC3.js +4 -0
  617. package/dist/helpers-I3SREIC3.js.map +1 -0
  618. package/dist/library/index.js +9 -0
  619. package/dist/library/index.js.map +1 -0
  620. package/dist/library/src/config.d.ts +238 -0
  621. package/dist/library/src/config.d.ts.map +1 -0
  622. package/dist/library/src/index.d.ts +32 -0
  623. package/dist/library/src/index.d.ts.map +1 -0
  624. package/dist/library/src/knowledge/index.d.ts +9 -0
  625. package/dist/library/src/knowledge/index.d.ts.map +1 -0
  626. package/dist/library/src/knowledge/knowledge-kind-provider.d.ts +16 -0
  627. package/dist/library/src/knowledge/knowledge-kind-provider.d.ts.map +1 -0
  628. package/dist/library/src/knowledge/knowledge-manifest.d.ts +52 -0
  629. package/dist/library/src/knowledge/knowledge-manifest.d.ts.map +1 -0
  630. package/dist/library/src/library.d.ts +344 -0
  631. package/dist/library/src/library.d.ts.map +1 -0
  632. package/dist/library/src/local/db.d.ts +29 -0
  633. package/dist/library/src/local/db.d.ts.map +1 -0
  634. package/dist/library/src/local/library.d.ts +85 -0
  635. package/dist/library/src/local/library.d.ts.map +1 -0
  636. package/dist/library/src/local/local-catalog-source.d.ts +66 -0
  637. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -0
  638. package/dist/library/src/local/schema.d.ts +783 -0
  639. package/dist/library/src/local/schema.d.ts.map +1 -0
  640. package/dist/library/src/local/sidecar-git.d.ts +104 -0
  641. package/dist/library/src/local/sidecar-git.d.ts.map +1 -0
  642. package/dist/library/src/local/sidecar-paths.d.ts +87 -0
  643. package/dist/library/src/local/sidecar-paths.d.ts.map +1 -0
  644. package/dist/library/src/local/user-library-manager.d.ts +41 -0
  645. package/dist/library/src/local/user-library-manager.d.ts.map +1 -0
  646. package/dist/library/src/migration.d.ts +38 -0
  647. package/dist/library/src/migration.d.ts.map +1 -0
  648. package/dist/library/src/pin-resolver.d.ts +45 -0
  649. package/dist/library/src/pin-resolver.d.ts.map +1 -0
  650. package/dist/library/src/preset/apply.d.ts +105 -0
  651. package/dist/library/src/preset/apply.d.ts.map +1 -0
  652. package/dist/library/src/preset/index.d.ts +13 -0
  653. package/dist/library/src/preset/index.d.ts.map +1 -0
  654. package/dist/library/src/preset/interpolate.d.ts +109 -0
  655. package/dist/library/src/preset/interpolate.d.ts.map +1 -0
  656. package/dist/library/src/preset/parse.d.ts +65 -0
  657. package/dist/library/src/preset/parse.d.ts.map +1 -0
  658. package/dist/library/src/preset/placeholders.d.ts +103 -0
  659. package/dist/library/src/preset/placeholders.d.ts.map +1 -0
  660. package/dist/library/src/preset/resolve-item.d.ts +119 -0
  661. package/dist/library/src/preset/resolve-item.d.ts.map +1 -0
  662. package/dist/library/src/preset/upgrade.d.ts +96 -0
  663. package/dist/library/src/preset/upgrade.d.ts.map +1 -0
  664. package/dist/library/src/remote/cache.d.ts +150 -0
  665. package/dist/library/src/remote/cache.d.ts.map +1 -0
  666. package/dist/library/src/remote/index.d.ts +13 -0
  667. package/dist/library/src/remote/index.d.ts.map +1 -0
  668. package/dist/library/src/remote/remote-catalog-source.d.ts +199 -0
  669. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -0
  670. package/dist/library/src/remote/rest-catalog-source.d.ts +135 -0
  671. package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -0
  672. package/dist/library/src/sync/driver.d.ts +19 -0
  673. package/dist/library/src/sync/driver.d.ts.map +1 -0
  674. package/dist/library/src/sync/git-driver.d.ts +21 -0
  675. package/dist/library/src/sync/git-driver.d.ts.map +1 -0
  676. package/dist/library/src/sync/local-driver.d.ts +19 -0
  677. package/dist/library/src/sync/local-driver.d.ts.map +1 -0
  678. package/dist/library/src/sync/manifest-writeback.d.ts +23 -0
  679. package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -0
  680. package/dist/library/src/sync/store-driver.d.ts +21 -0
  681. package/dist/library/src/sync/store-driver.d.ts.map +1 -0
  682. package/dist/library/src/user-library.d.ts +149 -0
  683. package/dist/library/src/user-library.d.ts.map +1 -0
  684. package/dist/library/src/workspace-config.d.ts +451 -0
  685. package/dist/library/src/workspace-config.d.ts.map +1 -0
  686. package/dist/mounts-PQLFYD2C.js +5 -0
  687. package/dist/mounts-PQLFYD2C.js.map +1 -0
  688. package/dist/open-library-N5T5HRTS.js +12 -0
  689. package/dist/open-library-N5T5HRTS.js.map +1 -0
  690. package/dist/paths-FKKGS6BA.js +4 -0
  691. package/dist/paths-FKKGS6BA.js.map +1 -0
  692. package/dist/plugins/index.js +4 -0
  693. package/dist/plugins/index.js.map +1 -0
  694. package/dist/plugins/src/asset-kind-provider.d.ts +99 -0
  695. package/dist/plugins/src/asset-kind-provider.d.ts.map +1 -0
  696. package/dist/plugins/src/asset-kind-registry.d.ts +106 -0
  697. package/dist/plugins/src/asset-kind-registry.d.ts.map +1 -0
  698. package/dist/plugins/src/catalog-source.d.ts +87 -0
  699. package/dist/plugins/src/catalog-source.d.ts.map +1 -0
  700. package/dist/plugins/src/index.d.ts +8 -0
  701. package/dist/plugins/src/index.d.ts.map +1 -0
  702. package/dist/plugins/src/secrets-provider.d.ts +143 -0
  703. package/dist/plugins/src/secrets-provider.d.ts.map +1 -0
  704. package/dist/provider-QXKEDXWJ.js +174 -0
  705. package/dist/provider-QXKEDXWJ.js.map +1 -0
  706. package/dist/resolver/index.js +4 -0
  707. package/dist/resolver/index.js.map +1 -0
  708. package/dist/resolver/src/index.d.ts +6 -0
  709. package/dist/resolver/src/index.d.ts.map +1 -0
  710. package/dist/resolver/src/parser.d.ts +47 -0
  711. package/dist/resolver/src/parser.d.ts.map +1 -0
  712. package/dist/resolver/src/preamble.d.ts +32 -0
  713. package/dist/resolver/src/preamble.d.ts.map +1 -0
  714. package/dist/resolver/src/types.d.ts +279 -0
  715. package/dist/resolver/src/types.d.ts.map +1 -0
  716. package/dist/resolver/src/validator.d.ts +55 -0
  717. package/dist/resolver/src/validator.d.ts.map +1 -0
  718. package/dist/resolver/src/version.d.ts +50 -0
  719. package/dist/resolver/src/version.d.ts.map +1 -0
  720. package/dist/runner/index.js +34 -0
  721. package/dist/runner/index.js.map +1 -0
  722. package/dist/runner/src/agent.d.ts +52 -0
  723. package/dist/runner/src/agent.d.ts.map +1 -0
  724. package/dist/runner/src/builtin-capabilities.d.ts +23 -0
  725. package/dist/runner/src/builtin-capabilities.d.ts.map +1 -0
  726. package/dist/runner/src/capability-registry.d.ts +212 -0
  727. package/dist/runner/src/capability-registry.d.ts.map +1 -0
  728. package/dist/runner/src/capability-roundtrip.d.ts +90 -0
  729. package/dist/runner/src/capability-roundtrip.d.ts.map +1 -0
  730. package/dist/runner/src/compaction/index.d.ts +6 -0
  731. package/dist/runner/src/compaction/index.d.ts.map +1 -0
  732. package/dist/runner/src/compaction/orchestrator.d.ts +99 -0
  733. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -0
  734. package/dist/runner/src/compaction/prompt.d.ts +15 -0
  735. package/dist/runner/src/compaction/prompt.d.ts.map +1 -0
  736. package/dist/runner/src/compaction/strategy.d.ts +41 -0
  737. package/dist/runner/src/compaction/strategy.d.ts.map +1 -0
  738. package/dist/runner/src/composition/bootstrap.d.ts +73 -0
  739. package/dist/runner/src/composition/bootstrap.d.ts.map +1 -0
  740. package/dist/runner/src/composition/compile.d.ts +84 -0
  741. package/dist/runner/src/composition/compile.d.ts.map +1 -0
  742. package/dist/runner/src/composition/index.d.ts +14 -0
  743. package/dist/runner/src/composition/index.d.ts.map +1 -0
  744. package/dist/runner/src/composition/resolve.d.ts +53 -0
  745. package/dist/runner/src/composition/resolve.d.ts.map +1 -0
  746. package/dist/runner/src/composition/types.d.ts +103 -0
  747. package/dist/runner/src/composition/types.d.ts.map +1 -0
  748. package/dist/runner/src/config.d.ts +11 -0
  749. package/dist/runner/src/config.d.ts.map +1 -0
  750. package/dist/runner/src/context.d.ts +16 -0
  751. package/dist/runner/src/context.d.ts.map +1 -0
  752. package/dist/runner/src/define-capability.d.ts +153 -0
  753. package/dist/runner/src/define-capability.d.ts.map +1 -0
  754. package/dist/runner/src/environment.d.ts +21 -0
  755. package/dist/runner/src/environment.d.ts.map +1 -0
  756. package/dist/runner/src/file-changed-rewriter.d.ts +35 -0
  757. package/dist/runner/src/file-changed-rewriter.d.ts.map +1 -0
  758. package/dist/runner/src/index.d.ts +22 -0
  759. package/dist/runner/src/index.d.ts.map +1 -0
  760. package/dist/runner/src/logging-bootstrap.d.ts +92 -0
  761. package/dist/runner/src/logging-bootstrap.d.ts.map +1 -0
  762. package/dist/runner/src/manifest.d.ts +33 -0
  763. package/dist/runner/src/manifest.d.ts.map +1 -0
  764. package/dist/runner/src/markdown-stream.d.ts +22 -0
  765. package/dist/runner/src/markdown-stream.d.ts.map +1 -0
  766. package/dist/runner/src/mixin-resolver.d.ts +61 -0
  767. package/dist/runner/src/mixin-resolver.d.ts.map +1 -0
  768. package/dist/runner/src/prompt-assembly.d.ts +42 -0
  769. package/dist/runner/src/prompt-assembly.d.ts.map +1 -0
  770. package/dist/runner/src/recipe-resolver.d.ts +18 -0
  771. package/dist/runner/src/recipe-resolver.d.ts.map +1 -0
  772. package/dist/runner/src/recipe-templating.d.ts +20 -0
  773. package/dist/runner/src/recipe-templating.d.ts.map +1 -0
  774. package/dist/runner/src/refresh-flag-dispatcher.d.ts +54 -0
  775. package/dist/runner/src/refresh-flag-dispatcher.d.ts.map +1 -0
  776. package/dist/runner/src/resource-handler.d.ts +22 -0
  777. package/dist/runner/src/resource-handler.d.ts.map +1 -0
  778. package/dist/runner/src/resources.d.ts +102 -0
  779. package/dist/runner/src/resources.d.ts.map +1 -0
  780. package/dist/runner/src/runner-capabilities.d.ts +120 -0
  781. package/dist/runner/src/runner-capabilities.d.ts.map +1 -0
  782. package/dist/runner/src/serve-credentials.d.ts +50 -0
  783. package/dist/runner/src/serve-credentials.d.ts.map +1 -0
  784. package/dist/runner/src/serve.d.ts +154 -0
  785. package/dist/runner/src/serve.d.ts.map +1 -0
  786. package/dist/runner/src/session-builder.d.ts +213 -0
  787. package/dist/runner/src/session-builder.d.ts.map +1 -0
  788. package/dist/runner/src/session-stimulus.d.ts +79 -0
  789. package/dist/runner/src/session-stimulus.d.ts.map +1 -0
  790. package/dist/runner/src/session.d.ts +139 -0
  791. package/dist/runner/src/session.d.ts.map +1 -0
  792. package/dist/runner/src/workspace-migration.d.ts +54 -0
  793. package/dist/runner/src/workspace-migration.d.ts.map +1 -0
  794. package/dist/sdk/asset-manager.js +22 -0
  795. package/dist/sdk/asset-manager.js.map +1 -0
  796. package/dist/sdk/bridge.js +9 -0
  797. package/dist/sdk/bridge.js.map +1 -0
  798. package/dist/sdk/client.js +4 -0
  799. package/dist/sdk/client.js.map +1 -0
  800. package/dist/sdk/core.js +13 -0
  801. package/dist/sdk/core.js.map +1 -0
  802. package/dist/sdk/flow.js +4 -0
  803. package/dist/sdk/flow.js.map +1 -0
  804. package/dist/sdk/index.js +339 -0
  805. package/dist/sdk/index.js.map +1 -0
  806. package/dist/sdk/resolver.js +4 -0
  807. package/dist/sdk/resolver.js.map +1 -0
  808. package/dist/sdk/runner.js +34 -0
  809. package/dist/sdk/runner.js.map +1 -0
  810. package/dist/sdk/session.js +5 -0
  811. package/dist/sdk/session.js.map +1 -0
  812. package/dist/sdk/src/agent-session.d.ts +67 -0
  813. package/dist/sdk/src/agent-session.d.ts.map +1 -0
  814. package/dist/sdk/src/asset-manager/index.d.ts +2 -0
  815. package/dist/sdk/src/asset-manager/index.d.ts.map +1 -0
  816. package/dist/sdk/src/bridge/index.d.ts +2 -0
  817. package/dist/sdk/src/bridge/index.d.ts.map +1 -0
  818. package/dist/sdk/src/client/index.d.ts +2 -0
  819. package/dist/sdk/src/client/index.d.ts.map +1 -0
  820. package/dist/sdk/src/core/index.d.ts +2 -0
  821. package/dist/sdk/src/core/index.d.ts.map +1 -0
  822. package/dist/sdk/src/factory.d.ts +19 -0
  823. package/dist/sdk/src/factory.d.ts.map +1 -0
  824. package/dist/sdk/src/flow/index.d.ts +2 -0
  825. package/dist/sdk/src/flow/index.d.ts.map +1 -0
  826. package/dist/sdk/src/index.d.ts +7 -0
  827. package/dist/sdk/src/index.d.ts.map +1 -0
  828. package/dist/sdk/src/local-runtime.d.ts +51 -0
  829. package/dist/sdk/src/local-runtime.d.ts.map +1 -0
  830. package/dist/sdk/src/resolver/index.d.ts +2 -0
  831. package/dist/sdk/src/resolver/index.d.ts.map +1 -0
  832. package/dist/sdk/src/runner/index.d.ts +2 -0
  833. package/dist/sdk/src/runner/index.d.ts.map +1 -0
  834. package/dist/sdk/src/session/index.d.ts +2 -0
  835. package/dist/sdk/src/session/index.d.ts.map +1 -0
  836. package/dist/sdk/src/store/index.d.ts +2 -0
  837. package/dist/sdk/src/store/index.d.ts.map +1 -0
  838. package/dist/sdk/src/telemetry/index.d.ts +2 -0
  839. package/dist/sdk/src/telemetry/index.d.ts.map +1 -0
  840. package/dist/sdk/src/transport/index.d.ts +2 -0
  841. package/dist/sdk/src/transport/index.d.ts.map +1 -0
  842. package/dist/sdk/src/transport/ws/client.d.ts +2 -0
  843. package/dist/sdk/src/transport/ws/client.d.ts.map +1 -0
  844. package/dist/sdk/src/transport/ws/index.d.ts +2 -0
  845. package/dist/sdk/src/transport/ws/index.d.ts.map +1 -0
  846. package/dist/sdk/src/transport/ws/server.d.ts +2 -0
  847. package/dist/sdk/src/transport/ws/server.d.ts.map +1 -0
  848. package/dist/sdk/src/transport.d.ts +31 -0
  849. package/dist/sdk/src/transport.d.ts.map +1 -0
  850. package/dist/sdk/src/types/index.d.ts +2 -0
  851. package/dist/sdk/src/types/index.d.ts.map +1 -0
  852. package/dist/sdk/src/types.d.ts +140 -0
  853. package/dist/sdk/src/types.d.ts.map +1 -0
  854. package/dist/sdk/src/workspace.d.ts +32 -0
  855. package/dist/sdk/src/workspace.d.ts.map +1 -0
  856. package/dist/sdk/store.js +4 -0
  857. package/dist/sdk/store.js.map +1 -0
  858. package/dist/sdk/telemetry.js +4 -0
  859. package/dist/sdk/telemetry.js.map +1 -0
  860. package/dist/sdk/transport/ws/client.js +4 -0
  861. package/dist/sdk/transport/ws/client.js.map +1 -0
  862. package/dist/sdk/transport/ws/server.js +4 -0
  863. package/dist/sdk/transport/ws/server.js.map +1 -0
  864. package/dist/sdk/transport/ws.js +6 -0
  865. package/dist/sdk/transport/ws.js.map +1 -0
  866. package/dist/sdk/transport.js +7 -0
  867. package/dist/sdk/transport.js.map +1 -0
  868. package/dist/sdk/types.js +4 -0
  869. package/dist/sdk/types.js.map +1 -0
  870. package/dist/secrets/index.js +5 -0
  871. package/dist/secrets/index.js.map +1 -0
  872. package/dist/secrets/src/index.d.ts +12 -0
  873. package/dist/secrets/src/index.d.ts.map +1 -0
  874. package/dist/secrets/src/lifecycle.d.ts +51 -0
  875. package/dist/secrets/src/lifecycle.d.ts.map +1 -0
  876. package/dist/secrets/src/providers/env.d.ts +26 -0
  877. package/dist/secrets/src/providers/env.d.ts.map +1 -0
  878. package/dist/secrets/src/providers/local.d.ts +63 -0
  879. package/dist/secrets/src/providers/local.d.ts.map +1 -0
  880. package/dist/secrets/src/router.d.ts +91 -0
  881. package/dist/secrets/src/router.d.ts.map +1 -0
  882. package/dist/session/index.js +5 -0
  883. package/dist/session/index.js.map +1 -0
  884. package/dist/session/src/dispatcher.d.ts +246 -0
  885. package/dist/session/src/dispatcher.d.ts.map +1 -0
  886. package/dist/session/src/index.d.ts +6 -0
  887. package/dist/session/src/index.d.ts.map +1 -0
  888. package/dist/session/src/mentions.d.ts +80 -0
  889. package/dist/session/src/mentions.d.ts.map +1 -0
  890. package/dist/session/src/types.d.ts +109 -0
  891. package/dist/session/src/types.d.ts.map +1 -0
  892. package/dist/sessions-2IUX4P3P.js +5 -0
  893. package/dist/sessions-2IUX4P3P.js.map +1 -0
  894. package/dist/setup-BMTC562F.js +488 -0
  895. package/dist/setup-BMTC562F.js.map +1 -0
  896. package/dist/skills-CRL3VJNN.js +7 -0
  897. package/dist/skills-CRL3VJNN.js.map +1 -0
  898. package/dist/store/index.js +4 -0
  899. package/dist/store/index.js.map +1 -0
  900. package/dist/store/react.js +40 -0
  901. package/dist/store/react.js.map +1 -0
  902. package/dist/store/src/index.d.ts +4 -0
  903. package/dist/store/src/index.d.ts.map +1 -0
  904. package/dist/store/src/react.d.ts +75 -0
  905. package/dist/store/src/react.d.ts.map +1 -0
  906. package/dist/store/src/resource-client.d.ts +128 -0
  907. package/dist/store/src/resource-client.d.ts.map +1 -0
  908. package/dist/store/src/store.d.ts +172 -0
  909. package/dist/store/src/store.d.ts.map +1 -0
  910. package/dist/store/src/types.d.ts +248 -0
  911. package/dist/store/src/types.d.ts.map +1 -0
  912. package/dist/store/src/vue.d.ts +52 -0
  913. package/dist/store/src/vue.d.ts.map +1 -0
  914. package/dist/store/vue.js +23 -0
  915. package/dist/store/vue.js.map +1 -0
  916. package/dist/store-client-X7Y7D5QX.js +14 -0
  917. package/dist/store-client-X7Y7D5QX.js.map +1 -0
  918. package/dist/telemetry/index.js +4 -0
  919. package/dist/telemetry/index.js.map +1 -0
  920. package/dist/telemetry/src/config.d.ts +28 -0
  921. package/dist/telemetry/src/config.d.ts.map +1 -0
  922. package/dist/telemetry/src/context.d.ts +36 -0
  923. package/dist/telemetry/src/context.d.ts.map +1 -0
  924. package/dist/telemetry/src/index.d.ts +5 -0
  925. package/dist/telemetry/src/index.d.ts.map +1 -0
  926. package/dist/telemetry/src/noop.d.ts +25 -0
  927. package/dist/telemetry/src/noop.d.ts.map +1 -0
  928. package/dist/telemetry/src/otel/exporter.d.ts +17 -0
  929. package/dist/telemetry/src/otel/exporter.d.ts.map +1 -0
  930. package/dist/telemetry/src/otel/gen-ai.d.ts +17 -0
  931. package/dist/telemetry/src/otel/gen-ai.d.ts.map +1 -0
  932. package/dist/telemetry/src/otel/provider.d.ts +34 -0
  933. package/dist/telemetry/src/otel/provider.d.ts.map +1 -0
  934. package/dist/telemetry/src/types.d.ts +182 -0
  935. package/dist/telemetry/src/types.d.ts.map +1 -0
  936. package/dist/transport/index.js +7 -0
  937. package/dist/transport/index.js.map +1 -0
  938. package/dist/transport/src/index.d.ts +2 -0
  939. package/dist/transport/src/index.d.ts.map +1 -0
  940. package/dist/transport/src/ws/client.d.ts +72 -0
  941. package/dist/transport/src/ws/client.d.ts.map +1 -0
  942. package/dist/transport/src/ws/index.d.ts +3 -0
  943. package/dist/transport/src/ws/index.d.ts.map +1 -0
  944. package/dist/transport/src/ws/server.d.ts +67 -0
  945. package/dist/transport/src/ws/server.d.ts.map +1 -0
  946. package/dist/transport/ws/client.js +4 -0
  947. package/dist/transport/ws/client.js.map +1 -0
  948. package/dist/transport/ws/server.js +4 -0
  949. package/dist/transport/ws/server.js.map +1 -0
  950. package/dist/transport/ws.js +6 -0
  951. package/dist/transport/ws.js.map +1 -0
  952. package/dist/tui/index.js +471 -0
  953. package/dist/tui/index.js.map +1 -0
  954. package/dist/tui/src/index.d.ts +4 -0
  955. package/dist/tui/src/index.d.ts.map +1 -0
  956. package/dist/tui/src/repl-renderer.d.ts +31 -0
  957. package/dist/tui/src/repl-renderer.d.ts.map +1 -0
  958. package/dist/tui/src/repl-session.d.ts +69 -0
  959. package/dist/tui/src/repl-session.d.ts.map +1 -0
  960. package/dist/tui/src/repl.d.ts +49 -0
  961. package/dist/tui/src/repl.d.ts.map +1 -0
  962. package/dist/tui/src/telemetry.d.ts +88 -0
  963. package/dist/tui/src/telemetry.d.ts.map +1 -0
  964. package/dist/types/index.js +4 -0
  965. package/dist/types/index.js.map +1 -0
  966. package/dist/types/manifests.js +4 -0
  967. package/dist/types/manifests.js.map +1 -0
  968. package/dist/types/src/capabilities.d.ts +398 -0
  969. package/dist/types/src/capabilities.d.ts.map +1 -0
  970. package/dist/types/src/envelope.d.ts +120 -0
  971. package/dist/types/src/envelope.d.ts.map +1 -0
  972. package/dist/types/src/events.d.ts +1075 -0
  973. package/dist/types/src/events.d.ts.map +1 -0
  974. package/dist/types/src/flow.d.ts +312 -0
  975. package/dist/types/src/flow.d.ts.map +1 -0
  976. package/dist/types/src/index.d.ts +57 -0
  977. package/dist/types/src/index.d.ts.map +1 -0
  978. package/dist/types/src/lifecycle.d.ts +269 -0
  979. package/dist/types/src/lifecycle.d.ts.map +1 -0
  980. package/dist/types/src/logging.d.ts +161 -0
  981. package/dist/types/src/logging.d.ts.map +1 -0
  982. package/dist/types/src/manifests/_shared.d.ts +162 -0
  983. package/dist/types/src/manifests/_shared.d.ts.map +1 -0
  984. package/dist/types/src/manifests/agent.d.ts +343 -0
  985. package/dist/types/src/manifests/agent.d.ts.map +1 -0
  986. package/dist/types/src/manifests/connector.d.ts +126 -0
  987. package/dist/types/src/manifests/connector.d.ts.map +1 -0
  988. package/dist/types/src/manifests/contract.d.ts +90 -0
  989. package/dist/types/src/manifests/contract.d.ts.map +1 -0
  990. package/dist/types/src/manifests/index.d.ts +40 -0
  991. package/dist/types/src/manifests/index.d.ts.map +1 -0
  992. package/dist/types/src/manifests/mcp-server.d.ts +42 -0
  993. package/dist/types/src/manifests/mcp-server.d.ts.map +1 -0
  994. package/dist/types/src/manifests/mount.d.ts +93 -0
  995. package/dist/types/src/manifests/mount.d.ts.map +1 -0
  996. package/dist/types/src/manifests/persona.d.ts +90 -0
  997. package/dist/types/src/manifests/persona.d.ts.map +1 -0
  998. package/dist/types/src/manifests/preset.d.ts +704 -0
  999. package/dist/types/src/manifests/preset.d.ts.map +1 -0
  1000. package/dist/types/src/manifests/prompt.d.ts +90 -0
  1001. package/dist/types/src/manifests/prompt.d.ts.map +1 -0
  1002. package/dist/types/src/manifests/ruleset.d.ts +90 -0
  1003. package/dist/types/src/manifests/ruleset.d.ts.map +1 -0
  1004. package/dist/types/src/manifests/skill.d.ts +2391 -0
  1005. package/dist/types/src/manifests/skill.d.ts.map +1 -0
  1006. package/dist/types/src/mentions.d.ts +49 -0
  1007. package/dist/types/src/mentions.d.ts.map +1 -0
  1008. package/dist/types/src/messaging.d.ts +105 -0
  1009. package/dist/types/src/messaging.d.ts.map +1 -0
  1010. package/dist/types/src/protocol.d.ts +201 -0
  1011. package/dist/types/src/protocol.d.ts.map +1 -0
  1012. package/dist/types/src/reactions.d.ts +34 -0
  1013. package/dist/types/src/reactions.d.ts.map +1 -0
  1014. package/dist/types/src/runtime.d.ts +219 -0
  1015. package/dist/types/src/runtime.d.ts.map +1 -0
  1016. package/dist/types/src/transport.d.ts +64 -0
  1017. package/dist/types/src/transport.d.ts.map +1 -0
  1018. package/dist/types/src/version.d.ts +129 -0
  1019. package/dist/types/src/version.d.ts.map +1 -0
  1020. package/dist/validator-764EQNM3.js +5 -0
  1021. package/dist/validator-764EQNM3.js.map +1 -0
  1022. package/dist/workspace-plugin/adapters/mcp.js +259 -0
  1023. package/dist/workspace-plugin/adapters/mcp.js.map +1 -0
  1024. package/dist/workspace-plugin/adapters/omp.js +251 -0
  1025. package/dist/workspace-plugin/adapters/omp.js.map +1 -0
  1026. package/dist/workspace-plugin/index.js +6 -0
  1027. package/dist/workspace-plugin/index.js.map +1 -0
  1028. package/dist/workspace-plugin/src/adapters/claude-code.d.ts +17 -0
  1029. package/dist/workspace-plugin/src/adapters/claude-code.d.ts.map +1 -0
  1030. package/dist/workspace-plugin/src/adapters/mcp.d.ts +78 -0
  1031. package/dist/workspace-plugin/src/adapters/mcp.d.ts.map +1 -0
  1032. package/dist/workspace-plugin/src/adapters/omp.d.ts +60 -0
  1033. package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -0
  1034. package/dist/workspace-plugin/src/index.d.ts +8 -0
  1035. package/dist/workspace-plugin/src/index.d.ts.map +1 -0
  1036. package/dist/workspace-plugin/src/plugin.d.ts +83 -0
  1037. package/dist/workspace-plugin/src/plugin.d.ts.map +1 -0
  1038. package/dist/workspace-plugin/src/store.d.ts +36 -0
  1039. package/dist/workspace-plugin/src/store.d.ts.map +1 -0
  1040. package/dist/workspace-plugin/src/tools/connectors.d.ts +94 -0
  1041. package/dist/workspace-plugin/src/tools/connectors.d.ts.map +1 -0
  1042. package/dist/workspace-plugin/src/tools/flows.d.ts +54 -0
  1043. package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -0
  1044. package/dist/workspace-plugin/src/tools/mounts.d.ts +51 -0
  1045. package/dist/workspace-plugin/src/tools/mounts.d.ts.map +1 -0
  1046. package/dist/workspace-plugin/src/tools/sessions.d.ts +35 -0
  1047. package/dist/workspace-plugin/src/tools/sessions.d.ts.map +1 -0
  1048. package/dist/workspace-plugin/src/tools/skills.d.ts +75 -0
  1049. package/dist/workspace-plugin/src/tools/skills.d.ts.map +1 -0
  1050. package/dist/workspace-plugin/src/tools/validator.d.ts +64 -0
  1051. package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -0
  1052. package/dist/workspace-plugin/src/types.d.ts +73 -0
  1053. package/dist/workspace-plugin/src/types.d.ts.map +1 -0
  1054. package/dist/workspace-plugin/src/utils/ai-assets.d.ts +16 -0
  1055. package/dist/workspace-plugin/src/utils/ai-assets.d.ts.map +1 -0
  1056. package/dist/workspace-plugin/src/utils/project-dir.d.ts +23 -0
  1057. package/dist/workspace-plugin/src/utils/project-dir.d.ts.map +1 -0
  1058. package/package.json +646 -0
@@ -0,0 +1,535 @@
1
+ import { ProviderUnavailableError, SecretsError, SecretNotFoundError, SecretAccessDeniedError } from './chunk-OKRUTSG7.js';
2
+ import * as crypto from 'crypto';
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ import * as os from 'os';
6
+
7
+ // secrets/src/router.ts
8
+ var SecretsRouter = class {
9
+ providers = /* @__PURE__ */ new Map();
10
+ config;
11
+ sinks = [];
12
+ /** Caller context for audit events (set per-request by the runner). */
13
+ callerSessionId;
14
+ callerToolCall;
15
+ constructor(config) {
16
+ this.config = config;
17
+ }
18
+ // -- Provider registration ------------------------------------------------
19
+ register(provider) {
20
+ this.providers.set(provider.id, provider);
21
+ }
22
+ unregister(id) {
23
+ this.providers.delete(id);
24
+ }
25
+ listProviders() {
26
+ return [...this.providers.keys()];
27
+ }
28
+ // -- Audit sinks -----------------------------------------------------------
29
+ addSink(sink) {
30
+ this.sinks.push(sink);
31
+ }
32
+ emit(ref, operation, providerId) {
33
+ const event = {
34
+ credential_ref: ref,
35
+ operation,
36
+ provider_id: providerId,
37
+ caller_session_id: this.callerSessionId,
38
+ caller_tool_call: this.callerToolCall,
39
+ timestamp: /* @__PURE__ */ new Date()
40
+ };
41
+ for (const sink of this.sinks) {
42
+ try {
43
+ sink(event);
44
+ } catch {
45
+ }
46
+ }
47
+ }
48
+ // -- Routing ---------------------------------------------------------------
49
+ resolve(ref) {
50
+ if (this.config.rules) {
51
+ for (const rule of this.config.rules) {
52
+ if (ref.startsWith(rule.prefix)) {
53
+ const provider2 = this.providers.get(rule.provider_id);
54
+ if (provider2) return provider2;
55
+ }
56
+ }
57
+ }
58
+ const provider = this.providers.get(this.config.default_provider);
59
+ if (!provider) {
60
+ throw new ProviderUnavailableError(
61
+ this.config.default_provider,
62
+ `No provider registered for default id "${this.config.default_provider}"`
63
+ );
64
+ }
65
+ return provider;
66
+ }
67
+ // -- Delegated operations --------------------------------------------------
68
+ async getSecret(ref) {
69
+ const provider = this.resolve(ref);
70
+ this.emit(ref, "get", provider.id);
71
+ return provider.getSecret(ref);
72
+ }
73
+ async setSecret(ref, value, opts) {
74
+ const provider = this.resolve(ref);
75
+ this.emit(ref, "set", provider.id);
76
+ return provider.setSecret(ref, value, opts);
77
+ }
78
+ async deleteSecret(ref) {
79
+ const provider = this.resolve(ref);
80
+ this.emit(ref, "delete", provider.id);
81
+ return provider.deleteSecret(ref);
82
+ }
83
+ async listSecrets(filter) {
84
+ const provider = this.providers.get(this.config.default_provider);
85
+ if (!provider) return [];
86
+ this.emit("*", "list", provider.id);
87
+ return provider.listSecrets(filter);
88
+ }
89
+ async getMetadata(ref) {
90
+ const provider = this.resolve(ref);
91
+ this.emit(ref, "metadata", provider.id);
92
+ return provider.getMetadata(ref);
93
+ }
94
+ getCapabilities(providerId) {
95
+ const id = providerId ?? this.config.default_provider;
96
+ const provider = this.providers.get(id);
97
+ return provider?.getCapabilities() ?? null;
98
+ }
99
+ async testConnection(providerId) {
100
+ const id = providerId ?? this.config.default_provider;
101
+ const provider = this.providers.get(id);
102
+ if (!provider) {
103
+ return { ok: false, error: `Provider "${id}" not registered` };
104
+ }
105
+ return provider.testConnection();
106
+ }
107
+ };
108
+ var ALGORITHM = "aes-256-gcm";
109
+ var IV_LENGTH = 12;
110
+ var AUTH_TAG_LENGTH = 16;
111
+ var SALT_LENGTH = 32;
112
+ var KEY_LENGTH = 32;
113
+ var PBKDF2_ITERATIONS = 1e5;
114
+ var PBKDF2_DIGEST = "sha512";
115
+ var KEYCHAIN_SERVICE = "skaile-secrets";
116
+ var KEYCHAIN_ACCOUNT = "master-key";
117
+ var PASSPHRASE_ENV = "SKAILE_SECRETS_PASSPHRASE";
118
+ function deriveMasterKey(passphrase, salt) {
119
+ return crypto.pbkdf2Sync(passphrase, salt, PBKDF2_ITERATIONS, KEY_LENGTH, PBKDF2_DIGEST);
120
+ }
121
+ function getMachinePassphrase() {
122
+ return `skaile:${os.hostname()}:${os.userInfo().username}`;
123
+ }
124
+ function hashPassphrase(passphrase) {
125
+ return crypto.createHash("sha256").update(passphrase).digest("hex");
126
+ }
127
+ function refToHash(ref) {
128
+ return crypto.createHash("sha256").update(ref).digest("hex").slice(0, 40);
129
+ }
130
+ function encrypt(data, key) {
131
+ const iv = crypto.randomBytes(IV_LENGTH);
132
+ const cipher = crypto.createCipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
133
+ const encrypted = Buffer.concat([cipher.update(data), cipher.final()]);
134
+ const authTag = cipher.getAuthTag();
135
+ return Buffer.concat([iv, authTag, encrypted]);
136
+ }
137
+ function decrypt(blob, key) {
138
+ const iv = blob.subarray(0, IV_LENGTH);
139
+ const authTag = blob.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
140
+ const ciphertext = blob.subarray(IV_LENGTH + AUTH_TAG_LENGTH);
141
+ const decipher = crypto.createDecipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
142
+ decipher.setAuthTag(authTag);
143
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
144
+ }
145
+ var LocalSecretsProvider = class {
146
+ id = "local";
147
+ secretsDir;
148
+ masterKey = null;
149
+ salt = null;
150
+ strategy = "machine";
151
+ constructor(secretsDir) {
152
+ this.secretsDir = secretsDir ?? path.join(os.homedir(), ".skaile", "secrets");
153
+ }
154
+ // -- Initialization --------------------------------------------------------
155
+ ensureDir() {
156
+ if (!fs.existsSync(this.secretsDir)) {
157
+ fs.mkdirSync(this.secretsDir, { recursive: true, mode: 448 });
158
+ }
159
+ }
160
+ loadOrCreateSalt() {
161
+ const saltPath = path.join(this.secretsDir, ".salt");
162
+ if (fs.existsSync(saltPath)) {
163
+ return fs.readFileSync(saltPath);
164
+ }
165
+ const salt = crypto.randomBytes(SALT_LENGTH);
166
+ fs.writeFileSync(saltPath, salt, { mode: 384 });
167
+ return salt;
168
+ }
169
+ async ensureKey() {
170
+ if (this.masterKey) return;
171
+ this.ensureDir();
172
+ this.salt = this.loadOrCreateSalt();
173
+ const strategyPath = path.join(this.secretsDir, ".key-strategy");
174
+ if (fs.existsSync(strategyPath)) {
175
+ this.strategy = fs.readFileSync(strategyPath, "utf-8").trim();
176
+ } else {
177
+ this.strategy = await this.tryKeychainStrategy() ? "keychain" : "machine";
178
+ fs.writeFileSync(strategyPath, this.strategy, { mode: 384 });
179
+ }
180
+ const passphrase = await this.getPassphraseForStrategy(this.strategy);
181
+ this.masterKey = deriveMasterKey(passphrase, this.salt);
182
+ }
183
+ async tryKeychainStrategy() {
184
+ try {
185
+ const keytar = await import('keytar');
186
+ let stored = await keytar.getPassword(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT);
187
+ if (!stored) {
188
+ stored = crypto.randomBytes(32).toString("base64");
189
+ await keytar.setPassword(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT, stored);
190
+ }
191
+ return true;
192
+ } catch {
193
+ return false;
194
+ }
195
+ }
196
+ async getPassphraseForStrategy(strategy) {
197
+ switch (strategy) {
198
+ case "keychain": {
199
+ try {
200
+ const keytar = await import('keytar');
201
+ const stored = await keytar.getPassword(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT);
202
+ if (stored) return stored;
203
+ } catch {
204
+ }
205
+ return getMachinePassphrase();
206
+ }
207
+ case "passphrase": {
208
+ const envPassphrase = process.env[PASSPHRASE_ENV];
209
+ if (envPassphrase) {
210
+ const masterPath = path.join(this.secretsDir, ".master");
211
+ if (fs.existsSync(masterPath)) {
212
+ const storedHash = fs.readFileSync(masterPath, "utf-8").trim();
213
+ if (hashPassphrase(envPassphrase) !== storedHash) {
214
+ throw new SecretsError(
215
+ `Passphrase from ${PASSPHRASE_ENV} does not match stored hash. Use skaile auth set-key-strategy passphrase to reset.`,
216
+ "PASSPHRASE_MISMATCH"
217
+ );
218
+ }
219
+ }
220
+ return envPassphrase;
221
+ }
222
+ throw new SecretsError(
223
+ `Strategy is "passphrase" but ${PASSPHRASE_ENV} is not set. Export it before running: export ${PASSPHRASE_ENV}='...'`,
224
+ "PASSPHRASE_REQUIRED"
225
+ );
226
+ }
227
+ case "machine":
228
+ return getMachinePassphrase();
229
+ default:
230
+ return getMachinePassphrase();
231
+ }
232
+ }
233
+ // -- Strategy management ---------------------------------------------------
234
+ /**
235
+ * Set the key strategy explicitly. Called by `skaile auth set-key-strategy`.
236
+ *
237
+ * When existing secrets are present, they are re-encrypted with the new key
238
+ * to prevent data loss from key mismatch.
239
+ */
240
+ async setKeyStrategy(strategy, passphrase) {
241
+ this.ensureDir();
242
+ const effectivePassphrase = passphrase ?? process.env[PASSPHRASE_ENV];
243
+ if (strategy === "passphrase") {
244
+ if (!effectivePassphrase) {
245
+ throw new SecretsError(
246
+ `Passphrase required. Pass it as an argument or set ${PASSPHRASE_ENV}.`,
247
+ "PASSPHRASE_REQUIRED"
248
+ );
249
+ }
250
+ }
251
+ if (strategy === "keychain") {
252
+ const success = await this.tryKeychainStrategy();
253
+ if (!success) {
254
+ throw new ProviderUnavailableError("local", "OS keychain not available");
255
+ }
256
+ }
257
+ const encFiles = this.listEncFiles();
258
+ if (encFiles.length > 0) {
259
+ await this.ensureKey();
260
+ const oldKey = this.masterKey;
261
+ const salt = this.salt;
262
+ const newPassphrase = strategy === "passphrase" ? effectivePassphrase : strategy === "keychain" ? await this.getPassphraseForStrategy("keychain") : getMachinePassphrase();
263
+ const newKey = deriveMasterKey(newPassphrase, salt);
264
+ for (const encFile of encFiles) {
265
+ const filePath = path.join(this.secretsDir, encFile);
266
+ const blob = fs.readFileSync(filePath);
267
+ try {
268
+ const plaintext = decrypt(blob, oldKey);
269
+ const reEncrypted = encrypt(plaintext, newKey);
270
+ fs.writeFileSync(filePath, reEncrypted, { mode: 384 });
271
+ } catch {
272
+ process.stderr.write(
273
+ `[skaile/secrets] Warning: could not re-encrypt ${encFile}. It may need to be re-created.
274
+ `
275
+ );
276
+ }
277
+ }
278
+ }
279
+ if (strategy === "passphrase") {
280
+ const masterPath = path.join(this.secretsDir, ".master");
281
+ fs.writeFileSync(masterPath, hashPassphrase(effectivePassphrase), { mode: 384 });
282
+ }
283
+ const strategyPath = path.join(this.secretsDir, ".key-strategy");
284
+ fs.writeFileSync(strategyPath, strategy, { mode: 384 });
285
+ this.masterKey = null;
286
+ this.strategy = strategy;
287
+ }
288
+ getKeyStrategy() {
289
+ const strategyPath = path.join(this.secretsDir, ".key-strategy");
290
+ if (fs.existsSync(strategyPath)) {
291
+ return fs.readFileSync(strategyPath, "utf-8").trim();
292
+ }
293
+ return "machine";
294
+ }
295
+ // -- File helpers ----------------------------------------------------------
296
+ encFilename(ref) {
297
+ return `${refToHash(ref)}.enc`;
298
+ }
299
+ metaFilename(ref) {
300
+ return `${refToHash(ref)}.meta.json`;
301
+ }
302
+ metaPath(ref) {
303
+ return path.join(this.secretsDir, this.metaFilename(ref));
304
+ }
305
+ listEncFiles() {
306
+ if (!fs.existsSync(this.secretsDir)) return [];
307
+ return fs.readdirSync(this.secretsDir).filter((f) => f.endsWith(".enc"));
308
+ }
309
+ // -- ISecretsProvider implementation ----------------------------------------
310
+ async getSecret(ref) {
311
+ await this.ensureKey();
312
+ const filePath = path.join(this.secretsDir, this.encFilename(ref));
313
+ if (!fs.existsSync(filePath)) {
314
+ throw new SecretNotFoundError(ref);
315
+ }
316
+ const blob = fs.readFileSync(filePath);
317
+ const decrypted = decrypt(blob, this.masterKey);
318
+ const metaFile = this.metaPath(ref);
319
+ if (fs.existsSync(metaFile)) {
320
+ try {
321
+ const meta = JSON.parse(fs.readFileSync(metaFile, "utf-8"));
322
+ meta.lastAccessedAt = (/* @__PURE__ */ new Date()).toISOString();
323
+ fs.writeFileSync(metaFile, JSON.stringify(meta), { mode: 384 });
324
+ } catch {
325
+ }
326
+ }
327
+ return new Uint8Array(decrypted);
328
+ }
329
+ async setSecret(ref, value, opts) {
330
+ await this.ensureKey();
331
+ this.ensureDir();
332
+ const filePath = path.join(this.secretsDir, this.encFilename(ref));
333
+ const encrypted = encrypt(value, this.masterKey);
334
+ fs.writeFileSync(filePath, encrypted, { mode: 384 });
335
+ const now = (/* @__PURE__ */ new Date()).toISOString();
336
+ const metaFile = this.metaPath(ref);
337
+ let existing = {};
338
+ if (fs.existsSync(metaFile)) {
339
+ try {
340
+ existing = JSON.parse(fs.readFileSync(metaFile, "utf-8"));
341
+ } catch {
342
+ }
343
+ }
344
+ const meta = {
345
+ ref,
346
+ createdAt: existing.createdAt ?? now,
347
+ updatedAt: now,
348
+ lastAccessedAt: now,
349
+ ...opts?.metadata ? { userMeta: opts.metadata } : {},
350
+ ...opts?.ttlSeconds ? { expiresAt: new Date(Date.now() + opts.ttlSeconds * 1e3).toISOString() } : {}
351
+ };
352
+ fs.writeFileSync(metaFile, JSON.stringify(meta, null, 2), { mode: 384 });
353
+ }
354
+ async deleteSecret(ref) {
355
+ const filePath = path.join(this.secretsDir, this.encFilename(ref));
356
+ const metaFile = this.metaPath(ref);
357
+ if (!fs.existsSync(filePath)) {
358
+ throw new SecretNotFoundError(ref);
359
+ }
360
+ fs.unlinkSync(filePath);
361
+ if (fs.existsSync(metaFile)) {
362
+ fs.unlinkSync(metaFile);
363
+ }
364
+ }
365
+ async listSecrets(filter) {
366
+ this.ensureDir();
367
+ const metaFiles = fs.readdirSync(this.secretsDir).filter((f) => f.endsWith(".meta.json"));
368
+ let refs = [];
369
+ for (const mf of metaFiles) {
370
+ try {
371
+ const meta = JSON.parse(fs.readFileSync(path.join(this.secretsDir, mf), "utf-8"));
372
+ if (meta.ref) refs.push(meta.ref);
373
+ } catch {
374
+ }
375
+ }
376
+ if (filter?.prefix) {
377
+ refs = refs.filter((r) => r.startsWith(filter.prefix));
378
+ }
379
+ if (filter?.limit) {
380
+ refs = refs.slice(0, filter.limit);
381
+ }
382
+ return refs;
383
+ }
384
+ async testConnection() {
385
+ const start = Date.now();
386
+ try {
387
+ await this.ensureKey();
388
+ const testRef = `__test_${crypto.randomBytes(4).toString("hex")}`;
389
+ const testValue = new TextEncoder().encode("test");
390
+ await this.setSecret(testRef, testValue);
391
+ const read = await this.getSecret(testRef);
392
+ await this.deleteSecret(testRef);
393
+ if (new TextDecoder().decode(read) !== "test") {
394
+ return { ok: false, error: "Round-trip mismatch" };
395
+ }
396
+ return { ok: true, latencyMs: Date.now() - start };
397
+ } catch (e) {
398
+ return {
399
+ ok: false,
400
+ latencyMs: Date.now() - start,
401
+ error: e instanceof Error ? e.message : String(e)
402
+ };
403
+ }
404
+ }
405
+ async getMetadata(ref) {
406
+ const metaFile = this.metaPath(ref);
407
+ const filePath = path.join(this.secretsDir, this.encFilename(ref));
408
+ if (!fs.existsSync(filePath)) {
409
+ throw new SecretNotFoundError(ref);
410
+ }
411
+ if (fs.existsSync(metaFile)) {
412
+ const raw = JSON.parse(fs.readFileSync(metaFile, "utf-8"));
413
+ return {
414
+ ref: raw.ref ?? ref,
415
+ createdAt: new Date(raw.createdAt),
416
+ updatedAt: new Date(raw.updatedAt),
417
+ lastAccessedAt: raw.lastAccessedAt ? new Date(raw.lastAccessedAt) : void 0,
418
+ owner: raw.owner,
419
+ scopeSummary: "local encrypted file"
420
+ };
421
+ }
422
+ const stat = fs.statSync(filePath);
423
+ return {
424
+ ref,
425
+ createdAt: stat.birthtime,
426
+ updatedAt: stat.mtime,
427
+ scopeSummary: "local encrypted file"
428
+ };
429
+ }
430
+ getCapabilities() {
431
+ return {
432
+ supportsRotation: false,
433
+ supportsExpiry: false,
434
+ supportsBatch: false,
435
+ scopeModel: "flat"
436
+ };
437
+ }
438
+ };
439
+
440
+ // secrets/src/providers/env.ts
441
+ var EnvSecretsProvider = class {
442
+ id = "env";
443
+ async getSecret(ref) {
444
+ const value = process.env[ref];
445
+ if (value === void 0) {
446
+ throw new SecretNotFoundError(ref);
447
+ }
448
+ return new TextEncoder().encode(value);
449
+ }
450
+ async setSecret(_ref, _value, _opts) {
451
+ throw new SecretAccessDeniedError("EnvSecretsProvider is read-only");
452
+ }
453
+ async deleteSecret(_ref) {
454
+ throw new SecretAccessDeniedError("EnvSecretsProvider is read-only");
455
+ }
456
+ async listSecrets(filter) {
457
+ let keys = Object.keys(process.env);
458
+ if (filter?.prefix) {
459
+ keys = keys.filter((k) => k.startsWith(filter.prefix));
460
+ }
461
+ if (filter?.limit) {
462
+ keys = keys.slice(0, filter.limit);
463
+ }
464
+ return keys;
465
+ }
466
+ async testConnection() {
467
+ return { ok: true, latencyMs: 0 };
468
+ }
469
+ async getMetadata(ref) {
470
+ const value = process.env[ref];
471
+ if (value === void 0) {
472
+ throw new SecretNotFoundError(ref);
473
+ }
474
+ const now = /* @__PURE__ */ new Date();
475
+ return {
476
+ ref,
477
+ createdAt: now,
478
+ updatedAt: now,
479
+ scopeSummary: "environment variable (read-only)"
480
+ };
481
+ }
482
+ getCapabilities() {
483
+ return {
484
+ supportsRotation: false,
485
+ supportsExpiry: false,
486
+ supportsBatch: false,
487
+ scopeModel: "flat"
488
+ };
489
+ }
490
+ };
491
+
492
+ // secrets/src/lifecycle.ts
493
+ var DEFAULT_CONFIG = {
494
+ refreshLeadTimeSec: 300
495
+ // 5 minutes
496
+ };
497
+ var CredentialLifecycleService = class {
498
+ router;
499
+ config;
500
+ constructor(router, config) {
501
+ this.router = router;
502
+ this.config = { ...DEFAULT_CONFIG, ...config };
503
+ }
504
+ /**
505
+ * Attempt to refresh a credential if needed.
506
+ * Phase 1: always returns not_applicable (no OAuth support yet).
507
+ */
508
+ async refreshIfNeeded(credentialRef) {
509
+ try {
510
+ await this.router.getMetadata(credentialRef);
511
+ return { refreshed: false, reason: "not_applicable" };
512
+ } catch {
513
+ return { refreshed: false, reason: "refresh_failed", error: "Credential not found" };
514
+ }
515
+ }
516
+ /**
517
+ * Check if a credential is still valid (not expired).
518
+ * Phase 1: always returns true for non-OAuth credentials.
519
+ */
520
+ async isValid(credentialRef) {
521
+ try {
522
+ await this.router.getSecret(credentialRef);
523
+ return true;
524
+ } catch {
525
+ return false;
526
+ }
527
+ }
528
+ };
529
+
530
+ // secrets/src/index.ts
531
+ var VERSION = "0.0.0";
532
+
533
+ export { CredentialLifecycleService, EnvSecretsProvider, LocalSecretsProvider, SecretsRouter, VERSION };
534
+ //# sourceMappingURL=chunk-JDX54X4Y.js.map
535
+ //# sourceMappingURL=chunk-JDX54X4Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../secrets/src/router.ts","../secrets/src/providers/local.ts","../secrets/src/providers/env.ts","../secrets/src/lifecycle.ts","../secrets/src/index.ts"],"names":["provider"],"mappings":";;;;;;;AAyFO,IAAM,gBAAN,MAAoB;AAAA,EACjB,SAAA,uBAAgB,GAAA,EAA8B;AAAA,EAC9C,MAAA;AAAA,EACA,QAAqB,EAAC;AAAA;AAAA,EAG9B,eAAA;AAAA,EACA,cAAA;AAAA,EAEA,YAAY,MAAA,EAA6B;AACvC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA;AAAA,EAIA,SAAS,QAAA,EAAkC;AACzC,IAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,QAAA,CAAS,EAAA,EAAI,QAAQ,CAAA;AAAA,EAC1C;AAAA,EAEA,WAAW,EAAA,EAAkB;AAC3B,IAAA,IAAA,CAAK,SAAA,CAAU,OAAO,EAAE,CAAA;AAAA,EAC1B;AAAA,EAEA,aAAA,GAA0B;AACxB,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA;AAAA,EAClC;AAAA;AAAA,EAIA,QAAQ,IAAA,EAAuB;AAC7B,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACtB;AAAA,EAEQ,IAAA,CAAK,GAAA,EAAa,SAAA,EAA4C,UAAA,EAA0B;AAC9F,IAAA,MAAM,KAAA,GAA4B;AAAA,MAChC,cAAA,EAAgB,GAAA;AAAA,MAChB,SAAA;AAAA,MACA,WAAA,EAAa,UAAA;AAAA,MACb,mBAAmB,IAAA,CAAK,eAAA;AAAA,MACxB,kBAAkB,IAAA,CAAK,cAAA;AAAA,MACvB,SAAA,sBAAe,IAAA;AAAK,KACtB;AACA,IAAA,KAAA,MAAW,IAAA,IAAQ,KAAK,KAAA,EAAO;AAC7B,MAAA,IAAI;AACF,QAAA,IAAA,CAAK,KAAK,CAAA;AAAA,MACZ,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAIQ,QAAQ,GAAA,EAA+B;AAE7C,IAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO;AACrB,MAAA,KAAA,MAAW,IAAA,IAAQ,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO;AACpC,QAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAA,CAAK,MAAM,CAAA,EAAG;AAC/B,UAAA,MAAMA,SAAAA,GAAW,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,KAAK,WAAW,CAAA;AACpD,UAAA,IAAIA,WAAU,OAAOA,SAAAA;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAGA,IAAA,MAAM,WAAW,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,IAAA,CAAK,OAAO,gBAAgB,CAAA;AAChE,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,MAAM,IAAI,wBAAA;AAAA,QACR,KAAK,MAAA,CAAO,gBAAA;AAAA,QACZ,CAAA,uCAAA,EAA0C,IAAA,CAAK,MAAA,CAAO,gBAAgB,CAAA,CAAA;AAAA,OACxE;AAAA,IACF;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAAA;AAAA,EAIA,MAAM,UAAU,GAAA,EAAkC;AAChD,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACjC,IAAA,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,KAAA,EAAO,QAAA,CAAS,EAAE,CAAA;AACjC,IAAA,OAAO,QAAA,CAAS,UAAU,GAAG,CAAA;AAAA,EAC/B;AAAA,EAEA,MAAM,SAAA,CAAU,GAAA,EAAa,KAAA,EAAmB,IAAA,EAAwC;AACtF,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACjC,IAAA,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,KAAA,EAAO,QAAA,CAAS,EAAE,CAAA;AACjC,IAAA,OAAO,QAAA,CAAS,SAAA,CAAU,GAAA,EAAK,KAAA,EAAO,IAAI,CAAA;AAAA,EAC5C;AAAA,EAEA,MAAM,aAAa,GAAA,EAA4B;AAC7C,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACjC,IAAA,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,QAAA,EAAU,QAAA,CAAS,EAAE,CAAA;AACpC,IAAA,OAAO,QAAA,CAAS,aAAa,GAAG,CAAA;AAAA,EAClC;AAAA,EAEA,MAAM,YAAY,MAAA,EAAwC;AAIxD,IAAA,MAAM,WAAW,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,IAAA,CAAK,OAAO,gBAAgB,CAAA;AAChE,IAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAC;AACvB,IAAA,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,MAAA,EAAQ,QAAA,CAAS,EAAE,CAAA;AAClC,IAAA,OAAO,QAAA,CAAS,YAAY,MAAM,CAAA;AAAA,EACpC;AAAA,EAEA,MAAM,YAAY,GAAA,EAAsC;AACtD,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACjC,IAAA,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,UAAA,EAAY,QAAA,CAAS,EAAE,CAAA;AACtC,IAAA,OAAO,QAAA,CAAS,YAAY,GAAG,CAAA;AAAA,EACjC;AAAA,EAEA,gBAAgB,UAAA,EAAkD;AAChE,IAAA,MAAM,EAAA,GAAK,UAAA,IAAc,IAAA,CAAK,MAAA,CAAO,gBAAA;AACrC,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,EAAE,CAAA;AACtC,IAAA,OAAO,QAAA,EAAU,iBAAgB,IAAK,IAAA;AAAA,EACxC;AAAA,EAEA,MAAM,eACJ,UAAA,EAC8D;AAC9D,IAAA,MAAM,EAAA,GAAK,UAAA,IAAc,IAAA,CAAK,MAAA,CAAO,gBAAA;AACrC,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,EAAE,CAAA;AACtC,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,KAAA,EAAO,CAAA,UAAA,EAAa,EAAE,CAAA,gBAAA,CAAA,EAAmB;AAAA,IAC/D;AACA,IAAA,OAAO,SAAS,cAAA,EAAe;AAAA,EACjC;AACF;ACrLA,IAAM,SAAA,GAAY,aAAA;AAClB,IAAM,SAAA,GAAY,EAAA;AAClB,IAAM,eAAA,GAAkB,EAAA;AACxB,IAAM,WAAA,GAAc,EAAA;AACpB,IAAM,UAAA,GAAa,EAAA;AACnB,IAAM,iBAAA,GAAoB,GAAA;AAC1B,IAAM,aAAA,GAAgB,QAAA;AAEtB,IAAM,gBAAA,GAAmB,gBAAA;AACzB,IAAM,gBAAA,GAAmB,YAAA;AAGzB,IAAM,cAAA,GAAiB,2BAAA;AAoBvB,SAAS,eAAA,CAAgB,YAAoB,IAAA,EAAsB;AACjE,EAAA,OAAc,MAAA,CAAA,UAAA,CAAW,UAAA,EAAY,IAAA,EAAM,iBAAA,EAAmB,YAAY,aAAa,CAAA;AACzF;AAEA,SAAS,oBAAA,GAA+B;AAEtC,EAAA,OAAO,UAAa,EAAA,CAAA,QAAA,EAAU,CAAA,CAAA,EAAO,EAAA,CAAA,QAAA,GAAW,QAAQ,CAAA,CAAA;AAC1D;AAGA,SAAS,eAAe,UAAA,EAA4B;AAClD,EAAA,OAAc,kBAAW,QAAQ,CAAA,CAAE,OAAO,UAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AACpE;AAMA,SAAS,UAAU,GAAA,EAAqB;AACtC,EAAA,OAAc,MAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,CAAE,MAAA,CAAO,GAAG,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC1E;AAMA,SAAS,OAAA,CAAQ,MAAkB,GAAA,EAAqB;AACtD,EAAA,MAAM,EAAA,GAAY,mBAAY,SAAS,CAAA;AACvC,EAAA,MAAM,MAAA,GAAgB,sBAAe,SAAA,EAAW,GAAA,EAAK,IAAI,EAAE,aAAA,EAAe,iBAAiB,CAAA;AAC3F,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,MAAA,CAAO,CAAC,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,CAAC,CAAA;AACrE,EAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,EAAA,OAAO,OAAO,MAAA,CAAO,CAAC,EAAA,EAAI,OAAA,EAAS,SAAS,CAAC,CAAA;AAC/C;AAEA,SAAS,OAAA,CAAQ,MAAc,GAAA,EAAqB;AAClD,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,QAAA,CAAS,CAAA,EAAG,SAAS,CAAA;AACrC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,QAAA,CAAS,SAAA,EAAW,YAAY,eAAe,CAAA;AACpE,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,SAAA,GAAY,eAAe,CAAA;AAC5D,EAAA,MAAM,QAAA,GAAkB,wBAAiB,SAAA,EAAW,GAAA,EAAK,IAAI,EAAE,aAAA,EAAe,iBAAiB,CAAA;AAC/F,EAAA,QAAA,CAAS,WAAW,OAAO,CAAA;AAC3B,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,CAAC,QAAA,CAAS,MAAA,CAAO,UAAU,CAAA,EAAG,QAAA,CAAS,KAAA,EAAO,CAAC,CAAA;AACtE;AAMO,IAAM,uBAAN,MAAuD;AAAA,EACnD,EAAA,GAAK,OAAA;AAAA,EACN,UAAA;AAAA,EACA,SAAA,GAA2B,IAAA;AAAA,EAC3B,IAAA,GAAsB,IAAA;AAAA,EACtB,QAAA,GAAwB,SAAA;AAAA,EAEhC,YAAY,UAAA,EAAqB;AAC/B,IAAA,IAAA,CAAK,aAAa,UAAA,IAAmB,IAAA,CAAA,IAAA,CAAQ,EAAA,CAAA,OAAA,EAAQ,EAAG,WAAW,SAAS,CAAA;AAAA,EAC9E;AAAA;AAAA,EAIQ,SAAA,GAAkB;AACxB,IAAA,IAAI,CAAI,EAAA,CAAA,UAAA,CAAW,IAAA,CAAK,UAAU,CAAA,EAAG;AACnC,MAAG,EAAA,CAAA,SAAA,CAAU,KAAK,UAAA,EAAY,EAAE,WAAW,IAAA,EAAM,IAAA,EAAM,KAAO,CAAA;AAAA,IAChE;AAAA,EACF;AAAA,EAEQ,gBAAA,GAA2B;AACjC,IAAA,MAAM,QAAA,GAAgB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,OAAO,CAAA;AACnD,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC3B,MAAA,OAAU,gBAAa,QAAQ,CAAA;AAAA,IACjC;AACA,IAAA,MAAM,IAAA,GAAc,mBAAY,WAAW,CAAA;AAC3C,IAAG,iBAAc,QAAA,EAAU,IAAA,EAAM,EAAE,IAAA,EAAM,KAAO,CAAA;AAChD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAc,SAAA,GAA2B;AACvC,IAAA,IAAI,KAAK,SAAA,EAAW;AAEpB,IAAA,IAAA,CAAK,SAAA,EAAU;AACf,IAAA,IAAA,CAAK,IAAA,GAAO,KAAK,gBAAA,EAAiB;AAGlC,IAAA,MAAM,YAAA,GAAoB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,eAAe,CAAA;AAC/D,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,YAAY,CAAA,EAAG;AAC/B,MAAA,IAAA,CAAK,QAAA,GAAc,EAAA,CAAA,YAAA,CAAa,YAAA,EAAc,OAAO,EAAE,IAAA,EAAK;AAAA,IAC9D,CAAA,MAAO;AAEL,MAAA,IAAA,CAAK,QAAA,GAAY,MAAM,IAAA,CAAK,mBAAA,KAAyB,UAAA,GAAa,SAAA;AAClE,MAAG,iBAAc,YAAA,EAAc,IAAA,CAAK,UAAU,EAAE,IAAA,EAAM,KAAO,CAAA;AAAA,IAC/D;AAGA,IAAA,MAAM,UAAA,GAAa,MAAM,IAAA,CAAK,wBAAA,CAAyB,KAAK,QAAQ,CAAA;AACpE,IAAA,IAAA,CAAK,SAAA,GAAY,eAAA,CAAgB,UAAA,EAAY,IAAA,CAAK,IAAI,CAAA;AAAA,EACxD;AAAA,EAEA,MAAc,mBAAA,GAAwC;AACpD,IAAA,IAAI;AAGF,MAAA,MAAM,MAAA,GAAS,MAAM,OAAO,QAAkB,CAAA;AAC9C,MAAA,IAAI,MAAA,GAAS,MAAM,MAAA,CAAO,WAAA,CAAY,kBAAkB,gBAAgB,CAAA;AACxE,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAA,GAAgB,MAAA,CAAA,WAAA,CAAY,EAAE,CAAA,CAAE,QAAA,CAAS,QAAQ,CAAA;AACjD,QAAA,MAAM,MAAA,CAAO,WAAA,CAAY,gBAAA,EAAkB,gBAAA,EAAkB,MAAM,CAAA;AAAA,MACrE;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAc,yBAAyB,QAAA,EAAwC;AAC7E,IAAA,QAAQ,QAAA;AAAU,MAChB,KAAK,UAAA,EAAY;AACf,QAAA,IAAI;AAGF,UAAA,MAAM,MAAA,GAAS,MAAM,OAAO,QAAkB,CAAA;AAC9C,UAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,WAAA,CAAY,kBAAkB,gBAAgB,CAAA;AAC1E,UAAA,IAAI,QAAQ,OAAO,MAAA;AAAA,QACrB,CAAA,CAAA,MAAQ;AAAA,QAER;AACA,QAAA,OAAO,oBAAA,EAAqB;AAAA,MAC9B;AAAA,MACA,KAAK,YAAA,EAAc;AACjB,QAAA,MAAM,aAAA,GAAgB,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA;AAChD,QAAA,IAAI,aAAA,EAAe;AAEjB,UAAA,MAAM,UAAA,GAAkB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,SAAS,CAAA;AACvD,UAAA,IAAO,EAAA,CAAA,UAAA,CAAW,UAAU,CAAA,EAAG;AAC7B,YAAA,MAAM,UAAA,GAAgB,EAAA,CAAA,YAAA,CAAa,UAAA,EAAY,OAAO,EAAE,IAAA,EAAK;AAC7D,YAAA,IAAI,cAAA,CAAe,aAAa,CAAA,KAAM,UAAA,EAAY;AAChD,cAAA,MAAM,IAAI,YAAA;AAAA,gBACR,mBAAmB,cAAc,CAAA,kFAAA,CAAA;AAAA,gBAEjC;AAAA,eACF;AAAA,YACF;AAAA,UACF;AACA,UAAA,OAAO,aAAA;AAAA,QACT;AAIA,QAAA,MAAM,IAAI,YAAA;AAAA,UACR,CAAA,6BAAA,EAAgC,cAAc,CAAA,8CAAA,EACR,cAAc,CAAA,MAAA,CAAA;AAAA,UACpD;AAAA,SACF;AAAA,MACF;AAAA,MACA,KAAK,SAAA;AACH,QAAA,OAAO,oBAAA,EAAqB;AAAA,MAC9B;AACE,QAAA,OAAO,oBAAA,EAAqB;AAAA;AAChC,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,cAAA,CAAe,QAAA,EAAuB,UAAA,EAAoC;AAC9E,IAAA,IAAA,CAAK,SAAA,EAAU;AAIf,IAAA,MAAM,mBAAA,GAAsB,UAAA,IAAc,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA;AAEpE,IAAA,IAAI,aAAa,YAAA,EAAc;AAC7B,MAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,QAAA,MAAM,IAAI,YAAA;AAAA,UACR,sDAAsD,cAAc,CAAA,CAAA,CAAA;AAAA,UACpE;AAAA,SACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAI,aAAa,UAAA,EAAY;AAC3B,MAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,mBAAA,EAAoB;AAC/C,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,wBAAA,CAAyB,OAAA,EAAS,2BAA2B,CAAA;AAAA,MACzE;AAAA,IACF;AAOA,IAAA,MAAM,QAAA,GAAW,KAAK,YAAA,EAAa;AACnC,IAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AACvB,MAAA,MAAM,KAAK,SAAA,EAAU;AACrB,MAAA,MAAM,SAAS,IAAA,CAAK,SAAA;AAGpB,MAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAClB,MAAA,MAAM,aAAA,GACJ,QAAA,KAAa,YAAA,GACT,mBAAA,GACA,QAAA,KAAa,UAAA,GACX,MAAM,IAAA,CAAK,wBAAA,CAAyB,UAAU,CAAA,GAC9C,oBAAA,EAAqB;AAC7B,MAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,aAAA,EAAe,IAAI,CAAA;AAGlD,MAAA,KAAA,MAAW,WAAW,QAAA,EAAU;AAC9B,QAAA,MAAM,QAAA,GAAgB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,OAAO,CAAA;AACnD,QAAA,MAAM,IAAA,GAAU,gBAAa,QAAQ,CAAA;AACrC,QAAA,IAAI;AACF,UAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA;AACtC,UAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,SAAA,EAAW,MAAM,CAAA;AAC7C,UAAG,iBAAc,QAAA,EAAU,WAAA,EAAa,EAAE,IAAA,EAAM,KAAO,CAAA;AAAA,QACzD,CAAA,CAAA,MAAQ;AACN,UAAA,OAAA,CAAQ,MAAA,CAAO,KAAA;AAAA,YACb,kDAAkD,OAAO,CAAA;AAAA;AAAA,WAE3D;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAKA,IAAA,IAAI,aAAa,YAAA,EAAc;AAC7B,MAAA,MAAM,UAAA,GAAkB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,SAAS,CAAA;AACvD,MAAG,EAAA,CAAA,aAAA,CAAc,YAAY,cAAA,CAAe,mBAAoB,GAAG,EAAE,IAAA,EAAM,KAAO,CAAA;AAAA,IACpF;AAEA,IAAA,MAAM,YAAA,GAAoB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,eAAe,CAAA;AAC/D,IAAG,iBAAc,YAAA,EAAc,QAAA,EAAU,EAAE,IAAA,EAAM,KAAO,CAAA;AACxD,IAAA,IAAA,CAAK,SAAA,GAAY,IAAA;AACjB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAAA,EAClB;AAAA,EAEA,cAAA,GAA8B;AAC5B,IAAA,MAAM,YAAA,GAAoB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,eAAe,CAAA;AAC/D,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,YAAY,CAAA,EAAG;AAC/B,MAAA,OAAU,EAAA,CAAA,YAAA,CAAa,YAAA,EAAc,OAAO,CAAA,CAAE,IAAA,EAAK;AAAA,IACrD;AACA,IAAA,OAAO,SAAA;AAAA,EACT;AAAA;AAAA,EAIQ,YAAY,GAAA,EAAqB;AACvC,IAAA,OAAO,CAAA,EAAG,SAAA,CAAU,GAAG,CAAC,CAAA,IAAA,CAAA;AAAA,EAC1B;AAAA,EAEQ,aAAa,GAAA,EAAqB;AACxC,IAAA,OAAO,CAAA,EAAG,SAAA,CAAU,GAAG,CAAC,CAAA,UAAA,CAAA;AAAA,EAC1B;AAAA,EAEQ,SAAS,GAAA,EAAqB;AACpC,IAAA,OAAY,UAAK,IAAA,CAAK,UAAA,EAAY,IAAA,CAAK,YAAA,CAAa,GAAG,CAAC,CAAA;AAAA,EAC1D;AAAA,EAEQ,YAAA,GAAyB;AAC/B,IAAA,IAAI,CAAI,EAAA,CAAA,UAAA,CAAW,IAAA,CAAK,UAAU,CAAA,SAAU,EAAC;AAC7C,IAAA,OAAU,EAAA,CAAA,WAAA,CAAY,IAAA,CAAK,UAAU,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,EACzE;AAAA;AAAA,EAIA,MAAM,UAAU,GAAA,EAAkC;AAChD,IAAA,MAAM,KAAK,SAAA,EAAU;AACrB,IAAA,MAAM,WAAgB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,CAAY,GAAG,CAAC,CAAA;AACjE,IAAA,IAAI,CAAI,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC5B,MAAA,MAAM,IAAI,oBAAoB,GAAG,CAAA;AAAA,IACnC;AACA,IAAA,MAAM,IAAA,GAAU,gBAAa,QAAQ,CAAA;AACrC,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,IAAA,EAAM,IAAA,CAAK,SAAU,CAAA;AAG/C,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA;AAClC,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC3B,MAAA,IAAI;AACF,QAAA,MAAM,OAAO,IAAA,CAAK,KAAA,CAAS,EAAA,CAAA,YAAA,CAAa,QAAA,EAAU,OAAO,CAAC,CAAA;AAC1D,QAAA,IAAA,CAAK,cAAA,GAAA,iBAAiB,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAC7C,QAAG,EAAA,CAAA,aAAA,CAAc,UAAU,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,EAAG,EAAE,IAAA,EAAM,GAAA,EAAO,CAAA;AAAA,MAClE,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AAEA,IAAA,OAAO,IAAI,WAAW,SAAS,CAAA;AAAA,EACjC;AAAA,EAEA,MAAM,SAAA,CAAU,GAAA,EAAa,KAAA,EAAmB,IAAA,EAAwC;AACtF,IAAA,MAAM,KAAK,SAAA,EAAU;AACrB,IAAA,IAAA,CAAK,SAAA,EAAU;AACf,IAAA,MAAM,WAAgB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,CAAY,GAAG,CAAC,CAAA;AACjE,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,KAAA,EAAO,IAAA,CAAK,SAAU,CAAA;AAChD,IAAG,iBAAc,QAAA,EAAU,SAAA,EAAW,EAAE,IAAA,EAAM,KAAO,CAAA;AAGrD,IAAA,MAAM,GAAA,GAAA,iBAAM,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AACnC,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA;AAClC,IAAA,IAAI,WAAoC,EAAC;AACzC,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC3B,MAAA,IAAI;AACF,QAAA,QAAA,GAAW,IAAA,CAAK,KAAA,CAAS,EAAA,CAAA,YAAA,CAAa,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,MAC1D,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AACA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,GAAA;AAAA,MACA,SAAA,EAAW,SAAS,SAAA,IAAa,GAAA;AAAA,MACjC,SAAA,EAAW,GAAA;AAAA,MACX,cAAA,EAAgB,GAAA;AAAA,MAChB,GAAI,MAAM,QAAA,GAAW,EAAE,UAAU,IAAA,CAAK,QAAA,KAAa,EAAC;AAAA,MACpD,GAAI,IAAA,EAAM,UAAA,GACN,EAAE,SAAA,EAAW,IAAI,IAAA,CAAK,IAAA,CAAK,GAAA,EAAI,GAAI,KAAK,UAAA,GAAa,GAAI,EAAE,WAAA,EAAY,KACvE;AAAC,KACP;AACA,IAAG,EAAA,CAAA,aAAA,CAAc,QAAA,EAAU,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAA,EAAG,EAAE,IAAA,EAAM,GAAA,EAAO,CAAA;AAAA,EAC3E;AAAA,EAEA,MAAM,aAAa,GAAA,EAA4B;AAC7C,IAAA,MAAM,WAAgB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,CAAY,GAAG,CAAC,CAAA;AACjE,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA;AAClC,IAAA,IAAI,CAAI,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC5B,MAAA,MAAM,IAAI,oBAAoB,GAAG,CAAA;AAAA,IACnC;AACA,IAAG,cAAW,QAAQ,CAAA;AACtB,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC3B,MAAG,cAAW,QAAQ,CAAA;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,MAAA,EAAwC;AACxD,IAAA,IAAA,CAAK,SAAA,EAAU;AAEf,IAAA,MAAM,SAAA,GAAe,EAAA,CAAA,WAAA,CAAY,IAAA,CAAK,UAAU,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,CAAS,YAAY,CAAC,CAAA;AACxF,IAAA,IAAI,OAAiB,EAAC;AACtB,IAAA,KAAA,MAAW,MAAM,SAAA,EAAW;AAC1B,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAS,EAAA,CAAA,YAAA,CAAkB,IAAA,CAAA,IAAA,CAAK,KAAK,UAAA,EAAY,EAAE,CAAA,EAAG,OAAO,CAAC,CAAA;AAChF,QAAA,IAAI,IAAA,CAAK,GAAA,EAAK,IAAA,CAAK,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,MAClC,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AACA,IAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,MAAA,IAAA,GAAO,IAAA,CAAK,OAAO,CAAC,CAAA,KAAM,EAAE,UAAA,CAAW,MAAA,CAAO,MAAO,CAAC,CAAA;AAAA,IACxD;AACA,IAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,MAAA,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA;AAAA,IACnC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,cAAA,GAA+E;AACnF,IAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,EAAI;AACvB,IAAA,IAAI;AACF,MAAA,MAAM,KAAK,SAAA,EAAU;AAErB,MAAA,MAAM,UAAU,CAAA,OAAA,EAAiB,MAAA,CAAA,WAAA,CAAY,CAAC,CAAA,CAAE,QAAA,CAAS,KAAK,CAAC,CAAA,CAAA;AAC/D,MAAA,MAAM,SAAA,GAAY,IAAI,WAAA,EAAY,CAAE,OAAO,MAAM,CAAA;AACjD,MAAA,MAAM,IAAA,CAAK,SAAA,CAAU,OAAA,EAAS,SAAS,CAAA;AACvC,MAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA;AACzC,MAAA,MAAM,IAAA,CAAK,aAAa,OAAO,CAAA;AAC/B,MAAA,IAAI,IAAI,WAAA,EAAY,CAAE,MAAA,CAAO,IAAI,MAAM,MAAA,EAAQ;AAC7C,QAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,KAAA,EAAO,qBAAA,EAAsB;AAAA,MACnD;AACA,MAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,WAAW,IAAA,CAAK,GAAA,KAAQ,KAAA,EAAM;AAAA,IACnD,SAAS,CAAA,EAAG;AACV,MAAA,OAAO;AAAA,QACL,EAAA,EAAI,KAAA;AAAA,QACJ,SAAA,EAAW,IAAA,CAAK,GAAA,EAAI,GAAI,KAAA;AAAA,QACxB,OAAO,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,OAAA,GAAU,OAAO,CAAC;AAAA,OAClD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,GAAA,EAAsC;AACtD,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA;AAClC,IAAA,MAAM,WAAgB,IAAA,CAAA,IAAA,CAAK,IAAA,CAAK,YAAY,IAAA,CAAK,WAAA,CAAY,GAAG,CAAC,CAAA;AACjE,IAAA,IAAI,CAAI,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC5B,MAAA,MAAM,IAAI,oBAAoB,GAAG,CAAA;AAAA,IACnC;AACA,IAAA,IAAO,EAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC3B,MAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAS,EAAA,CAAA,YAAA,CAAa,QAAA,EAAU,OAAO,CAAC,CAAA;AACzD,MAAA,OAAO;AAAA,QACL,GAAA,EAAK,IAAI,GAAA,IAAO,GAAA;AAAA,QAChB,SAAA,EAAW,IAAI,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA;AAAA,QACjC,SAAA,EAAW,IAAI,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA;AAAA,QACjC,gBAAgB,GAAA,CAAI,cAAA,GAAiB,IAAI,IAAA,CAAK,GAAA,CAAI,cAAc,CAAA,GAAI,MAAA;AAAA,QACpE,OAAO,GAAA,CAAI,KAAA;AAAA,QACX,YAAA,EAAc;AAAA,OAChB;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,GAAU,YAAS,QAAQ,CAAA;AACjC,IAAA,OAAO;AAAA,MACL,GAAA;AAAA,MACA,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,WAAW,IAAA,CAAK,KAAA;AAAA,MAChB,YAAA,EAAc;AAAA,KAChB;AAAA,EACF;AAAA,EAEA,eAAA,GAAwC;AACtC,IAAA,OAAO;AAAA,MACL,gBAAA,EAAkB,KAAA;AAAA,MAClB,cAAA,EAAgB,KAAA;AAAA,MAChB,aAAA,EAAe,KAAA;AAAA,MACf,UAAA,EAAY;AAAA,KACd;AAAA,EACF;AACF;;;ACldO,IAAM,qBAAN,MAAqD;AAAA,EACjD,EAAA,GAAK,KAAA;AAAA,EAEd,MAAM,UAAU,GAAA,EAAkC;AAChD,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAC7B,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,MAAM,IAAI,oBAAoB,GAAG,CAAA;AAAA,IACnC;AACA,IAAA,OAAO,IAAI,WAAA,EAAY,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,EACvC;AAAA,EAEA,MAAM,SAAA,CAAU,IAAA,EAAc,MAAA,EAAoB,KAAA,EAAyC;AACzF,IAAA,MAAM,IAAI,wBAAwB,iCAAiC,CAAA;AAAA,EACrE;AAAA,EAEA,MAAM,aAAa,IAAA,EAA6B;AAC9C,IAAA,MAAM,IAAI,wBAAwB,iCAAiC,CAAA;AAAA,EACrE;AAAA,EAEA,MAAM,YAAY,MAAA,EAAwC;AACxD,IAAA,IAAI,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AAClC,IAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,MAAA,IAAA,GAAO,IAAA,CAAK,OAAO,CAAC,CAAA,KAAM,EAAE,UAAA,CAAW,MAAA,CAAO,MAAO,CAAC,CAAA;AAAA,IACxD;AACA,IAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,MAAA,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA;AAAA,IACnC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,cAAA,GAA+E;AACnF,IAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,SAAA,EAAW,CAAA,EAAE;AAAA,EAClC;AAAA,EAEA,MAAM,YAAY,GAAA,EAAsC;AACtD,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAC7B,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,MAAM,IAAI,oBAAoB,GAAG,CAAA;AAAA,IACnC;AACA,IAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AACrB,IAAA,OAAO;AAAA,MACL,GAAA;AAAA,MACA,SAAA,EAAW,GAAA;AAAA,MACX,SAAA,EAAW,GAAA;AAAA,MACX,YAAA,EAAc;AAAA,KAChB;AAAA,EACF;AAAA,EAEA,eAAA,GAAwC;AACtC,IAAA,OAAO;AAAA,MACL,gBAAA,EAAkB,KAAA;AAAA,MAClB,cAAA,EAAgB,KAAA;AAAA,MAChB,aAAA,EAAe,KAAA;AAAA,MACf,UAAA,EAAY;AAAA,KACd;AAAA,EACF;AACF;;;ACrCA,IAAM,cAAA,GAA4C;AAAA,EAChD,kBAAA,EAAoB;AAAA;AACtB,CAAA;AAEO,IAAM,6BAAN,MAAiC;AAAA,EAC9B,MAAA;AAAA,EACA,MAAA;AAAA,EAER,WAAA,CAAY,QAAuB,MAAA,EAA6C;AAC9E,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,MAAA,GAAS,EAAE,GAAG,cAAA,EAAgB,GAAG,MAAA,EAAO;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBAAgB,aAAA,EAA+C;AAGnE,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,aAAa,CAAA;AAC3C,MAAA,OAAO,EAAE,SAAA,EAAW,KAAA,EAAO,MAAA,EAAQ,gBAAA,EAAiB;AAAA,IACtD,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,EAAE,SAAA,EAAW,KAAA,EAAO,MAAA,EAAQ,gBAAA,EAAkB,OAAO,sBAAA,EAAuB;AAAA,IACrF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAQ,aAAA,EAAyC;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,MAAA,CAAO,SAAA,CAAU,aAAa,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AACF;;;AC9EO,IAAM,OAAA,GAAU","file":"chunk-JDX54X4Y.js","sourcesContent":["/**\n * SecretsRouter — audit chokepoint for all secret operations.\n *\n * Registers {@link ISecretsProvider} implementations by id, routes credential refs by\n * prefix or via routing config, and emits {@link CredentialAccessed} events for every\n * get, set, delete, list, and metadata operation. Routing rules are evaluated top-to-bottom;\n * the first matching prefix wins and falls back to the configured default provider.\n *\n * @docLink packages/secrets/concepts#secrets-router\n */\n\nimport type {\n ISecretsProvider,\n SetSecretOptions,\n ListFilter,\n SecretMetadata,\n ProviderCapabilities,\n} from \"@skaile/workspaces/plugins\";\nimport { ProviderUnavailableError } from \"@skaile/workspaces/plugins\";\n\n// ---------------------------------------------------------------------------\n// Audit event\n// ---------------------------------------------------------------------------\n\n/**\n * Audit event emitted by {@link SecretsRouter} after every secret operation.\n *\n * Delivered synchronously to all registered {@link AuditSink} functions. Errors thrown\n * by sinks are swallowed to ensure they never break the underlying secret operation.\n *\n * @docLink packages/secrets/concepts#secrets-router\n */\nexport interface CredentialAccessed {\n credential_ref: string;\n operation: \"get\" | \"set\" | \"delete\" | \"list\" | \"metadata\";\n provider_id: string;\n caller_session_id?: string;\n caller_tool_call?: string;\n timestamp: Date;\n}\n\n/**\n * Callback function that receives {@link CredentialAccessed} audit events from {@link SecretsRouter}.\n *\n * Register sinks via `SecretsRouter.addSink()`. Sinks run synchronously after each operation;\n * exceptions are caught and suppressed so they cannot interrupt credential resolution.\n *\n * @docLink packages/secrets/concepts#secrets-router\n */\nexport type AuditSink = (event: CredentialAccessed) => void;\n\n// ---------------------------------------------------------------------------\n// Routing config\n// ---------------------------------------------------------------------------\n\n/**\n * A single routing rule that maps a credential ref prefix to a provider.\n *\n * Rules in {@link SecretsRouterConfig.rules} are evaluated top-to-bottom;\n * the first rule whose `prefix` matches the start of the credential ref wins.\n *\n * @docLink packages/secrets/concepts#secrets-router\n */\nexport interface RoutingRule {\n /** Prefix match on credential_ref. First match wins. */\n prefix: string;\n /** Provider id to route to. */\n provider_id: string;\n}\n\n/**\n * Configuration object for {@link SecretsRouter}.\n *\n * Specifies the default provider id used when no routing rule matches, and an optional\n * ordered list of {@link RoutingRule} entries for prefix-based routing.\n *\n * @docLink packages/secrets/concepts#secrets-router\n */\nexport interface SecretsRouterConfig {\n /** Default provider id when no routing rule matches. */\n default_provider: string;\n /** Ordered routing rules. Evaluated top-to-bottom; first prefix match wins. */\n rules?: RoutingRule[];\n}\n\n// ---------------------------------------------------------------------------\n// Router\n// ---------------------------------------------------------------------------\n\nexport class SecretsRouter {\n private providers = new Map<string, ISecretsProvider>();\n private config: SecretsRouterConfig;\n private sinks: AuditSink[] = [];\n\n /** Caller context for audit events (set per-request by the runner). */\n callerSessionId?: string;\n callerToolCall?: string;\n\n constructor(config: SecretsRouterConfig) {\n this.config = config;\n }\n\n // -- Provider registration ------------------------------------------------\n\n register(provider: ISecretsProvider): void {\n this.providers.set(provider.id, provider);\n }\n\n unregister(id: string): void {\n this.providers.delete(id);\n }\n\n listProviders(): string[] {\n return [...this.providers.keys()];\n }\n\n // -- Audit sinks -----------------------------------------------------------\n\n addSink(sink: AuditSink): void {\n this.sinks.push(sink);\n }\n\n private emit(ref: string, operation: CredentialAccessed[\"operation\"], providerId: string): void {\n const event: CredentialAccessed = {\n credential_ref: ref,\n operation,\n provider_id: providerId,\n caller_session_id: this.callerSessionId,\n caller_tool_call: this.callerToolCall,\n timestamp: new Date(),\n };\n for (const sink of this.sinks) {\n try {\n sink(event);\n } catch {\n // Audit sink errors must not break the secret operation.\n }\n }\n }\n\n // -- Routing ---------------------------------------------------------------\n\n private resolve(ref: string): ISecretsProvider {\n // Check routing rules first\n if (this.config.rules) {\n for (const rule of this.config.rules) {\n if (ref.startsWith(rule.prefix)) {\n const provider = this.providers.get(rule.provider_id);\n if (provider) return provider;\n }\n }\n }\n\n // Fall back to default\n const provider = this.providers.get(this.config.default_provider);\n if (!provider) {\n throw new ProviderUnavailableError(\n this.config.default_provider,\n `No provider registered for default id \"${this.config.default_provider}\"`,\n );\n }\n return provider;\n }\n\n // -- Delegated operations --------------------------------------------------\n\n async getSecret(ref: string): Promise<Uint8Array> {\n const provider = this.resolve(ref);\n this.emit(ref, \"get\", provider.id);\n return provider.getSecret(ref);\n }\n\n async setSecret(ref: string, value: Uint8Array, opts?: SetSecretOptions): Promise<void> {\n const provider = this.resolve(ref);\n this.emit(ref, \"set\", provider.id);\n return provider.setSecret(ref, value, opts);\n }\n\n async deleteSecret(ref: string): Promise<void> {\n const provider = this.resolve(ref);\n this.emit(ref, \"delete\", provider.id);\n return provider.deleteSecret(ref);\n }\n\n async listSecrets(filter?: ListFilter): Promise<string[]> {\n // List aggregates from the default provider only (per-provider listing\n // would require iterating all providers; deferred to Phase 3 with\n // federated catalogs).\n const provider = this.providers.get(this.config.default_provider);\n if (!provider) return [];\n this.emit(\"*\", \"list\", provider.id);\n return provider.listSecrets(filter);\n }\n\n async getMetadata(ref: string): Promise<SecretMetadata> {\n const provider = this.resolve(ref);\n this.emit(ref, \"metadata\", provider.id);\n return provider.getMetadata(ref);\n }\n\n getCapabilities(providerId?: string): ProviderCapabilities | null {\n const id = providerId ?? this.config.default_provider;\n const provider = this.providers.get(id);\n return provider?.getCapabilities() ?? null;\n }\n\n async testConnection(\n providerId?: string,\n ): Promise<{ ok: boolean; latencyMs?: number; error?: string }> {\n const id = providerId ?? this.config.default_provider;\n const provider = this.providers.get(id);\n if (!provider) {\n return { ok: false, error: `Provider \"${id}\" not registered` };\n }\n return provider.testConnection();\n }\n}\n","/**\n * LocalSecretsProvider — AES-256-GCM encrypted file-blob storage at `~/.skaile/secrets/`.\n *\n * Each secret is stored as a separate `.enc` file named by the SHA-256 hash of the ref\n * (collision-free, filesystem-safe). A companion `.meta.json` stores the original ref,\n * timestamps, and optional user metadata. The master key is derived via PBKDF2-SHA-512\n * from one of three {@link KeyStrategy} sources: OS keychain (keytar), a passphrase from\n * `SKAILE_SECRETS_PASSPHRASE`, or a machine-derived passphrase as last resort.\n * Switching strategies re-encrypts all existing secrets with the new key.\n *\n * @docLink packages/secrets/concepts#local-secrets-provider\n */\n\nimport * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport * as os from \"node:os\";\n\nimport type {\n ISecretsProvider,\n SecretMetadata,\n ProviderCapabilities,\n SetSecretOptions,\n ListFilter,\n} from \"@skaile/workspaces/plugins\";\nimport {\n SecretNotFoundError,\n ProviderUnavailableError,\n SecretsError,\n} from \"@skaile/workspaces/plugins\";\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst ALGORITHM = \"aes-256-gcm\";\nconst IV_LENGTH = 12;\nconst AUTH_TAG_LENGTH = 16;\nconst SALT_LENGTH = 32;\nconst KEY_LENGTH = 32;\nconst PBKDF2_ITERATIONS = 100_000;\nconst PBKDF2_DIGEST = \"sha512\";\n\nconst KEYCHAIN_SERVICE = \"skaile-secrets\";\nconst KEYCHAIN_ACCOUNT = \"master-key\";\n\n/** Env var that provides the passphrase at runtime (never stored on disk). */\nconst PASSPHRASE_ENV = \"SKAILE_SECRETS_PASSPHRASE\";\n\n/**\n * Master key derivation strategy used by {@link LocalSecretsProvider}.\n *\n * - `keychain` — OS keychain (via keytar); most secure, requires keytar to be installed.\n * - `passphrase` — PBKDF2 from `SKAILE_SECRETS_PASSPHRASE` env var; portable across machines.\n * - `machine` — deterministic from hostname + username; least secure, last-resort fallback.\n *\n * The active strategy is persisted in `~/.skaile/secrets/.key-strategy`. Switching strategies\n * re-encrypts all existing secrets with the new key.\n *\n * @docLink packages/secrets/concepts#local-secrets-provider\n */\nexport type KeyStrategy = \"keychain\" | \"passphrase\" | \"machine\";\n\n// ---------------------------------------------------------------------------\n// Key derivation\n// ---------------------------------------------------------------------------\n\nfunction deriveMasterKey(passphrase: string, salt: Buffer): Buffer {\n return crypto.pbkdf2Sync(passphrase, salt, PBKDF2_ITERATIONS, KEY_LENGTH, PBKDF2_DIGEST);\n}\n\nfunction getMachinePassphrase(): string {\n // Deterministic but not secret -- last resort only.\n return `skaile:${os.hostname()}:${os.userInfo().username}`;\n}\n\n/** Hash a passphrase for verification (stored in .master). */\nfunction hashPassphrase(passphrase: string): string {\n return crypto.createHash(\"sha256\").update(passphrase).digest(\"hex\");\n}\n\n// ---------------------------------------------------------------------------\n// Filename hashing (injective: sha256 of ref)\n// ---------------------------------------------------------------------------\n\nfunction refToHash(ref: string): string {\n return crypto.createHash(\"sha256\").update(ref).digest(\"hex\").slice(0, 40);\n}\n\n// ---------------------------------------------------------------------------\n// Encryption / decryption\n// ---------------------------------------------------------------------------\n\nfunction encrypt(data: Uint8Array, key: Buffer): Buffer {\n const iv = crypto.randomBytes(IV_LENGTH);\n const cipher = crypto.createCipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });\n const encrypted = Buffer.concat([cipher.update(data), cipher.final()]);\n const authTag = cipher.getAuthTag();\n // Format: [iv (12)] [authTag (16)] [ciphertext (...)]\n return Buffer.concat([iv, authTag, encrypted]);\n}\n\nfunction decrypt(blob: Buffer, key: Buffer): Buffer {\n const iv = blob.subarray(0, IV_LENGTH);\n const authTag = blob.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);\n const ciphertext = blob.subarray(IV_LENGTH + AUTH_TAG_LENGTH);\n const decipher = crypto.createDecipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });\n decipher.setAuthTag(authTag);\n return Buffer.concat([decipher.update(ciphertext), decipher.final()]);\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\nexport class LocalSecretsProvider implements ISecretsProvider {\n readonly id = \"local\";\n private secretsDir: string;\n private masterKey: Buffer | null = null;\n private salt: Buffer | null = null;\n private strategy: KeyStrategy = \"machine\";\n\n constructor(secretsDir?: string) {\n this.secretsDir = secretsDir ?? path.join(os.homedir(), \".skaile\", \"secrets\");\n }\n\n // -- Initialization --------------------------------------------------------\n\n private ensureDir(): void {\n if (!fs.existsSync(this.secretsDir)) {\n fs.mkdirSync(this.secretsDir, { recursive: true, mode: 0o700 });\n }\n }\n\n private loadOrCreateSalt(): Buffer {\n const saltPath = path.join(this.secretsDir, \".salt\");\n if (fs.existsSync(saltPath)) {\n return fs.readFileSync(saltPath);\n }\n const salt = crypto.randomBytes(SALT_LENGTH);\n fs.writeFileSync(saltPath, salt, { mode: 0o600 });\n return salt;\n }\n\n private async ensureKey(): Promise<void> {\n if (this.masterKey) return;\n\n this.ensureDir();\n this.salt = this.loadOrCreateSalt();\n\n // Determine strategy\n const strategyPath = path.join(this.secretsDir, \".key-strategy\");\n if (fs.existsSync(strategyPath)) {\n this.strategy = fs.readFileSync(strategyPath, \"utf-8\").trim() as KeyStrategy;\n } else {\n // Auto-detect: try keychain, fall back to machine\n this.strategy = (await this.tryKeychainStrategy()) ? \"keychain\" : \"machine\";\n fs.writeFileSync(strategyPath, this.strategy, { mode: 0o600 });\n }\n\n // Derive key from strategy\n const passphrase = await this.getPassphraseForStrategy(this.strategy);\n this.masterKey = deriveMasterKey(passphrase, this.salt);\n }\n\n private async tryKeychainStrategy(): Promise<boolean> {\n try {\n // `keytar` is an optional OS-keychain native module the user installs\n // themselves; the `as string` specifier keeps it out of tsc resolution.\n const keytar = await import(\"keytar\" as string);\n let stored = await keytar.getPassword(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT);\n if (!stored) {\n stored = crypto.randomBytes(32).toString(\"base64\");\n await keytar.setPassword(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT, stored);\n }\n return true;\n } catch {\n return false;\n }\n }\n\n private async getPassphraseForStrategy(strategy: KeyStrategy): Promise<string> {\n switch (strategy) {\n case \"keychain\": {\n try {\n // `keytar` is an optional OS-keychain native module the user installs\n // themselves; the `as string` specifier keeps it out of tsc resolution.\n const keytar = await import(\"keytar\" as string);\n const stored = await keytar.getPassword(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT);\n if (stored) return stored;\n } catch {\n // Keychain failed; fall through to machine\n }\n return getMachinePassphrase();\n }\n case \"passphrase\": {\n const envPassphrase = process.env[PASSPHRASE_ENV];\n if (envPassphrase) {\n // Verify against stored hash if it exists\n const masterPath = path.join(this.secretsDir, \".master\");\n if (fs.existsSync(masterPath)) {\n const storedHash = fs.readFileSync(masterPath, \"utf-8\").trim();\n if (hashPassphrase(envPassphrase) !== storedHash) {\n throw new SecretsError(\n `Passphrase from ${PASSPHRASE_ENV} does not match stored hash. ` +\n \"Use skaile auth set-key-strategy passphrase to reset.\",\n \"PASSPHRASE_MISMATCH\",\n );\n }\n }\n return envPassphrase;\n }\n // No env var -- hard error. Silent fallback to machine would\n // produce a different key, causing AES-GCM auth-tag failures\n // on secrets encrypted with the real passphrase.\n throw new SecretsError(\n `Strategy is \"passphrase\" but ${PASSPHRASE_ENV} is not set. ` +\n `Export it before running: export ${PASSPHRASE_ENV}='...'`,\n \"PASSPHRASE_REQUIRED\",\n );\n }\n case \"machine\":\n return getMachinePassphrase();\n default:\n return getMachinePassphrase();\n }\n }\n\n // -- Strategy management ---------------------------------------------------\n\n /**\n * Set the key strategy explicitly. Called by `skaile auth set-key-strategy`.\n *\n * When existing secrets are present, they are re-encrypted with the new key\n * to prevent data loss from key mismatch.\n */\n async setKeyStrategy(strategy: KeyStrategy, passphrase?: string): Promise<void> {\n this.ensureDir();\n\n // --- 1. Validate new strategy prerequisites -------------------------\n\n const effectivePassphrase = passphrase ?? process.env[PASSPHRASE_ENV];\n\n if (strategy === \"passphrase\") {\n if (!effectivePassphrase) {\n throw new SecretsError(\n `Passphrase required. Pass it as an argument or set ${PASSPHRASE_ENV}.`,\n \"PASSPHRASE_REQUIRED\",\n );\n }\n }\n\n if (strategy === \"keychain\") {\n const success = await this.tryKeychainStrategy();\n if (!success) {\n throw new ProviderUnavailableError(\"local\", \"OS keychain not available\");\n }\n }\n\n // --- 2. Load the OLD key under the current strategy -----------------\n // ensureKey() reads the current strategy file and derives the key\n // that was used to encrypt existing secrets. This is critical for\n // cross-process scenarios where masterKey starts as null.\n\n const encFiles = this.listEncFiles();\n if (encFiles.length > 0) {\n await this.ensureKey();\n const oldKey = this.masterKey!;\n\n // Derive the new key\n const salt = this.salt!;\n const newPassphrase =\n strategy === \"passphrase\"\n ? effectivePassphrase!\n : strategy === \"keychain\"\n ? await this.getPassphraseForStrategy(\"keychain\")\n : getMachinePassphrase();\n const newKey = deriveMasterKey(newPassphrase, salt);\n\n // Re-encrypt each secret with the new key\n for (const encFile of encFiles) {\n const filePath = path.join(this.secretsDir, encFile);\n const blob = fs.readFileSync(filePath);\n try {\n const plaintext = decrypt(blob, oldKey);\n const reEncrypted = encrypt(plaintext, newKey);\n fs.writeFileSync(filePath, reEncrypted, { mode: 0o600 });\n } catch {\n process.stderr.write(\n `[skaile/secrets] Warning: could not re-encrypt ${encFile}. ` +\n \"It may need to be re-created.\\n\",\n );\n }\n }\n }\n\n // --- 3. Commit the new strategy (last write -- failure above leaves\n // the old strategy intact) ------------------------------------\n\n if (strategy === \"passphrase\") {\n const masterPath = path.join(this.secretsDir, \".master\");\n fs.writeFileSync(masterPath, hashPassphrase(effectivePassphrase!), { mode: 0o600 });\n }\n\n const strategyPath = path.join(this.secretsDir, \".key-strategy\");\n fs.writeFileSync(strategyPath, strategy, { mode: 0o600 });\n this.masterKey = null;\n this.strategy = strategy;\n }\n\n getKeyStrategy(): KeyStrategy {\n const strategyPath = path.join(this.secretsDir, \".key-strategy\");\n if (fs.existsSync(strategyPath)) {\n return fs.readFileSync(strategyPath, \"utf-8\").trim() as KeyStrategy;\n }\n return \"machine\";\n }\n\n // -- File helpers ----------------------------------------------------------\n\n private encFilename(ref: string): string {\n return `${refToHash(ref)}.enc`;\n }\n\n private metaFilename(ref: string): string {\n return `${refToHash(ref)}.meta.json`;\n }\n\n private metaPath(ref: string): string {\n return path.join(this.secretsDir, this.metaFilename(ref));\n }\n\n private listEncFiles(): string[] {\n if (!fs.existsSync(this.secretsDir)) return [];\n return fs.readdirSync(this.secretsDir).filter((f) => f.endsWith(\".enc\"));\n }\n\n // -- ISecretsProvider implementation ----------------------------------------\n\n async getSecret(ref: string): Promise<Uint8Array> {\n await this.ensureKey();\n const filePath = path.join(this.secretsDir, this.encFilename(ref));\n if (!fs.existsSync(filePath)) {\n throw new SecretNotFoundError(ref);\n }\n const blob = fs.readFileSync(filePath);\n const decrypted = decrypt(blob, this.masterKey!);\n\n // Update lastAccessedAt\n const metaFile = this.metaPath(ref);\n if (fs.existsSync(metaFile)) {\n try {\n const meta = JSON.parse(fs.readFileSync(metaFile, \"utf-8\"));\n meta.lastAccessedAt = new Date().toISOString();\n fs.writeFileSync(metaFile, JSON.stringify(meta), { mode: 0o600 });\n } catch {\n // Non-fatal\n }\n }\n\n return new Uint8Array(decrypted);\n }\n\n async setSecret(ref: string, value: Uint8Array, opts?: SetSecretOptions): Promise<void> {\n await this.ensureKey();\n this.ensureDir();\n const filePath = path.join(this.secretsDir, this.encFilename(ref));\n const encrypted = encrypt(value, this.masterKey!);\n fs.writeFileSync(filePath, encrypted, { mode: 0o600 });\n\n // Write metadata (stores the original ref for reverse lookup)\n const now = new Date().toISOString();\n const metaFile = this.metaPath(ref);\n let existing: Record<string, unknown> = {};\n if (fs.existsSync(metaFile)) {\n try {\n existing = JSON.parse(fs.readFileSync(metaFile, \"utf-8\"));\n } catch {\n // Overwrite corrupt meta\n }\n }\n const meta = {\n ref,\n createdAt: existing.createdAt ?? now,\n updatedAt: now,\n lastAccessedAt: now,\n ...(opts?.metadata ? { userMeta: opts.metadata } : {}),\n ...(opts?.ttlSeconds\n ? { expiresAt: new Date(Date.now() + opts.ttlSeconds * 1000).toISOString() }\n : {}),\n };\n fs.writeFileSync(metaFile, JSON.stringify(meta, null, 2), { mode: 0o600 });\n }\n\n async deleteSecret(ref: string): Promise<void> {\n const filePath = path.join(this.secretsDir, this.encFilename(ref));\n const metaFile = this.metaPath(ref);\n if (!fs.existsSync(filePath)) {\n throw new SecretNotFoundError(ref);\n }\n fs.unlinkSync(filePath);\n if (fs.existsSync(metaFile)) {\n fs.unlinkSync(metaFile);\n }\n }\n\n async listSecrets(filter?: ListFilter): Promise<string[]> {\n this.ensureDir();\n // Read refs from meta files (the .enc filenames are hashes, not refs)\n const metaFiles = fs.readdirSync(this.secretsDir).filter((f) => f.endsWith(\".meta.json\"));\n let refs: string[] = [];\n for (const mf of metaFiles) {\n try {\n const meta = JSON.parse(fs.readFileSync(path.join(this.secretsDir, mf), \"utf-8\"));\n if (meta.ref) refs.push(meta.ref);\n } catch {\n // Skip corrupt meta files\n }\n }\n if (filter?.prefix) {\n refs = refs.filter((r) => r.startsWith(filter.prefix!));\n }\n if (filter?.limit) {\n refs = refs.slice(0, filter.limit);\n }\n return refs;\n }\n\n async testConnection(): Promise<{ ok: boolean; latencyMs?: number; error?: string }> {\n const start = Date.now();\n try {\n await this.ensureKey();\n // Write + read + delete a test secret\n const testRef = `__test_${crypto.randomBytes(4).toString(\"hex\")}`;\n const testValue = new TextEncoder().encode(\"test\");\n await this.setSecret(testRef, testValue);\n const read = await this.getSecret(testRef);\n await this.deleteSecret(testRef);\n if (new TextDecoder().decode(read) !== \"test\") {\n return { ok: false, error: \"Round-trip mismatch\" };\n }\n return { ok: true, latencyMs: Date.now() - start };\n } catch (e) {\n return {\n ok: false,\n latencyMs: Date.now() - start,\n error: e instanceof Error ? e.message : String(e),\n };\n }\n }\n\n async getMetadata(ref: string): Promise<SecretMetadata> {\n const metaFile = this.metaPath(ref);\n const filePath = path.join(this.secretsDir, this.encFilename(ref));\n if (!fs.existsSync(filePath)) {\n throw new SecretNotFoundError(ref);\n }\n if (fs.existsSync(metaFile)) {\n const raw = JSON.parse(fs.readFileSync(metaFile, \"utf-8\"));\n return {\n ref: raw.ref ?? ref,\n createdAt: new Date(raw.createdAt),\n updatedAt: new Date(raw.updatedAt),\n lastAccessedAt: raw.lastAccessedAt ? new Date(raw.lastAccessedAt) : undefined,\n owner: raw.owner,\n scopeSummary: \"local encrypted file\",\n };\n }\n // Fallback: derive from file stat\n const stat = fs.statSync(filePath);\n return {\n ref,\n createdAt: stat.birthtime,\n updatedAt: stat.mtime,\n scopeSummary: \"local encrypted file\",\n };\n }\n\n getCapabilities(): ProviderCapabilities {\n return {\n supportsRotation: false,\n supportsExpiry: false,\n supportsBatch: false,\n scopeModel: \"flat\",\n };\n }\n}\n","/**\n * EnvSecretsProvider — read-only provider that resolves secrets from environment variables.\n *\n * Refs are expected to be plain env var names (e.g. `DATABASE_URL`). The provider is\n * always available with zero configuration and requires no encryption or keychain access.\n * `setSecret` and `deleteSecret` always throw `SecretAccessDeniedError` because\n * environment variables are managed externally to the running process.\n *\n * @docLink packages/secrets/concepts#env-secrets-provider\n */\n\nimport type {\n ISecretsProvider,\n SecretMetadata,\n ProviderCapabilities,\n SetSecretOptions,\n ListFilter,\n} from \"@skaile/workspaces/plugins\";\nimport { SecretAccessDeniedError, SecretNotFoundError } from \"@skaile/workspaces/plugins\";\n\nexport class EnvSecretsProvider implements ISecretsProvider {\n readonly id = \"env\";\n\n async getSecret(ref: string): Promise<Uint8Array> {\n const value = process.env[ref];\n if (value === undefined) {\n throw new SecretNotFoundError(ref);\n }\n return new TextEncoder().encode(value);\n }\n\n async setSecret(_ref: string, _value: Uint8Array, _opts?: SetSecretOptions): Promise<void> {\n throw new SecretAccessDeniedError(\"EnvSecretsProvider is read-only\");\n }\n\n async deleteSecret(_ref: string): Promise<void> {\n throw new SecretAccessDeniedError(\"EnvSecretsProvider is read-only\");\n }\n\n async listSecrets(filter?: ListFilter): Promise<string[]> {\n let keys = Object.keys(process.env);\n if (filter?.prefix) {\n keys = keys.filter((k) => k.startsWith(filter.prefix!));\n }\n if (filter?.limit) {\n keys = keys.slice(0, filter.limit);\n }\n return keys;\n }\n\n async testConnection(): Promise<{ ok: boolean; latencyMs?: number; error?: string }> {\n return { ok: true, latencyMs: 0 };\n }\n\n async getMetadata(ref: string): Promise<SecretMetadata> {\n const value = process.env[ref];\n if (value === undefined) {\n throw new SecretNotFoundError(ref);\n }\n const now = new Date();\n return {\n ref,\n createdAt: now,\n updatedAt: now,\n scopeSummary: \"environment variable (read-only)\",\n };\n }\n\n getCapabilities(): ProviderCapabilities {\n return {\n supportsRotation: false,\n supportsExpiry: false,\n supportsBatch: false,\n scopeModel: \"flat\",\n };\n }\n}\n","/**\n * CredentialLifecycleService — manages OAuth token refresh outside the SecretsRouter.\n *\n * Works with opaque token blobs stored via the {@link SecretsRouter}; providers remain\n * OAuth-unaware. Phase 1 ships non-OAuth paths (always returns `not_applicable`).\n * Full proactive OAuth refresh with expiry checking ships in Phase 3.4.\n *\n * @docLink packages/secrets/concepts#credential-lifecycle\n */\n\nimport type { SecretsRouter } from \"./router.js\";\n\n/**\n * Configuration for {@link CredentialLifecycleService}.\n *\n * Controls how aggressively the service proactively refreshes credentials before they expire.\n * The default lead time is 300 seconds (5 minutes).\n *\n * @docLink packages/secrets/concepts#credential-lifecycle\n */\nexport interface CredentialLifecycleConfig {\n /** How far before expiry to trigger a proactive refresh (seconds). */\n refreshLeadTimeSec: number;\n}\n\n/**\n * Result returned by {@link CredentialLifecycleService.refreshIfNeeded}.\n *\n * The `reason` discriminant indicates why a refresh did or did not occur.\n * An `error` string is present only when `reason` is `refresh_failed`.\n *\n * @docLink packages/secrets/concepts#credential-lifecycle\n */\nexport interface RefreshResult {\n refreshed: boolean;\n reason: \"not_applicable\" | \"still_valid\" | \"refreshed\" | \"refresh_failed\";\n error?: string;\n}\n\nconst DEFAULT_CONFIG: CredentialLifecycleConfig = {\n refreshLeadTimeSec: 300, // 5 minutes\n};\n\nexport class CredentialLifecycleService {\n private router: SecretsRouter;\n private config: CredentialLifecycleConfig;\n\n constructor(router: SecretsRouter, config?: Partial<CredentialLifecycleConfig>) {\n this.router = router;\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Attempt to refresh a credential if needed.\n * Phase 1: always returns not_applicable (no OAuth support yet).\n */\n async refreshIfNeeded(credentialRef: string): Promise<RefreshResult> {\n // Phase 1: no OAuth refresh implemented.\n // The credential exists and is valid as-is (static secrets, env vars, etc.)\n try {\n await this.router.getMetadata(credentialRef);\n return { refreshed: false, reason: \"not_applicable\" };\n } catch {\n return { refreshed: false, reason: \"refresh_failed\", error: \"Credential not found\" };\n }\n }\n\n /**\n * Check if a credential is still valid (not expired).\n * Phase 1: always returns true for non-OAuth credentials.\n */\n async isValid(credentialRef: string): Promise<boolean> {\n try {\n await this.router.getSecret(credentialRef);\n return true;\n } catch {\n return false;\n }\n }\n}\n","/** Package version of `@skaile/secrets`. */\nexport const VERSION = \"0.0.0\";\n\n// Re-export interface + errors from plugins (convenience for consumers)\nexport type {\n ISecretsProvider,\n SecretMetadata,\n ProviderCapabilities,\n SetSecretOptions,\n ListFilter,\n} from \"@skaile/workspaces/plugins\";\nexport {\n SecretsError,\n SecretNotFoundError,\n SecretAccessDeniedError,\n SecretExpiredError,\n ProviderUnavailableError,\n} from \"@skaile/workspaces/plugins\";\n\n// Router\nexport { SecretsRouter } from \"./router.js\";\nexport type { CredentialAccessed, AuditSink, RoutingRule, SecretsRouterConfig } from \"./router.js\";\n\n// Built-in providers\nexport { LocalSecretsProvider } from \"./providers/local.js\";\nexport type { KeyStrategy } from \"./providers/local.js\";\nexport { EnvSecretsProvider } from \"./providers/env.js\";\n\n// Lifecycle\nexport { CredentialLifecycleService } from \"./lifecycle.js\";\nexport type { CredentialLifecycleConfig, RefreshResult } from \"./lifecycle.js\";\n"]}
@@ -0,0 +1,31 @@
1
+ import { DRIVER_TARGETS } from './chunk-O4JH3KUE.js';
2
+ import { lstatSync } from 'fs';
3
+ import { homedir } from 'os';
4
+ import { resolve, join } from 'path';
5
+
6
+ function deployedBase(kind, target, globalInstall, cwd) {
7
+ const targetMap = DRIVER_TARGETS[target];
8
+ if (!targetMap) throw new Error(`Unknown deploy target: '${target}'`);
9
+ const scope = globalInstall ? "global" : "local";
10
+ const paths = targetMap[scope];
11
+ const destStr = paths[kind] ?? paths.skill ?? "";
12
+ if (globalInstall) {
13
+ return destStr.replace(/^~/, homedir());
14
+ }
15
+ return resolve(cwd ?? process.cwd(), destStr);
16
+ }
17
+ function deployedDir(kind, name, target, globalInstall, cwd) {
18
+ return join(deployedBase(kind, target, globalInstall, cwd), name);
19
+ }
20
+ function isDeployed(kind, name, target, globalInstall, cwd) {
21
+ try {
22
+ lstatSync(deployedDir(kind, name, target, globalInstall, cwd));
23
+ return true;
24
+ } catch {
25
+ return false;
26
+ }
27
+ }
28
+
29
+ export { deployedBase, deployedDir, isDeployed };
30
+ //# sourceMappingURL=chunk-JKNWJ64A.js.map
31
+ //# sourceMappingURL=chunk-JKNWJ64A.js.map