@skaile/workspaces 0.29.1 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/{asset-feeds-2V7LZIG7.js → asset-feeds-6HZDZEIT.js} +14 -13
  3. package/dist/asset-feeds-6HZDZEIT.js.map +1 -0
  4. package/dist/asset-manager/index.js +12 -12
  5. package/dist/asset-manager/installer.js +11 -11
  6. package/dist/asset-manager/renderers.js +2 -2
  7. package/dist/asset-manager/src/index.d.ts +27 -0
  8. package/dist/asset-manager/src/index.d.ts.map +1 -1
  9. package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
  10. package/dist/asset-manager/src/installer.d.ts +1 -2
  11. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  12. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  13. package/dist/bridge/drivers/claude-sdk.js +354 -224
  14. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  15. package/dist/bridge/drivers/codex.js +3 -3
  16. package/dist/bridge/drivers/codex.js.map +1 -1
  17. package/dist/bridge/drivers/continue.js +4 -4
  18. package/dist/bridge/drivers/echo.js +2 -2
  19. package/dist/bridge/drivers/echo.js.map +1 -1
  20. package/dist/bridge/drivers/gemini.js +5 -5
  21. package/dist/bridge/drivers/goose.js +4 -4
  22. package/dist/bridge/drivers/omp.js +3 -3
  23. package/dist/bridge/drivers/opencode.js +4 -4
  24. package/dist/bridge/drivers/qwen.js +5 -5
  25. package/dist/bridge/index.js +4 -4
  26. package/dist/bridge/src/drivers/claude-sdk.d.ts +68 -0
  27. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  28. package/dist/bridge/src/drivers/echo.d.ts +1 -1
  29. package/dist/bridge/src/drivers/echo.d.ts.map +1 -1
  30. package/dist/bridge/src/error-classifier.d.ts.map +1 -1
  31. package/dist/bridge/src/normalizer.d.ts +5 -0
  32. package/dist/bridge/src/normalizer.d.ts.map +1 -1
  33. package/dist/{chunk-LDUNTZB6.js → chunk-26L2B6P6.js} +2 -2
  34. package/dist/{chunk-LDUNTZB6.js.map → chunk-26L2B6P6.js.map} +1 -1
  35. package/dist/{chunk-DVMSGGCM.js → chunk-45RKEHPX.js} +158 -108
  36. package/dist/chunk-45RKEHPX.js.map +1 -0
  37. package/dist/{chunk-2FS4FPZ7.js → chunk-4AGIEU7V.js} +44 -62
  38. package/dist/chunk-4AGIEU7V.js.map +1 -0
  39. package/dist/{chunk-SF4GWVR5.js → chunk-4CRKROS5.js} +86 -55
  40. package/dist/chunk-4CRKROS5.js.map +1 -0
  41. package/dist/{chunk-ZONCCO5N.js → chunk-4R6DROGN.js} +30 -32
  42. package/dist/chunk-4R6DROGN.js.map +1 -0
  43. package/dist/{chunk-MBOR7D65.js → chunk-67MFR5LS.js} +3 -3
  44. package/dist/{chunk-MBOR7D65.js.map → chunk-67MFR5LS.js.map} +1 -1
  45. package/dist/{chunk-7GWYRVAX.js → chunk-6LW7Q53Z.js} +162 -165
  46. package/dist/chunk-6LW7Q53Z.js.map +1 -0
  47. package/dist/{chunk-QMONOHXT.js → chunk-74UKG2LA.js} +3 -3
  48. package/dist/{chunk-QMONOHXT.js.map → chunk-74UKG2LA.js.map} +1 -1
  49. package/dist/{chunk-AKSR434V.js → chunk-7FLLPKX3.js} +79 -56
  50. package/dist/chunk-7FLLPKX3.js.map +1 -0
  51. package/dist/{chunk-BZ2JU7IP.js → chunk-7KOBITAP.js} +5 -5
  52. package/dist/{chunk-BZ2JU7IP.js.map → chunk-7KOBITAP.js.map} +1 -1
  53. package/dist/{chunk-JIQLLZ65.js → chunk-7MANNJ3U.js} +534 -235
  54. package/dist/chunk-7MANNJ3U.js.map +1 -0
  55. package/dist/{chunk-7R6W5EQR.js → chunk-ACXLKNIM.js} +2 -2
  56. package/dist/{chunk-7R6W5EQR.js.map → chunk-ACXLKNIM.js.map} +1 -1
  57. package/dist/{chunk-UIZKIUC6.js → chunk-BRBOC53X.js} +3 -3
  58. package/dist/chunk-BRBOC53X.js.map +1 -0
  59. package/dist/{chunk-FWHOU3CX.js → chunk-CBIPUBUS.js} +6 -6
  60. package/dist/{chunk-FWHOU3CX.js.map → chunk-CBIPUBUS.js.map} +1 -1
  61. package/dist/{chunk-3QQSSRYN.js → chunk-DKAV43NI.js} +430 -346
  62. package/dist/chunk-DKAV43NI.js.map +1 -0
  63. package/dist/{chunk-M4KLIEIJ.js → chunk-G247J4MC.js} +3 -3
  64. package/dist/chunk-G247J4MC.js.map +1 -0
  65. package/dist/{chunk-TV72ZJYN.js → chunk-GXC3TYMQ.js} +60 -47
  66. package/dist/chunk-GXC3TYMQ.js.map +1 -0
  67. package/dist/{chunk-IERB3UXJ.js → chunk-H5YXL4KI.js} +83 -69
  68. package/dist/chunk-H5YXL4KI.js.map +1 -0
  69. package/dist/{chunk-2NOE4AGD.js → chunk-HH62ECJ7.js} +3 -3
  70. package/dist/{chunk-2NOE4AGD.js.map → chunk-HH62ECJ7.js.map} +1 -1
  71. package/dist/{chunk-QDJKE557.js → chunk-HRKB2ATT.js} +64 -64
  72. package/dist/chunk-HRKB2ATT.js.map +1 -0
  73. package/dist/{chunk-MLJKA3S6.js → chunk-IENYMRZ6.js} +1711 -1497
  74. package/dist/chunk-IENYMRZ6.js.map +1 -0
  75. package/dist/{chunk-24UIWON4.js → chunk-JB35MVBN.js} +167 -156
  76. package/dist/chunk-JB35MVBN.js.map +1 -0
  77. package/dist/{chunk-5YO3H5Q4.js → chunk-KY5NY7LB.js} +3 -3
  78. package/dist/chunk-KY5NY7LB.js.map +1 -0
  79. package/dist/{chunk-MIH45XPY.js → chunk-LA2YSXEE.js} +1974 -1919
  80. package/dist/chunk-LA2YSXEE.js.map +1 -0
  81. package/dist/{chunk-IEJ5IOC3.js → chunk-LFDZYCEO.js} +4 -2
  82. package/dist/chunk-LFDZYCEO.js.map +1 -0
  83. package/dist/{chunk-72IA6BTP.js → chunk-MWAEOCU7.js} +9 -9
  84. package/dist/{chunk-72IA6BTP.js.map → chunk-MWAEOCU7.js.map} +1 -1
  85. package/dist/{chunk-5V5KZQIC.js → chunk-NGE6PALH.js} +4 -4
  86. package/dist/{chunk-5V5KZQIC.js.map → chunk-NGE6PALH.js.map} +1 -1
  87. package/dist/{chunk-PAYAFNXG.js → chunk-NGJ6E344.js} +104 -74
  88. package/dist/chunk-NGJ6E344.js.map +1 -0
  89. package/dist/{chunk-UBCZVONU.js → chunk-NQC7ZUXE.js} +3 -3
  90. package/dist/{chunk-UBCZVONU.js.map → chunk-NQC7ZUXE.js.map} +1 -1
  91. package/dist/{chunk-ZEKWHJBB.js → chunk-OEXA7BBK.js} +3 -3
  92. package/dist/{chunk-ZEKWHJBB.js.map → chunk-OEXA7BBK.js.map} +1 -1
  93. package/dist/{chunk-5RBPPBEK.js → chunk-P72K36PU.js} +4 -4
  94. package/dist/{chunk-5RBPPBEK.js.map → chunk-P72K36PU.js.map} +1 -1
  95. package/dist/{chunk-OTFG5Q7H.js → chunk-QF6LBS2C.js} +4594 -4480
  96. package/dist/chunk-QF6LBS2C.js.map +1 -0
  97. package/dist/{chunk-HK5FRWG6.js → chunk-R6O6YWU7.js} +2 -2
  98. package/dist/{chunk-HK5FRWG6.js.map → chunk-R6O6YWU7.js.map} +1 -1
  99. package/dist/{chunk-PRLD7EXG.js → chunk-SBGHNXJD.js} +2 -2
  100. package/dist/{chunk-PRLD7EXG.js.map → chunk-SBGHNXJD.js.map} +1 -1
  101. package/dist/{chunk-CMG3GJ6B.js → chunk-VO7QQ76S.js} +4 -4
  102. package/dist/{chunk-CMG3GJ6B.js.map → chunk-VO7QQ76S.js.map} +1 -1
  103. package/dist/{chunk-Z3XXKR5E.js → chunk-WDMH4UMD.js} +4 -6
  104. package/dist/chunk-WDMH4UMD.js.map +1 -0
  105. package/dist/{chunk-W7W66MDZ.js → chunk-X46FY45B.js} +44 -42
  106. package/dist/chunk-X46FY45B.js.map +1 -0
  107. package/dist/{chunk-JKNWJ64A.js → chunk-XGCXFX7X.js} +2 -2
  108. package/dist/{chunk-JKNWJ64A.js.map → chunk-XGCXFX7X.js.map} +1 -1
  109. package/dist/{chunk-FQHHCICT.js → chunk-XVDXGQ55.js} +226 -226
  110. package/dist/chunk-XVDXGQ55.js.map +1 -0
  111. package/dist/{chunk-OKRUTSG7.js → chunk-ZDKJHQY2.js} +2 -2
  112. package/dist/{chunk-OKRUTSG7.js.map → chunk-ZDKJHQY2.js.map} +1 -1
  113. package/dist/{chunk-LD4QIVBY.js → chunk-ZM7UOJR2.js} +3 -3
  114. package/dist/{chunk-LD4QIVBY.js.map → chunk-ZM7UOJR2.js.map} +1 -1
  115. package/dist/cli/index.js +2811 -2662
  116. package/dist/cli/index.js.map +1 -1
  117. package/dist/cli/src/asset-feeds.d.ts +0 -9
  118. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  119. package/dist/cli/src/commands/catalog-cmd.d.ts.map +1 -1
  120. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  121. package/dist/cli/src/commands/config.d.ts.map +1 -1
  122. package/dist/cli/src/commands/deploy.d.ts.map +1 -1
  123. package/dist/cli/src/commands/integration.d.ts.map +1 -1
  124. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  125. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  126. package/dist/cli/src/commands/preset-cmd.d.ts.map +1 -1
  127. package/dist/cli/src/commands/project.d.ts +1 -1
  128. package/dist/cli/src/commands/project.d.ts.map +1 -1
  129. package/dist/cli/src/commands/show.d.ts.map +1 -1
  130. package/dist/cli/src/commands/source.d.ts.map +1 -1
  131. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  132. package/dist/cli/src/ensure-sources.d.ts.map +1 -1
  133. package/dist/cli/src/flow-discovery.d.ts.map +1 -1
  134. package/dist/cli/src/open-registry.d.ts.map +1 -1
  135. package/dist/cli/src/plugin-store/index.d.ts +4 -6
  136. package/dist/cli/src/plugin-store/index.d.ts.map +1 -1
  137. package/dist/cli/src/plugin-store/paths.d.ts +0 -2
  138. package/dist/cli/src/plugin-store/paths.d.ts.map +1 -1
  139. package/dist/cli/src/setup.d.ts.map +1 -1
  140. package/dist/connectors/config.js +9 -9
  141. package/dist/connectors/index.js +12 -12
  142. package/dist/connectors/rclone.js +2 -2
  143. package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
  144. package/dist/connectors/src/connector-registry.d.ts.map +1 -1
  145. package/dist/connectors/src/connector-types.d.ts +1 -1
  146. package/dist/connectors/src/connector-types.d.ts.map +1 -1
  147. package/dist/connectors/src/index.d.ts +5 -5
  148. package/dist/connectors/src/index.d.ts.map +1 -1
  149. package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
  150. package/dist/{connectors-PTCSHCHZ.js → connectors-DY7UBBV5.js} +3 -3
  151. package/dist/{connectors-PTCSHCHZ.js.map → connectors-DY7UBBV5.js.map} +1 -1
  152. package/dist/connectors-shared/src/index.d.ts +1 -1
  153. package/dist/connectors-shared/src/index.d.ts.map +1 -1
  154. package/dist/core/index.js +8 -8
  155. package/dist/core/logging.js +1 -1
  156. package/dist/core/manifest.js +2 -2
  157. package/dist/core/models.js +1 -1
  158. package/dist/core/publish-manifest.js +2 -2
  159. package/dist/core/runtime-assets.js +5 -5
  160. package/dist/core/src/lock.d.ts +0 -9
  161. package/dist/core/src/lock.d.ts.map +1 -1
  162. package/dist/core/src/logging/create-logger.d.ts.map +1 -1
  163. package/dist/core/src/logging/index.d.ts +11 -11
  164. package/dist/core/src/logging/index.d.ts.map +1 -1
  165. package/dist/core/src/logging/log-store.d.ts.map +1 -1
  166. package/dist/core/src/logging/sinks/no-op-sink.d.ts.map +1 -1
  167. package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -1
  168. package/dist/core/src/manifest.d.ts.map +1 -1
  169. package/dist/core/src/models.d.ts +6 -0
  170. package/dist/core/src/models.d.ts.map +1 -1
  171. package/dist/core/src/publish-manifest.d.ts.map +1 -1
  172. package/dist/core/src/repo-manager.d.ts +0 -12
  173. package/dist/core/src/repo-manager.d.ts.map +1 -1
  174. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  175. package/dist/core/src/store.d.ts +1 -1
  176. package/dist/core/src/store.d.ts.map +1 -1
  177. package/dist/core/src/walker.d.ts.map +1 -1
  178. package/dist/core/src/workspace-config.d.ts +8 -27
  179. package/dist/core/src/workspace-config.d.ts.map +1 -1
  180. package/dist/core/store.js +1 -1
  181. package/dist/core/workspace-config.js +4 -4
  182. package/dist/deploy/index.js +8 -8
  183. package/dist/discovery/index.js +6 -6
  184. package/dist/discovery/src/asset-kind-registry.d.ts +1 -1
  185. package/dist/discovery/src/asset-kind-registry.d.ts.map +1 -1
  186. package/dist/discovery/src/builtin-providers.d.ts.map +1 -1
  187. package/dist/discovery/src/discover-manifest.d.ts +1 -1
  188. package/dist/discovery/src/discover-manifest.d.ts.map +1 -1
  189. package/dist/discovery/src/discover.d.ts +30 -3
  190. package/dist/discovery/src/discover.d.ts.map +1 -1
  191. package/dist/discovery/src/domains.d.ts +144 -0
  192. package/dist/discovery/src/domains.d.ts.map +1 -0
  193. package/dist/discovery/src/index.d.ts +9 -7
  194. package/dist/discovery/src/index.d.ts.map +1 -1
  195. package/dist/discovery/src/source-config.d.ts +1 -1
  196. package/dist/discovery/src/source-config.d.ts.map +1 -1
  197. package/dist/discovery/src/tree-entries.d.ts +13 -1
  198. package/dist/discovery/src/tree-entries.d.ts.map +1 -1
  199. package/dist/ensure-sources-JWBUVDW6.js +84 -0
  200. package/dist/ensure-sources-JWBUVDW6.js.map +1 -0
  201. package/dist/factory-assets/connectors/deploy/adapter.d.ts +1 -1
  202. package/dist/factory-assets/connectors/deploy/adapter.d.ts.map +1 -1
  203. package/dist/factory-assets/connectors/deploy.js +12 -12
  204. package/dist/factory-assets/connectors/devserver/adapter.d.ts +1 -1
  205. package/dist/factory-assets/connectors/devserver/adapter.d.ts.map +1 -1
  206. package/dist/factory-assets/connectors/devserver.js +12 -12
  207. package/dist/factory-assets/connectors/flow/adapter.d.ts +16 -2
  208. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  209. package/dist/factory-assets/connectors/flow/adapter.js +12 -12
  210. package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -1
  211. package/dist/factory-assets/connectors/flow/engine/index.d.ts +3 -3
  212. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -1
  213. package/dist/factory-assets/connectors/flow/engine.js +9 -9
  214. package/dist/factory-assets/connectors/flow/index.d.ts +1 -1
  215. package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -1
  216. package/dist/factory-assets/connectors/flow/run-flow.js +15 -15
  217. package/dist/factory-assets/connectors/flow.js +12 -12
  218. package/dist/factory-assets/connectors/git/driver.d.ts +32 -0
  219. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
  220. package/dist/factory-assets/connectors/git.js +12 -12
  221. package/dist/factory-assets/connectors/gmail/adapter.d.ts +1 -1
  222. package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -1
  223. package/dist/factory-assets/connectors/gmail.js +12 -12
  224. package/dist/factory-assets/connectors/googledrive.js +12 -12
  225. package/dist/factory-assets/connectors/local/driver.d.ts +1 -2
  226. package/dist/factory-assets/connectors/local/driver.d.ts.map +1 -1
  227. package/dist/factory-assets/connectors/local.js +12 -12
  228. package/dist/factory-assets/connectors/mattermost/adapter.d.ts +1 -1
  229. package/dist/factory-assets/connectors/mattermost/adapter.d.ts.map +1 -1
  230. package/dist/factory-assets/connectors/mattermost.js +12 -12
  231. package/dist/factory-assets/connectors/memory/adapter.d.ts.map +1 -1
  232. package/dist/factory-assets/connectors/memory.js +12 -12
  233. package/dist/factory-assets/connectors/minio/adapter.d.ts +1 -1
  234. package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -1
  235. package/dist/factory-assets/connectors/minio.js +12 -12
  236. package/dist/factory-assets/connectors/postgres/adapter.d.ts +6 -1
  237. package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -1
  238. package/dist/factory-assets/connectors/postgres.js +12 -12
  239. package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -1
  240. package/dist/factory-assets/connectors/s3.js +12 -12
  241. package/dist/factory-assets/connectors/sharepoint.js +12 -12
  242. package/dist/factory-assets/connectors/sqlite/adapter.d.ts +1 -1
  243. package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -1
  244. package/dist/factory-assets/connectors/sqlite.js +12 -12
  245. package/dist/factory-assets/connectors/static-server/adapter.d.ts +6 -1
  246. package/dist/factory-assets/connectors/static-server/adapter.d.ts.map +1 -1
  247. package/dist/factory-assets/connectors/static-server.js +12 -12
  248. package/dist/factory-assets/connectors/tunnel/adapter.d.ts +1 -1
  249. package/dist/factory-assets/connectors/tunnel/adapter.d.ts.map +1 -1
  250. package/dist/factory-assets/connectors/tunnel.js +12 -12
  251. package/dist/factory-assets/connectors/webdav.js +12 -12
  252. package/dist/factory-assets/connectors/xstate/adapter.d.ts +1 -1
  253. package/dist/factory-assets/connectors/xstate/adapter.d.ts.map +1 -1
  254. package/dist/factory-assets/connectors/xstate-store/adapter.d.ts +7 -0
  255. package/dist/factory-assets/connectors/xstate-store/adapter.d.ts.map +1 -1
  256. package/dist/factory-assets/connectors/xstate-store.js +12 -12
  257. package/dist/factory-assets/connectors/xstate.js +12 -12
  258. package/dist/flows-T6RCRKCX.js +7 -0
  259. package/dist/{flows-L3GHQD7F.js.map → flows-T6RCRKCX.js.map} +1 -1
  260. package/dist/library/index.js +13 -13
  261. package/dist/library/install.js +9 -9
  262. package/dist/library/src/config.d.ts +2 -2
  263. package/dist/library/src/config.d.ts.map +1 -1
  264. package/dist/library/src/index.d.ts +27 -27
  265. package/dist/library/src/index.d.ts.map +1 -1
  266. package/dist/library/src/install/index.d.ts +2 -2
  267. package/dist/library/src/install/index.d.ts.map +1 -1
  268. package/dist/library/src/install/install-from-manifest.d.ts +0 -21
  269. package/dist/library/src/install/install-from-manifest.d.ts.map +1 -1
  270. package/dist/library/src/knowledge/index.d.ts +2 -2
  271. package/dist/library/src/knowledge/index.d.ts.map +1 -1
  272. package/dist/library/src/knowledge/knowledge-kind-provider.d.ts.map +1 -1
  273. package/dist/library/src/local/library.d.ts +2 -2
  274. package/dist/library/src/local/library.d.ts.map +1 -1
  275. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  276. package/dist/library/src/pin-resolver.d.ts.map +1 -1
  277. package/dist/library/src/preset/apply.d.ts +2 -2
  278. package/dist/library/src/preset/apply.d.ts.map +1 -1
  279. package/dist/library/src/preset/index.d.ts +10 -10
  280. package/dist/library/src/preset/index.d.ts.map +1 -1
  281. package/dist/library/src/preset/parse.d.ts.map +1 -1
  282. package/dist/library/src/preset/resolve-item.d.ts +1 -1
  283. package/dist/library/src/preset/resolve-item.d.ts.map +1 -1
  284. package/dist/library/src/preset/upgrade.d.ts +1 -1
  285. package/dist/library/src/preset/upgrade.d.ts.map +1 -1
  286. package/dist/library/src/remote/index.d.ts +5 -5
  287. package/dist/library/src/remote/index.d.ts.map +1 -1
  288. package/dist/library/src/remote/remote-catalog-source.d.ts +1 -1
  289. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  290. package/dist/library/src/remote/rest-catalog-source.d.ts +1 -1
  291. package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -1
  292. package/dist/library/src/sync/driver.d.ts +1 -1
  293. package/dist/library/src/sync/driver.d.ts.map +1 -1
  294. package/dist/library/src/sync/git-driver.d.ts +1 -1
  295. package/dist/library/src/sync/git-driver.d.ts.map +1 -1
  296. package/dist/library/src/sync/local-driver.d.ts +1 -1
  297. package/dist/library/src/sync/local-driver.d.ts.map +1 -1
  298. package/dist/library/src/workspace-config.d.ts +0 -9
  299. package/dist/library/src/workspace-config.d.ts.map +1 -1
  300. package/dist/open-library-ZXTSUPBJ.js +23 -0
  301. package/dist/{open-library-3VJY74LQ.js.map → open-library-ZXTSUPBJ.js.map} +1 -1
  302. package/dist/paths-F7RHQUFL.js +15 -0
  303. package/dist/{paths-CE66L3AL.js.map → paths-F7RHQUFL.js.map} +1 -1
  304. package/dist/plugin-registry/src/targets.d.ts +2 -3
  305. package/dist/plugin-registry/src/targets.d.ts.map +1 -1
  306. package/dist/{plugin-store-GL5VKYUA.js → plugin-store-BC3I36HA.js} +11 -14
  307. package/dist/plugin-store-BC3I36HA.js.map +1 -0
  308. package/dist/plugins/index.js +1 -1
  309. package/dist/plugins/src/asset-kind-registry.d.ts +1 -1
  310. package/dist/plugins/src/asset-kind-registry.d.ts.map +1 -1
  311. package/dist/plugins/src/catalog-source.d.ts +5 -0
  312. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  313. package/dist/plugins/src/index.d.ts +5 -5
  314. package/dist/plugins/src/index.d.ts.map +1 -1
  315. package/dist/{provider-GAWKFQ3T.js → provider-ZPT443IX.js} +18 -16
  316. package/dist/provider-ZPT443IX.js.map +1 -0
  317. package/dist/resolver/index.js +1 -1
  318. package/dist/resolver/src/preamble.d.ts.map +1 -1
  319. package/dist/runner/index.js +17 -17
  320. package/dist/runner/src/builtin-capabilities.d.ts +12 -0
  321. package/dist/runner/src/builtin-capabilities.d.ts.map +1 -1
  322. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  323. package/dist/runner/src/compaction/index.d.ts +0 -4
  324. package/dist/runner/src/compaction/index.d.ts.map +1 -1
  325. package/dist/runner/src/compaction/orchestrator.d.ts +23 -2
  326. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
  327. package/dist/runner/src/composition/compile.d.ts.map +1 -1
  328. package/dist/runner/src/composition/index.d.ts +4 -4
  329. package/dist/runner/src/composition/index.d.ts.map +1 -1
  330. package/dist/runner/src/composition/resolve.d.ts.map +1 -1
  331. package/dist/runner/src/composition/types.d.ts +2 -2
  332. package/dist/runner/src/composition/types.d.ts.map +1 -1
  333. package/dist/runner/src/config.d.ts +2 -2
  334. package/dist/runner/src/config.d.ts.map +1 -1
  335. package/dist/runner/src/define-capability.d.ts +1 -1
  336. package/dist/runner/src/define-capability.d.ts.map +1 -1
  337. package/dist/runner/src/external-mcp.d.ts.map +1 -1
  338. package/dist/runner/src/index.d.ts +9 -9
  339. package/dist/runner/src/index.d.ts.map +1 -1
  340. package/dist/runner/src/logging-bootstrap.d.ts +1 -1
  341. package/dist/runner/src/logging-bootstrap.d.ts.map +1 -1
  342. package/dist/runner/src/manifest.d.ts.map +1 -1
  343. package/dist/runner/src/recipe-resolver.d.ts +32 -0
  344. package/dist/runner/src/recipe-resolver.d.ts.map +1 -1
  345. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  346. package/dist/runner/src/resources.d.ts.map +1 -1
  347. package/dist/runner/src/runner-capabilities.d.ts +25 -0
  348. package/dist/runner/src/runner-capabilities.d.ts.map +1 -1
  349. package/dist/runner/src/serve.d.ts.map +1 -1
  350. package/dist/runner/src/session-builder.d.ts.map +1 -1
  351. package/dist/sdk/asset-manager.js +12 -12
  352. package/dist/sdk/bridge.js +4 -4
  353. package/dist/sdk/core.js +8 -8
  354. package/dist/sdk/flow.js +9 -9
  355. package/dist/sdk/index.js +92 -76
  356. package/dist/sdk/index.js.map +1 -1
  357. package/dist/sdk/resolver.js +1 -1
  358. package/dist/sdk/runner.js +17 -17
  359. package/dist/sdk/session.js +1 -1
  360. package/dist/sdk/src/agent-session.d.ts +8 -0
  361. package/dist/sdk/src/agent-session.d.ts.map +1 -1
  362. package/dist/sdk/src/factory.d.ts.map +1 -1
  363. package/dist/sdk/src/index.d.ts +2 -2
  364. package/dist/sdk/src/index.d.ts.map +1 -1
  365. package/dist/sdk/store.js +1 -1
  366. package/dist/sdk/telemetry.js +1 -1
  367. package/dist/secrets/index.js +2 -2
  368. package/dist/secrets/src/index.d.ts +8 -8
  369. package/dist/secrets/src/index.d.ts.map +1 -1
  370. package/dist/secrets/src/lifecycle.d.ts +1 -2
  371. package/dist/secrets/src/lifecycle.d.ts.map +1 -1
  372. package/dist/secrets/src/providers/env.d.ts +1 -1
  373. package/dist/secrets/src/providers/env.d.ts.map +1 -1
  374. package/dist/secrets/src/providers/local.d.ts +1 -1
  375. package/dist/secrets/src/providers/local.d.ts.map +1 -1
  376. package/dist/secrets/src/router.d.ts +1 -1
  377. package/dist/secrets/src/router.d.ts.map +1 -1
  378. package/dist/session/index.js +1 -1
  379. package/dist/session/src/mentions.d.ts.map +1 -1
  380. package/dist/{sessions-2IUX4P3P.js → sessions-DICDEONJ.js} +3 -3
  381. package/dist/{sessions-2IUX4P3P.js.map → sessions-DICDEONJ.js.map} +1 -1
  382. package/dist/{setup-4YMN2BDU.js → setup-FQ3DE6J6.js} +198 -175
  383. package/dist/setup-FQ3DE6J6.js.map +1 -0
  384. package/dist/skills-BMI6H7HI.js +7 -0
  385. package/dist/{skills-6HJ3WINN.js.map → skills-BMI6H7HI.js.map} +1 -1
  386. package/dist/store/index.js +1 -1
  387. package/dist/store/src/index.d.ts +1 -1
  388. package/dist/store/src/index.d.ts.map +1 -1
  389. package/dist/store/src/resource-client.d.ts +1 -1
  390. package/dist/store/src/resource-client.d.ts.map +1 -1
  391. package/dist/store/src/vue.d.ts.map +1 -1
  392. package/dist/store/vue.js.map +1 -1
  393. package/dist/store-client-27YYEWMM.js +15 -0
  394. package/dist/{store-client-BCP5LCAZ.js.map → store-client-27YYEWMM.js.map} +1 -1
  395. package/dist/telemetry/index.js +1 -1
  396. package/dist/telemetry/src/context.d.ts.map +1 -1
  397. package/dist/telemetry/src/index.d.ts +3 -3
  398. package/dist/telemetry/src/index.d.ts.map +1 -1
  399. package/dist/telemetry/src/otel/gen-ai.d.ts +1 -1
  400. package/dist/telemetry/src/otel/gen-ai.d.ts.map +1 -1
  401. package/dist/telemetry/src/otel/provider.d.ts.map +1 -1
  402. package/dist/transport/src/index.d.ts +1 -1
  403. package/dist/transport/src/index.d.ts.map +1 -1
  404. package/dist/tui/index.js +251 -218
  405. package/dist/tui/index.js.map +1 -1
  406. package/dist/tui/src/index.d.ts +2 -2
  407. package/dist/tui/src/index.d.ts.map +1 -1
  408. package/dist/tui/src/repl-renderer.d.ts.map +1 -1
  409. package/dist/tui/src/repl-session.d.ts +1 -1
  410. package/dist/tui/src/repl-session.d.ts.map +1 -1
  411. package/dist/tui/src/repl.d.ts.map +1 -1
  412. package/dist/types/manifests.js +1 -1
  413. package/dist/types/src/envelope.d.ts +1 -1
  414. package/dist/types/src/envelope.d.ts.map +1 -1
  415. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  416. package/dist/types/src/manifests/connector.d.ts.map +1 -1
  417. package/dist/types/src/manifests/contract.d.ts.map +1 -1
  418. package/dist/types/src/manifests/index.d.ts +16 -16
  419. package/dist/types/src/manifests/index.d.ts.map +1 -1
  420. package/dist/types/src/manifests/mcp-server.d.ts.map +1 -1
  421. package/dist/types/src/manifests/mount.d.ts.map +1 -1
  422. package/dist/types/src/manifests/persona.d.ts.map +1 -1
  423. package/dist/types/src/manifests/preset.d.ts +0 -18
  424. package/dist/types/src/manifests/preset.d.ts.map +1 -1
  425. package/dist/types/src/manifests/prompt.d.ts.map +1 -1
  426. package/dist/types/src/manifests/ruleset.d.ts.map +1 -1
  427. package/dist/types/src/manifests/skill.d.ts.map +1 -1
  428. package/dist/validator-VF5M764T.js +5 -0
  429. package/dist/{validator-47SQUW3J.js.map → validator-VF5M764T.js.map} +1 -1
  430. package/dist/workspace-plugin/adapters/mcp.js +6 -6
  431. package/dist/workspace-plugin/adapters/omp.js +76 -69
  432. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  433. package/dist/workspace-plugin/index.js +2 -2
  434. package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -1
  435. package/dist/workspace-plugin/src/tools/connectors.d.ts.map +1 -1
  436. package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -1
  437. package/dist/workspace-plugin/src/tools/sessions.d.ts.map +1 -1
  438. package/dist/workspace-plugin/src/tools/skills.d.ts.map +1 -1
  439. package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
  440. package/package.json +1 -2
  441. package/dist/asset-feeds-2V7LZIG7.js.map +0 -1
  442. package/dist/chunk-24UIWON4.js.map +0 -1
  443. package/dist/chunk-2FS4FPZ7.js.map +0 -1
  444. package/dist/chunk-3QQSSRYN.js.map +0 -1
  445. package/dist/chunk-5YO3H5Q4.js.map +0 -1
  446. package/dist/chunk-7GWYRVAX.js.map +0 -1
  447. package/dist/chunk-AKSR434V.js.map +0 -1
  448. package/dist/chunk-DVMSGGCM.js.map +0 -1
  449. package/dist/chunk-FQHHCICT.js.map +0 -1
  450. package/dist/chunk-IEJ5IOC3.js.map +0 -1
  451. package/dist/chunk-IERB3UXJ.js.map +0 -1
  452. package/dist/chunk-JIQLLZ65.js.map +0 -1
  453. package/dist/chunk-M4KLIEIJ.js.map +0 -1
  454. package/dist/chunk-MIH45XPY.js.map +0 -1
  455. package/dist/chunk-MLJKA3S6.js.map +0 -1
  456. package/dist/chunk-OTFG5Q7H.js.map +0 -1
  457. package/dist/chunk-PAYAFNXG.js.map +0 -1
  458. package/dist/chunk-QDJKE557.js.map +0 -1
  459. package/dist/chunk-SF4GWVR5.js.map +0 -1
  460. package/dist/chunk-TV72ZJYN.js.map +0 -1
  461. package/dist/chunk-UIZKIUC6.js.map +0 -1
  462. package/dist/chunk-W7W66MDZ.js.map +0 -1
  463. package/dist/chunk-Z3XXKR5E.js.map +0 -1
  464. package/dist/chunk-ZONCCO5N.js.map +0 -1
  465. package/dist/ensure-sources-BNSRO5G7.js +0 -74
  466. package/dist/ensure-sources-BNSRO5G7.js.map +0 -1
  467. package/dist/flows-L3GHQD7F.js +0 -7
  468. package/dist/open-library-3VJY74LQ.js +0 -23
  469. package/dist/paths-CE66L3AL.js +0 -15
  470. package/dist/plugin-store-GL5VKYUA.js.map +0 -1
  471. package/dist/provider-GAWKFQ3T.js.map +0 -1
  472. package/dist/setup-4YMN2BDU.js.map +0 -1
  473. package/dist/skills-6HJ3WINN.js +0 -7
  474. package/dist/store-client-BCP5LCAZ.js +0 -15
  475. package/dist/validator-47SQUW3J.js +0 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../workspace-plugin/src/tools/connectors.ts"],"names":[],"mappings":"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","file":"chunk-LDUNTZB6.js","sourcesContent":["// src/tools/connectors.ts\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { ConnectorManager } from \"@skaile/workspaces/connectors\";\nimport { err, ok, okJson } from \"../types.js\";\nimport type { ToolResult } from \"../types.js\";\n\n// ── Mountable-connector helpers ──────────────────────────────────────────────\n//\n// The unified ConnectorManager owns mountable (filesystem-face) connectors too.\n// A connector is mountable when its `listConnectors()` summary carries a\n// `mountPath`. The `mount*` helpers below project that subset for the legacy\n// `mount_*` tool surface.\n\n/**\n * A connector summary that carries a projected filesystem path. Unlike the raw\n * `listConnectors()` summary, `mountPath` is non-optional here — `listMountable()`\n * runtime-filters to exactly those entries before narrowing to this type.\n */\ntype MountableConnector = ReturnType<ConnectorManager[\"listConnectors\"]>[number] & {\n mountPath: string;\n};\n\n/** Return the mountable (filesystem-face) connectors from a manager. */\nfunction listMountable(manager: ConnectorManager): MountableConnector[] {\n return manager\n .listConnectors()\n .filter((c): c is MountableConnector => typeof c.mountPath === \"string\");\n}\n\n/**\n * List all mountable (filesystem-face) connectors declared in `skaile.yaml`\n * with their current mount status.\n *\n * @param manager - Active `ConnectorManager` or `null` when not configured.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountList(manager: ConnectorManager | null): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n return okJson(listMountable(manager));\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Sync a mountable connector — pull the latest content from its remote source.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param mountId - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountSync(\n manager: ConnectorManager | null,\n mountId: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const result = await manager.sync(mountId);\n return okJson(result);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Get the current status and metadata for a single mountable connector.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param mountId - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountStatus(\n manager: ConnectorManager | null,\n mountId: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const mount = listMountable(manager).find((v) => v.id === mountId);\n if (!mount) return err(`Mount not found: \"${mountId}\"`);\n return okJson(mount);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Read a file from within a mountable connector's projected directory by its\n * relative path.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param mountId - Connector ID declared in `skaile.yaml`.\n * @param filePath - Relative path within the projected mount directory.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountRead(\n manager: ConnectorManager | null,\n mountId: string,\n filePath: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const mount = listMountable(manager).find((v) => v.id === mountId);\n if (!mount) return err(`Mount not found: \"${mountId}\"`);\n const content = await readFile(join(mount.mountPath, filePath), \"utf-8\");\n return ok(content);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * List all connectors registered with the `ConnectorManager`.\n *\n * Returns a JSON array of connector descriptors as reported by\n * `manager.listConnectors()`. Returns an error result when no manager is\n * configured (i.e. `skaile.yaml` has no `connectors` section).\n *\n * @param manager - Active `ConnectorManager` or `null` when not configured.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorList(manager: ConnectorManager | null): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const connectors = manager.listConnectors();\n return okJson(connectors);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Read content from a connector at the given path.\n *\n * Delegates to `manager.read(id, path)`. Returns an error result when the\n * path yields `null` (not found) or the manager is absent.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param path - Resource path within the connector (connector-specific format).\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorRead(\n manager: ConnectorManager | null,\n id: string,\n path: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const content = await manager.read(id, path);\n if (content === null) return err(`No content at path \"${path}\" in connector \"${id}\"`);\n return okJson(content);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Write string content to a connector at the given path.\n *\n * Delegates to `manager.write(id, path, { data: content })`.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param path - Destination path within the connector.\n * @param content - String payload to write.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorWrite(\n manager: ConnectorManager | null,\n id: string,\n path: string,\n content: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n await manager.write(id, path, { data: content });\n return ok(`Written to \"${path}\" in connector \"${id}\"`);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Search a connector's data using a query string.\n *\n * Delegates to `manager.search(id, query)` and returns the result set as JSON.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param query - Free-text or structured query (connector-specific format).\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorSearch(\n manager: ConnectorManager | null,\n id: string,\n query: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const results = await manager.search(id, query);\n return okJson(results);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Execute a named operation on a connector.\n *\n * Delegates to `manager.executeOp(id, operation, args)`. Operations and\n * their argument shapes are connector-specific; use {@link connectorDescribe}\n * to discover what operations a connector supports.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param operation - Operation name (from the connector's `RuntimeSkillDescriptor`).\n * @param args - Named arguments for the operation.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorExec(\n manager: ConnectorManager | null,\n id: string,\n operation: string,\n args: Record<string, unknown>,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const result = await manager.executeOp(id, operation, args);\n return ok(result);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Load the rendered skill body for a connector.\n *\n * Delegates to `manager.loadSkill(id)` and returns the skill content as\n * plain text. Useful when the agent needs the connector's operations and\n * usage instructions injected as prompt context.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorLoadSkill(\n manager: ConnectorManager | null,\n id: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const skill = manager.loadSkill(id);\n return ok(skill);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Describe a connector's capabilities via its `RuntimeSkillDescriptor`.\n *\n * Finds the matching skill descriptor from `manager.listSkills()` and returns\n * it as JSON. The descriptor includes the connector's operations, argument\n * shapes, and usage instructions.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorDescribe(\n manager: ConnectorManager | null,\n id: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const skills = manager.listSkills();\n const descriptor = skills.find((s) => s.id === id);\n if (!descriptor) return err(`No skill descriptor for connector \"${id}\"`);\n return okJson(descriptor);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n"]}
1
+ {"version":3,"sources":["../workspace-plugin/src/tools/connectors.ts"],"names":[],"mappings":"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","file":"chunk-26L2B6P6.js","sourcesContent":["// src/tools/connectors.ts\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { ConnectorManager } from \"@skaile/workspaces/connectors\";\nimport type { ToolResult } from \"../types.js\";\nimport { err, ok, okJson } from \"../types.js\";\n\n// ── Mountable-connector helpers ──────────────────────────────────────────────\n//\n// The unified ConnectorManager owns mountable (filesystem-face) connectors too.\n// A connector is mountable when its `listConnectors()` summary carries a\n// `mountPath`. The `mount*` helpers below project that subset for the legacy\n// `mount_*` tool surface.\n\n/**\n * A connector summary that carries a projected filesystem path. Unlike the raw\n * `listConnectors()` summary, `mountPath` is non-optional here — `listMountable()`\n * runtime-filters to exactly those entries before narrowing to this type.\n */\ntype MountableConnector = ReturnType<ConnectorManager[\"listConnectors\"]>[number] & {\n mountPath: string;\n};\n\n/** Return the mountable (filesystem-face) connectors from a manager. */\nfunction listMountable(manager: ConnectorManager): MountableConnector[] {\n return manager\n .listConnectors()\n .filter((c): c is MountableConnector => typeof c.mountPath === \"string\");\n}\n\n/**\n * List all mountable (filesystem-face) connectors declared in `skaile.yaml`\n * with their current mount status.\n *\n * @param manager - Active `ConnectorManager` or `null` when not configured.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountList(manager: ConnectorManager | null): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n return okJson(listMountable(manager));\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Sync a mountable connector — pull the latest content from its remote source.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param mountId - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountSync(\n manager: ConnectorManager | null,\n mountId: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const result = await manager.sync(mountId);\n return okJson(result);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Get the current status and metadata for a single mountable connector.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param mountId - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountStatus(\n manager: ConnectorManager | null,\n mountId: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const mount = listMountable(manager).find((v) => v.id === mountId);\n if (!mount) return err(`Mount not found: \"${mountId}\"`);\n return okJson(mount);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Read a file from within a mountable connector's projected directory by its\n * relative path.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param mountId - Connector ID declared in `skaile.yaml`.\n * @param filePath - Relative path within the projected mount directory.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function mountRead(\n manager: ConnectorManager | null,\n mountId: string,\n filePath: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const mount = listMountable(manager).find((v) => v.id === mountId);\n if (!mount) return err(`Mount not found: \"${mountId}\"`);\n const content = await readFile(join(mount.mountPath, filePath), \"utf-8\");\n return ok(content);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * List all connectors registered with the `ConnectorManager`.\n *\n * Returns a JSON array of connector descriptors as reported by\n * `manager.listConnectors()`. Returns an error result when no manager is\n * configured (i.e. `skaile.yaml` has no `connectors` section).\n *\n * @param manager - Active `ConnectorManager` or `null` when not configured.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorList(manager: ConnectorManager | null): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const connectors = manager.listConnectors();\n return okJson(connectors);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Read content from a connector at the given path.\n *\n * Delegates to `manager.read(id, path)`. Returns an error result when the\n * path yields `null` (not found) or the manager is absent.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param path - Resource path within the connector (connector-specific format).\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorRead(\n manager: ConnectorManager | null,\n id: string,\n path: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const content = await manager.read(id, path);\n if (content === null) return err(`No content at path \"${path}\" in connector \"${id}\"`);\n return okJson(content);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Write string content to a connector at the given path.\n *\n * Delegates to `manager.write(id, path, { data: content })`.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param path - Destination path within the connector.\n * @param content - String payload to write.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorWrite(\n manager: ConnectorManager | null,\n id: string,\n path: string,\n content: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n await manager.write(id, path, { data: content });\n return ok(`Written to \"${path}\" in connector \"${id}\"`);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Search a connector's data using a query string.\n *\n * Delegates to `manager.search(id, query)` and returns the result set as JSON.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param query - Free-text or structured query (connector-specific format).\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorSearch(\n manager: ConnectorManager | null,\n id: string,\n query: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const results = await manager.search(id, query);\n return okJson(results);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Execute a named operation on a connector.\n *\n * Delegates to `manager.executeOp(id, operation, args)`. Operations and\n * their argument shapes are connector-specific; use {@link connectorDescribe}\n * to discover what operations a connector supports.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n * @param operation - Operation name (from the connector's `RuntimeSkillDescriptor`).\n * @param args - Named arguments for the operation.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorExec(\n manager: ConnectorManager | null,\n id: string,\n operation: string,\n args: Record<string, unknown>,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const result = await manager.executeOp(id, operation, args);\n return ok(result);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Load the rendered skill body for a connector.\n *\n * Delegates to `manager.loadSkill(id)` and returns the skill content as\n * plain text. Useful when the agent needs the connector's operations and\n * usage instructions injected as prompt context.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorLoadSkill(\n manager: ConnectorManager | null,\n id: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const skill = manager.loadSkill(id);\n return ok(skill);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Describe a connector's capabilities via its `RuntimeSkillDescriptor`.\n *\n * Finds the matching skill descriptor from `manager.listSkills()` and returns\n * it as JSON. The descriptor includes the connector's operations, argument\n * shapes, and usage instructions.\n *\n * @param manager - Active `ConnectorManager` or `null`.\n * @param id - Connector ID declared in `skaile.yaml`.\n *\n * @docLink packages/workspace-plugin/concepts#tool-delivery\n */\nexport async function connectorDescribe(\n manager: ConnectorManager | null,\n id: string,\n): Promise<ToolResult> {\n if (!manager) return err(\"No connectors configured in skaile.yaml\");\n try {\n const skills = manager.listSkills();\n const descriptor = skills.find((s) => s.id === id);\n if (!descriptor) return err(`No skill descriptor for connector \"${id}\"`);\n return okJson(descriptor);\n } catch (e: unknown) {\n return err(e instanceof Error ? e.message : String(e));\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
- import { removeAsset, deployAll, createScaffold } from './chunk-SF4GWVR5.js';
2
- import { writeLock, buildLockFile, readLock, verifyLock, extractForPatch, generatePatch, savePatch, applyPatch } from './chunk-M4KLIEIJ.js';
3
- import { resolveRuntimeAssets, factoryAssetRoots } from './chunk-FWHOU3CX.js';
4
- import { resolveSkWorkspaceConfig, getRepoCommit, ensureRepo, buildProvenanceIndex, resolveAll, scanRepo, checkRepoStatus, resolveAsset, readLinks, getGlobalCacheDir } from './chunk-3QQSSRYN.js';
5
- import { parseAssetRef } from './chunk-IEJ5IOC3.js';
6
- import { deployedBase, isDeployed, deployedDir } from './chunk-JKNWJ64A.js';
1
+ import { deployAll, removeAsset, createScaffold } from './chunk-4CRKROS5.js';
2
+ import { writeLock, buildLockFile, readLock, verifyLock, extractForPatch, generatePatch, savePatch, applyPatch } from './chunk-G247J4MC.js';
3
+ import { resolveRuntimeAssets, factoryAssetRoots } from './chunk-CBIPUBUS.js';
4
+ import { resolveSkWorkspaceConfig, getRepoCommit, buildProvenanceIndex, resolveAll, ensureRepo, scanRepo, checkRepoStatus, resolveAsset, readLinks, getGlobalCacheDir } from './chunk-DKAV43NI.js';
5
+ import { parseAssetRef } from './chunk-LFDZYCEO.js';
6
+ import { deployedBase, isDeployed, deployedDir } from './chunk-XGCXFX7X.js';
7
7
  import { appendHistory, getRecentHistory, clearHistory } from './chunk-KTBKW2FI.js';
8
8
  import { commitChanges } from './chunk-UQ6LFBPZ.js';
9
9
  import { spawnSync } from 'child_process';
@@ -18,6 +18,44 @@ function sourceSlug(url) {
18
18
  function normalizeRepoUrl(url) {
19
19
  return url.trim().replace(/^git@([^:]+):/, "https://$1/").replace(/^[a-z]+:\/\//i, "").replace(/\.git$/i, "").replace(/\/+$/, "").toLowerCase();
20
20
  }
21
+ function indexLockByKindName(lock) {
22
+ const lockByKindName = /* @__PURE__ */ new Map();
23
+ for (const [key] of Object.entries(lock?.assets ?? {})) {
24
+ const parsed = parseCanonicalLockKey(key);
25
+ if (parsed.kind && parsed.name && parsed.publisher && parsed.version) {
26
+ lockByKindName.set(`${parsed.kind}:${parsed.name}`, {
27
+ publisher: parsed.publisher,
28
+ version: parsed.version,
29
+ url: lock.assets[key].source.url
30
+ });
31
+ }
32
+ }
33
+ return lockByKindName;
34
+ }
35
+ function computeSyncStatus(repoStatus) {
36
+ if (!repoStatus) return "unknown";
37
+ if (repoStatus.kind === "local") return "local";
38
+ if (repoStatus.error) return "error";
39
+ if (repoStatus.upToDate) return "synced";
40
+ return "outdated";
41
+ }
42
+ function groupAndSortByDomain(entries) {
43
+ const byDomain = /* @__PURE__ */ new Map();
44
+ for (const e of entries) {
45
+ if (!byDomain.has(e.domain)) byDomain.set(e.domain, []);
46
+ byDomain.get(e.domain).push(e);
47
+ }
48
+ const sorted = /* @__PURE__ */ new Map();
49
+ for (const key of [...byDomain.keys()].sort()) {
50
+ sorted.set(
51
+ key,
52
+ byDomain.get(key).sort(
53
+ (a, b) => a.kind !== b.kind ? a.kind.localeCompare(b.kind) : a.name.localeCompare(b.name)
54
+ )
55
+ );
56
+ }
57
+ return sorted;
58
+ }
21
59
  function parseCanonicalLockKey(key) {
22
60
  try {
23
61
  const ref = parseAssetRef(key);
@@ -194,6 +232,32 @@ var AssetManager = class {
194
232
  if (opts?.locked) {
195
233
  return this.installLocked(repositories, patches);
196
234
  }
235
+ const cloneError = this.ensureSourceClones(repositories, sources);
236
+ if (cloneError) return cloneError;
237
+ const provenanceIndex = buildProvenanceIndex(this.buildClones(repositories), {
238
+ projectDir: this.projectDir
239
+ });
240
+ const { resolved, missing, overridesApplied } = await resolveAll(dependencies, {
241
+ provenanceIndex,
242
+ overrides,
243
+ stores,
244
+ storeFetcher: this.buildStoreFetcher(stores),
245
+ projectDir: this.projectDir
246
+ });
247
+ const removed = this.reconcileRemovedAssets(resolved);
248
+ const entries = resolved.map((c) => this.candidateToCatalogEntry(c, repositories)).filter((e) => e !== null);
249
+ const deployed = deployAll(entries, repositories, patches, this.deployOpts);
250
+ writeLock(this.lockPath, buildLockFile(resolved, overridesApplied));
251
+ this.recordInstallHistory(deployed, removed);
252
+ const { npmInstalled, npmFailed } = await this.installRuntimeAssetDeps();
253
+ return { deployed, removed, missing, lockWritten: true, npmInstalled, npmFailed };
254
+ }
255
+ /**
256
+ * Ensure all source clones are present/up to date. Returns an early
257
+ * {@link InstallResult} describing the failed source on the first error, or
258
+ * `null` when every clone succeeds.
259
+ */
260
+ ensureSourceClones(repositories, sources) {
197
261
  const pinBySlug = new Map(sources.map((s) => [sourceSlug(s.url), s.pin]));
198
262
  for (const [name, decl] of Object.entries(repositories)) {
199
263
  try {
@@ -210,16 +274,13 @@ var AssetManager = class {
210
274
  };
211
275
  }
212
276
  }
213
- const provenanceIndex = buildProvenanceIndex(this.buildClones(repositories), {
214
- projectDir: this.projectDir
215
- });
216
- const { resolved, missing, overridesApplied } = await resolveAll(dependencies, {
217
- provenanceIndex,
218
- overrides,
219
- stores,
220
- storeFetcher: this.buildStoreFetcher(stores),
221
- projectDir: this.projectDir
222
- });
277
+ return null;
278
+ }
279
+ /**
280
+ * Remove stale assets those recorded in the old lock but absent from the
281
+ * newly resolved set. Returns the list of removed refs.
282
+ */
283
+ reconcileRemovedAssets(resolved) {
223
284
  const oldLock = this.tryReadLock();
224
285
  const resolvedRefs = new Set(
225
286
  resolved.map((c) => `${c.publisher}/${c.kind}:${c.name}@${c.version}`)
@@ -236,9 +297,10 @@ var AssetManager = class {
236
297
  }
237
298
  }
238
299
  }
239
- const entries = resolved.map((c) => this.candidateToCatalogEntry(c, repositories)).filter((e) => e !== null);
240
- const deployed = deployAll(entries, repositories, patches, this.deployOpts);
241
- writeLock(this.lockPath, buildLockFile(resolved, overridesApplied));
300
+ return removed;
301
+ }
302
+ /** Append `add`/`remove` history entries for a completed install reconcile. */
303
+ recordInstallHistory(deployed, removed) {
242
304
  for (const ref of deployed) {
243
305
  appendHistory(this.projectDir, {
244
306
  ref,
@@ -255,8 +317,6 @@ var AssetManager = class {
255
317
  context: this.global ? "global" : "project"
256
318
  });
257
319
  }
258
- const { npmInstalled, npmFailed } = await this.installRuntimeAssetDeps();
259
- return { deployed, removed, missing, lockWritten: true, npmInstalled, npmFailed };
260
320
  }
261
321
  /** Read the lock, returning null on a legacy v1 lock instead of throwing. */
262
322
  tryReadLock() {
@@ -542,66 +602,39 @@ var AssetManager = class {
542
602
  const { repositories } = this.loadConfig();
543
603
  const lock = this.tryReadLock();
544
604
  const deployed = this.listDeployed();
545
- const repoStatuses = /* @__PURE__ */ new Map();
546
- for (const [name, decl] of Object.entries(repositories)) {
547
- const status = checkRepoStatus(decl, name, this.reposDir);
548
- repoStatuses.set(name, {
549
- name,
550
- kind: status.kind,
551
- behind: status.behind,
552
- upToDate: status.upToDate,
553
- error: status.error
554
- });
555
- }
556
- const lockByKindName = /* @__PURE__ */ new Map();
557
- for (const [key] of Object.entries(lock?.assets ?? {})) {
558
- const parsed = parseCanonicalLockKey(key);
559
- if (parsed.kind && parsed.name && parsed.publisher && parsed.version) {
560
- lockByKindName.set(`${parsed.kind}:${parsed.name}`, {
561
- publisher: parsed.publisher,
562
- version: parsed.version,
563
- url: lock.assets[key].source.url
564
- });
565
- }
566
- }
605
+ const repoStatuses = this.buildRepoStatuses(repositories);
606
+ const lockByKindName = indexLockByKindName(lock);
567
607
  const entries = [];
568
608
  for (const d of deployed) {
569
609
  const lockEntry = lockByKindName.get(`${d.kind}:${d.name}`);
570
610
  const publisher = lockEntry?.publisher ?? "";
571
611
  const version = lockEntry?.version ?? "";
572
612
  const slug = lockEntry ? sourceSlug(lockEntry.url) : "";
573
- let syncStatus = "unknown";
574
- if (slug) {
575
- const repoStatus = repoStatuses.get(slug);
576
- if (!repoStatus) syncStatus = "unknown";
577
- else if (repoStatus.kind === "local") syncStatus = "local";
578
- else if (repoStatus.error) syncStatus = "error";
579
- else if (repoStatus.upToDate) syncStatus = "synced";
580
- else syncStatus = "outdated";
581
- }
613
+ const syncStatus = slug ? computeSyncStatus(repoStatuses.get(slug)) : "unknown";
582
614
  const domain = publisher || "unknown";
583
615
  entries.push({ kind: d.kind, name: d.name, domain, publisher, version, syncStatus });
584
616
  }
585
- const byDomain = /* @__PURE__ */ new Map();
586
- for (const e of entries) {
587
- if (!byDomain.has(e.domain)) byDomain.set(e.domain, []);
588
- byDomain.get(e.domain).push(e);
589
- }
590
- const sorted = /* @__PURE__ */ new Map();
591
- for (const key of [...byDomain.keys()].sort()) {
592
- sorted.set(
593
- key,
594
- byDomain.get(key).sort(
595
- (a, b) => a.kind !== b.kind ? a.kind.localeCompare(b.kind) : a.name.localeCompare(b.name)
596
- )
597
- );
598
- }
599
617
  return {
600
- byDomain: sorted,
618
+ byDomain: groupAndSortByDomain(entries),
601
619
  total: entries.length,
602
620
  repos: [...repoStatuses.values()]
603
621
  };
604
622
  }
623
+ /** Collect live sync status for every configured repository, keyed by name. */
624
+ buildRepoStatuses(repositories) {
625
+ const repoStatuses = /* @__PURE__ */ new Map();
626
+ for (const [name, decl] of Object.entries(repositories)) {
627
+ const status = checkRepoStatus(decl, name, this.reposDir);
628
+ repoStatuses.set(name, {
629
+ name,
630
+ kind: status.kind,
631
+ behind: status.behind,
632
+ upToDate: status.upToDate,
633
+ error: status.error
634
+ });
635
+ }
636
+ return repoStatuses;
637
+ }
605
638
  /**
606
639
  * Build the resolved dependency tree from the lock file.
607
640
  *
@@ -888,29 +921,45 @@ var AssetManager = class {
888
921
  */
889
922
  clean(opts) {
890
923
  const lock = this.tryReadLock();
891
- const removed = [];
892
924
  const skipped = [];
893
- if (lock) {
894
- for (const ref of Object.keys(lock.assets)) {
895
- const { kind, name } = parseCanonicalLockKey(ref);
896
- if (!kind || !name) continue;
897
- const dest = deployedDir(
898
- kind,
899
- name,
900
- this.driverTarget,
901
- this.global,
902
- this.projectDir
903
- );
904
- try {
905
- const stat = lstatSync(dest);
906
- if (stat.isSymbolicLink()) unlinkSync(dest);
907
- else rmSync(dest, { recursive: true, force: true });
908
- removed.push(ref);
909
- } catch {
910
- removed.push(ref);
911
- }
925
+ const removed = this.cleanLockedDeployedAssets(lock);
926
+ const unmanaged = this.collectUnmanagedAssets(lock);
927
+ if (opts?.all) this.removeAllManagedState();
928
+ return { removed, skipped, unmanaged };
929
+ }
930
+ /**
931
+ * Remove the deployed dir of every asset tracked by the lock; missing dirs
932
+ * still count as removed. Returns the list of cleaned refs.
933
+ */
934
+ cleanLockedDeployedAssets(lock) {
935
+ const removed = [];
936
+ if (!lock) return removed;
937
+ for (const ref of Object.keys(lock.assets)) {
938
+ const { kind, name } = parseCanonicalLockKey(ref);
939
+ if (!kind || !name) continue;
940
+ const dest = deployedDir(
941
+ kind,
942
+ name,
943
+ this.driverTarget,
944
+ this.global,
945
+ this.projectDir
946
+ );
947
+ try {
948
+ const stat = lstatSync(dest);
949
+ if (stat.isSymbolicLink()) unlinkSync(dest);
950
+ else rmSync(dest, { recursive: true, force: true });
951
+ removed.push(ref);
952
+ } catch {
953
+ removed.push(ref);
912
954
  }
913
955
  }
956
+ return removed;
957
+ }
958
+ /**
959
+ * Report deployed assets not tracked by the lock file. Deployed assets are
960
+ * keyed by <kind>:<name>; lock canonical refs are mapped to that shape.
961
+ */
962
+ collectUnmanagedAssets(lock) {
914
963
  const lockRefs = lock ? new Set(
915
964
  Object.keys(lock.assets).map((r) => {
916
965
  const p = parseCanonicalLockKey(r);
@@ -925,26 +974,27 @@ var AssetManager = class {
925
974
  unmanaged.push(ref);
926
975
  }
927
976
  }
928
- if (opts?.all) {
929
- const historyFile = join(this.projectDir, ".skaile", "history.yaml");
930
- try {
931
- unlinkSync(historyFile);
932
- } catch {
933
- }
934
- try {
935
- rmSync(this.patchDir, { recursive: true, force: true });
936
- } catch {
937
- }
938
- try {
939
- rmSync(this.reposDir, { recursive: true, force: true });
940
- } catch {
941
- }
942
- try {
943
- unlinkSync(this.lockPath);
944
- } catch {
945
- }
977
+ return unmanaged;
978
+ }
979
+ /** Delete all Skaile-managed state: history file, patches/, repos/, lock. */
980
+ removeAllManagedState() {
981
+ const historyFile = join(this.projectDir, ".skaile", "history.yaml");
982
+ try {
983
+ unlinkSync(historyFile);
984
+ } catch {
985
+ }
986
+ try {
987
+ rmSync(this.patchDir, { recursive: true, force: true });
988
+ } catch {
989
+ }
990
+ try {
991
+ rmSync(this.reposDir, { recursive: true, force: true });
992
+ } catch {
993
+ }
994
+ try {
995
+ unlinkSync(this.lockPath);
996
+ } catch {
946
997
  }
947
- return { removed, skipped, unmanaged };
948
998
  }
949
999
  // ── Helpers ────────────────────────────────────────────────────────────
950
1000
  /** Add a dependency ref to skaile.yaml if not already present. */
@@ -990,5 +1040,5 @@ var AssetManager = class {
990
1040
  };
991
1041
 
992
1042
  export { AssetManager, parseCanonicalLockKey };
993
- //# sourceMappingURL=chunk-DVMSGGCM.js.map
994
- //# sourceMappingURL=chunk-DVMSGGCM.js.map
1043
+ //# sourceMappingURL=chunk-45RKEHPX.js.map
1044
+ //# sourceMappingURL=chunk-45RKEHPX.js.map