@skaile/workspaces 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (562) hide show
  1. package/CHANGELOG.md +271 -0
  2. package/README.md +2 -2
  3. package/dist/{asset-feeds-77KLWCBP.js → asset-feeds-DGZO27M7.js} +20 -12
  4. package/dist/asset-feeds-DGZO27M7.js.map +1 -0
  5. package/dist/asset-manager/index.js +12 -11
  6. package/dist/asset-manager/installer.js +11 -10
  7. package/dist/asset-manager/renderers.js +2 -2
  8. package/dist/asset-manager/src/index.d.ts +6 -7
  9. package/dist/asset-manager/src/index.d.ts.map +1 -1
  10. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  11. package/dist/bridge/drivers/claude-sdk.js +14 -7
  12. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  13. package/dist/bridge/drivers/codex.js +8 -34
  14. package/dist/bridge/drivers/codex.js.map +1 -1
  15. package/dist/bridge/drivers/continue.d.ts +2 -0
  16. package/dist/bridge/drivers/continue.js +103 -0
  17. package/dist/bridge/drivers/continue.js.map +1 -0
  18. package/dist/bridge/drivers/echo.js +1 -1
  19. package/dist/bridge/drivers/gemini.d.ts +2 -0
  20. package/dist/bridge/drivers/gemini.js +10 -0
  21. package/dist/bridge/drivers/gemini.js.map +1 -0
  22. package/dist/bridge/drivers/goose.d.ts +2 -0
  23. package/dist/bridge/drivers/goose.js +88 -0
  24. package/dist/bridge/drivers/goose.js.map +1 -0
  25. package/dist/bridge/drivers/omp.js +64 -50
  26. package/dist/bridge/drivers/omp.js.map +1 -1
  27. package/dist/bridge/drivers/opencode.d.ts +2 -0
  28. package/dist/bridge/drivers/opencode.js +99 -0
  29. package/dist/bridge/drivers/opencode.js.map +1 -0
  30. package/dist/bridge/drivers/qwen.d.ts +2 -0
  31. package/dist/bridge/drivers/qwen.js +57 -0
  32. package/dist/bridge/drivers/qwen.js.map +1 -0
  33. package/dist/bridge/index.js +4 -4
  34. package/dist/bridge/src/drivers/_subprocess-cli.d.ts +136 -0
  35. package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +1 -0
  36. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  37. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  38. package/dist/bridge/src/drivers/continue.d.ts +43 -0
  39. package/dist/bridge/src/drivers/continue.d.ts.map +1 -0
  40. package/dist/bridge/src/drivers/gemini.d.ts +55 -0
  41. package/dist/bridge/src/drivers/gemini.d.ts.map +1 -0
  42. package/dist/bridge/src/drivers/goose.d.ts +42 -0
  43. package/dist/bridge/src/drivers/goose.d.ts.map +1 -0
  44. package/dist/bridge/src/drivers/omp.d.ts +20 -4
  45. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  46. package/dist/bridge/src/drivers/opencode.d.ts +43 -0
  47. package/dist/bridge/src/drivers/opencode.d.ts.map +1 -0
  48. package/dist/bridge/src/drivers/qwen.d.ts +39 -0
  49. package/dist/bridge/src/drivers/qwen.d.ts.map +1 -0
  50. package/dist/bridge/src/error-classifier.d.ts +17 -0
  51. package/dist/bridge/src/error-classifier.d.ts.map +1 -1
  52. package/dist/bridge/src/models.d.ts +1 -1
  53. package/dist/bridge/src/models.d.ts.map +1 -1
  54. package/dist/bridge/src/provider-endpoints.d.ts +16 -0
  55. package/dist/bridge/src/provider-endpoints.d.ts.map +1 -0
  56. package/dist/bridge/src/registry.d.ts.map +1 -1
  57. package/dist/bridge/src/validation.d.ts +1 -1
  58. package/dist/bridge/src/validation.d.ts.map +1 -1
  59. package/dist/{chunk-GL45UNVS.js → chunk-2FS4FPZ7.js} +3 -3
  60. package/dist/{chunk-GL45UNVS.js.map → chunk-2FS4FPZ7.js.map} +1 -1
  61. package/dist/{chunk-4FJE6BI6.js → chunk-2NOE4AGD.js} +3 -3
  62. package/dist/{chunk-4FJE6BI6.js.map → chunk-2NOE4AGD.js.map} +1 -1
  63. package/dist/{chunk-3QTZWPGH.js → chunk-3QQSSRYN.js} +168 -90
  64. package/dist/chunk-3QQSSRYN.js.map +1 -0
  65. package/dist/{chunk-4FADEVBN.js → chunk-3ZER5DST.js} +6 -6
  66. package/dist/chunk-3ZER5DST.js.map +1 -0
  67. package/dist/chunk-5RBPPBEK.js +110 -0
  68. package/dist/chunk-5RBPPBEK.js.map +1 -0
  69. package/dist/chunk-5V5KZQIC.js +445 -0
  70. package/dist/chunk-5V5KZQIC.js.map +1 -0
  71. package/dist/{chunk-LSGAYQ2E.js → chunk-5YO3H5Q4.js} +3 -3
  72. package/dist/{chunk-LSGAYQ2E.js.map → chunk-5YO3H5Q4.js.map} +1 -1
  73. package/dist/{chunk-JDX54X4Y.js → chunk-7GWYRVAX.js} +12 -9
  74. package/dist/chunk-7GWYRVAX.js.map +1 -0
  75. package/dist/{chunk-B4ZXBH57.js → chunk-A4ASAIKK.js} +59 -13
  76. package/dist/chunk-A4ASAIKK.js.map +1 -0
  77. package/dist/{chunk-M5TE6YI5.js → chunk-AKSR434V.js} +10 -52
  78. package/dist/chunk-AKSR434V.js.map +1 -0
  79. package/dist/{chunk-KOVLSBXK.js → chunk-BMQKMOQY.js} +81 -79
  80. package/dist/chunk-BMQKMOQY.js.map +1 -0
  81. package/dist/{chunk-FJFHJBGS.js → chunk-BUL5H6J7.js} +9 -9
  82. package/dist/chunk-BUL5H6J7.js.map +1 -0
  83. package/dist/{chunk-GZWJGNNN.js → chunk-DEYYRFQU.js} +3 -3
  84. package/dist/chunk-DEYYRFQU.js.map +1 -0
  85. package/dist/{chunk-SETTLPBD.js → chunk-DGM74UP4.js} +3 -3
  86. package/dist/{chunk-SETTLPBD.js.map → chunk-DGM74UP4.js.map} +1 -1
  87. package/dist/{chunk-UD4ZLXGS.js → chunk-FWHOU3CX.js} +67 -35
  88. package/dist/chunk-FWHOU3CX.js.map +1 -0
  89. package/dist/{chunk-WSZAFRQL.js → chunk-GYPA2Q7F.js} +6 -5
  90. package/dist/chunk-GYPA2Q7F.js.map +1 -0
  91. package/dist/{chunk-WIAHJOMG.js → chunk-IEJ5IOC3.js} +10 -2
  92. package/dist/chunk-IEJ5IOC3.js.map +1 -0
  93. package/dist/chunk-IERB3UXJ.js +215 -0
  94. package/dist/chunk-IERB3UXJ.js.map +1 -0
  95. package/dist/{chunk-FVTV7M76.js → chunk-IFGTRL2I.js} +3 -3
  96. package/dist/chunk-IFGTRL2I.js.map +1 -0
  97. package/dist/{chunk-KT3CK26V.js → chunk-JIQLLZ65.js} +203 -39
  98. package/dist/chunk-JIQLLZ65.js.map +1 -0
  99. package/dist/{chunk-XVL22AWE.js → chunk-M4KLIEIJ.js} +114 -63
  100. package/dist/chunk-M4KLIEIJ.js.map +1 -0
  101. package/dist/{chunk-6FNCZYJY.js → chunk-MBOR7D65.js} +3 -3
  102. package/dist/{chunk-6FNCZYJY.js.map → chunk-MBOR7D65.js.map} +1 -1
  103. package/dist/{chunk-BJWUSHC4.js → chunk-MZDXEFXF.js} +30 -20
  104. package/dist/chunk-MZDXEFXF.js.map +1 -0
  105. package/dist/{chunk-QAVZOJCV.js → chunk-OVRSNIKJ.js} +2 -2
  106. package/dist/chunk-OVRSNIKJ.js.map +1 -0
  107. package/dist/{chunk-DQWREFRQ.js → chunk-PAYAFNXG.js} +22 -3
  108. package/dist/chunk-PAYAFNXG.js.map +1 -0
  109. package/dist/{chunk-D3VO6WNC.js → chunk-PRLD7EXG.js} +3 -3
  110. package/dist/chunk-PRLD7EXG.js.map +1 -0
  111. package/dist/{chunk-NELZIQ2E.js → chunk-QDJKE557.js} +20 -3
  112. package/dist/chunk-QDJKE557.js.map +1 -0
  113. package/dist/{chunk-QXC62DOF.js → chunk-SF4GWVR5.js} +21 -9
  114. package/dist/chunk-SF4GWVR5.js.map +1 -0
  115. package/dist/{chunk-IPUYL6TD.js → chunk-TV72ZJYN.js} +8 -5
  116. package/dist/{chunk-IPUYL6TD.js.map → chunk-TV72ZJYN.js.map} +1 -1
  117. package/dist/{chunk-4QVFQEY2.js → chunk-UAW7VRAL.js} +2 -2
  118. package/dist/{chunk-4QVFQEY2.js.map → chunk-UAW7VRAL.js.map} +1 -1
  119. package/dist/chunk-UBCZVONU.js +28 -0
  120. package/dist/chunk-UBCZVONU.js.map +1 -0
  121. package/dist/{chunk-2XY6732A.js → chunk-UIZKIUC6.js} +6 -6
  122. package/dist/chunk-UIZKIUC6.js.map +1 -0
  123. package/dist/{chunk-ICS76R4T.js → chunk-W7W66MDZ.js} +10 -8
  124. package/dist/chunk-W7W66MDZ.js.map +1 -0
  125. package/dist/{chunk-DCAWIRD6.js → chunk-WRRYESHC.js} +152 -187
  126. package/dist/chunk-WRRYESHC.js.map +1 -0
  127. package/dist/{chunk-XMP6XTMF.js → chunk-XHBPQ7QP.js} +450 -207
  128. package/dist/chunk-XHBPQ7QP.js.map +1 -0
  129. package/dist/chunk-Z3XXKR5E.js +88 -0
  130. package/dist/chunk-Z3XXKR5E.js.map +1 -0
  131. package/dist/{chunk-KLNL7QHN.js → chunk-ZAP2BDHG.js} +30 -5
  132. package/dist/chunk-ZAP2BDHG.js.map +1 -0
  133. package/dist/{chunk-6VTG73UY.js → chunk-ZEKWHJBB.js} +52 -2
  134. package/dist/chunk-ZEKWHJBB.js.map +1 -0
  135. package/dist/{chunk-GCJXPUHG.js → chunk-ZONCCO5N.js} +9 -4
  136. package/dist/chunk-ZONCCO5N.js.map +1 -0
  137. package/dist/cli/index.js +618 -482
  138. package/dist/cli/index.js.map +1 -1
  139. package/dist/cli/src/asset-feeds.d.ts +14 -1
  140. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  141. package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
  142. package/dist/cli/src/commands/config.d.ts.map +1 -1
  143. package/dist/cli/src/commands/connector.d.ts +7 -0
  144. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  145. package/dist/cli/src/commands/flow.d.ts +3 -2
  146. package/dist/cli/src/commands/flow.d.ts.map +1 -1
  147. package/dist/cli/src/commands/manage.d.ts +46 -23
  148. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  149. package/dist/cli/src/commands/npx.d.ts.map +1 -1
  150. package/dist/cli/src/commands/run.d.ts.map +1 -1
  151. package/dist/cli/src/flow-discovery.d.ts +24 -0
  152. package/dist/cli/src/flow-discovery.d.ts.map +1 -0
  153. package/dist/cli/src/helpers.d.ts +10 -1
  154. package/dist/cli/src/helpers.d.ts.map +1 -1
  155. package/dist/cli/src/open-registry.d.ts +2 -2
  156. package/dist/cli/src/paths.d.ts +26 -9
  157. package/dist/cli/src/paths.d.ts.map +1 -1
  158. package/dist/cli/src/skill-walker.d.ts +9 -5
  159. package/dist/cli/src/skill-walker.d.ts.map +1 -1
  160. package/dist/connectors/config.js +9 -8
  161. package/dist/connectors/index.js +14 -13
  162. package/dist/connectors/rclone-config.js +1 -1
  163. package/dist/connectors/src/connector-manager.d.ts +24 -2
  164. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  165. package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
  166. package/dist/connectors/src/connector-registry.d.ts +3 -3
  167. package/dist/connectors/src/credential-helper-script.d.ts.map +1 -1
  168. package/dist/connectors/src/index.d.ts +4 -2
  169. package/dist/connectors/src/index.d.ts.map +1 -1
  170. package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
  171. package/dist/connectors/src/mount-placeholder.d.ts +68 -0
  172. package/dist/connectors/src/mount-placeholder.d.ts.map +1 -0
  173. package/dist/connectors/src/rclone-config/googledrive.d.ts +1 -1
  174. package/dist/core/discovery.js +1 -1
  175. package/dist/core/index.js +8 -7
  176. package/dist/core/manifest.js +2 -2
  177. package/dist/core/models.js +1 -1
  178. package/dist/core/publish-manifest.d.ts +2 -0
  179. package/dist/core/publish-manifest.js +5 -0
  180. package/dist/core/publish-manifest.js.map +1 -0
  181. package/dist/core/runtime-assets.js +5 -4
  182. package/dist/core/src/discovery.d.ts +27 -0
  183. package/dist/core/src/discovery.d.ts.map +1 -1
  184. package/dist/core/src/index.d.ts +8 -5
  185. package/dist/core/src/index.d.ts.map +1 -1
  186. package/dist/core/src/lock.d.ts.map +1 -1
  187. package/dist/core/src/manifest-yaml-editor.d.ts +62 -0
  188. package/dist/core/src/manifest-yaml-editor.d.ts.map +1 -0
  189. package/dist/core/src/models.d.ts +6 -0
  190. package/dist/core/src/models.d.ts.map +1 -1
  191. package/dist/core/src/publish-manifest.d.ts +160 -0
  192. package/dist/core/src/publish-manifest.d.ts.map +1 -0
  193. package/dist/core/src/repo-manager.d.ts +9 -1
  194. package/dist/core/src/repo-manager.d.ts.map +1 -1
  195. package/dist/core/src/runtime-assets.d.ts +80 -29
  196. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  197. package/dist/core/src/walker.d.ts +19 -6
  198. package/dist/core/src/walker.d.ts.map +1 -1
  199. package/dist/core/src/workspace-config.d.ts +19 -37
  200. package/dist/core/src/workspace-config.d.ts.map +1 -1
  201. package/dist/core/src/workspace-yaml-editor.d.ts +1 -15
  202. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  203. package/dist/core/workspace-config.js +4 -3
  204. package/dist/deploy/index.js +51 -80
  205. package/dist/deploy/index.js.map +1 -1
  206. package/dist/deploy/src/targets/container-runtime.d.ts +1 -1
  207. package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
  208. package/dist/deploy/src/targets/local.d.ts.map +1 -1
  209. package/dist/deploy/src/targets/nix.d.ts.map +1 -1
  210. package/dist/deploy/src/targets/process-handle.d.ts +7 -5
  211. package/dist/deploy/src/targets/process-handle.d.ts.map +1 -1
  212. package/dist/discovery/index.js +5 -4
  213. package/dist/discovery/src/discover-manifest.d.ts +3 -2
  214. package/dist/discovery/src/discover-manifest.d.ts.map +1 -1
  215. package/dist/discovery/src/discover.d.ts +2 -2
  216. package/dist/discovery/src/discover.d.ts.map +1 -1
  217. package/dist/discovery/src/index.d.ts +1 -1
  218. package/dist/discovery/src/index.d.ts.map +1 -1
  219. package/dist/discovery/src/source-config.d.ts +53 -12
  220. package/dist/discovery/src/source-config.d.ts.map +1 -1
  221. package/dist/discovery/src/tree-entries.d.ts +2 -2
  222. package/dist/discovery/src/tree-entries.d.ts.map +1 -1
  223. package/dist/{ensure-sources-7MOOKY3K.js → ensure-sources-KQQEUDKM.js} +15 -13
  224. package/dist/ensure-sources-KQQEUDKM.js.map +1 -0
  225. package/dist/factory-assets/.skaile-source.yaml +6 -0
  226. package/dist/factory-assets/README.md +36 -0
  227. package/dist/factory-assets/bundles/workspaces-authoring/workspaces-authoring.bundle.yaml +9 -0
  228. package/dist/factory-assets/connectors/deploy/CONNECTOR.md +41 -0
  229. package/dist/{base-assets → factory-assets}/connectors/deploy/adapter.d.ts +2 -2
  230. package/dist/factory-assets/connectors/deploy/adapter.d.ts.map +1 -0
  231. package/dist/factory-assets/connectors/deploy.js +22 -0
  232. package/dist/factory-assets/connectors/devserver/CONNECTOR.md +44 -0
  233. package/dist/{base-assets → factory-assets}/connectors/devserver/adapter.d.ts +2 -2
  234. package/dist/factory-assets/connectors/devserver/adapter.d.ts.map +1 -0
  235. package/dist/factory-assets/connectors/devserver.js +22 -0
  236. package/dist/factory-assets/connectors/flow/CONNECTOR.md +47 -0
  237. package/dist/{base-assets → factory-assets}/connectors/flow/adapter.d.ts +2 -2
  238. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -0
  239. package/dist/factory-assets/connectors/flow/adapter.js +22 -0
  240. package/dist/factory-assets/connectors/flow/engine/engine.d.ts.map +1 -0
  241. package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-kind-provider.d.ts +1 -1
  242. package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -0
  243. package/dist/factory-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -0
  244. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -0
  245. package/dist/factory-assets/connectors/flow/engine/loader.d.ts.map +1 -0
  246. package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -0
  247. package/dist/factory-assets/connectors/flow/engine.js +15 -0
  248. package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -0
  249. package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.d.ts +5 -5
  250. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -0
  251. package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js +1 -1
  252. package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.d.ts +8 -8
  253. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -0
  254. package/dist/factory-assets/connectors/flow/run-flow.js +25 -0
  255. package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.d.ts +2 -2
  256. package/dist/factory-assets/connectors/flow/stimulus-driver.d.ts.map +1 -0
  257. package/dist/factory-assets/connectors/flow/stimulus-driver.js +4 -0
  258. package/dist/factory-assets/connectors/flow.js +22 -0
  259. package/dist/factory-assets/connectors/git/CONNECTOR.md +145 -0
  260. package/dist/{base-assets → factory-assets}/connectors/git/driver.d.ts +2 -2
  261. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -0
  262. package/dist/factory-assets/connectors/git.js +22 -0
  263. package/dist/factory-assets/connectors/gmail/CONNECTOR.md +50 -0
  264. package/dist/{base-assets → factory-assets}/connectors/gmail/adapter.d.ts +2 -2
  265. package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -0
  266. package/dist/factory-assets/connectors/gmail.js +22 -0
  267. package/dist/factory-assets/connectors/googledrive/CONNECTOR.md +150 -0
  268. package/dist/{base-assets → factory-assets}/connectors/googledrive/driver.d.ts +2 -2
  269. package/dist/factory-assets/connectors/googledrive/driver.d.ts.map +1 -0
  270. package/dist/factory-assets/connectors/googledrive.js +22 -0
  271. package/dist/factory-assets/connectors/local/CONNECTOR.md +40 -0
  272. package/dist/{base-assets → factory-assets}/connectors/local/driver.d.ts +2 -2
  273. package/dist/factory-assets/connectors/local/driver.d.ts.map +1 -0
  274. package/dist/factory-assets/connectors/local.js +22 -0
  275. package/dist/factory-assets/connectors/mattermost/CONNECTOR.md +65 -0
  276. package/dist/{base-assets → factory-assets}/connectors/mattermost/adapter.d.ts +2 -2
  277. package/dist/factory-assets/connectors/mattermost/adapter.d.ts.map +1 -0
  278. package/dist/factory-assets/connectors/mattermost.js +22 -0
  279. package/dist/factory-assets/connectors/memory/CONNECTOR.md +40 -0
  280. package/dist/{base-assets → factory-assets}/connectors/memory/adapter.d.ts +2 -2
  281. package/dist/factory-assets/connectors/memory/adapter.d.ts.map +1 -0
  282. package/dist/factory-assets/connectors/memory.js +22 -0
  283. package/dist/factory-assets/connectors/minio/CONNECTOR.md +68 -0
  284. package/dist/{base-assets → factory-assets}/connectors/minio/adapter.d.ts +2 -2
  285. package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -0
  286. package/dist/factory-assets/connectors/minio.js +22 -0
  287. package/dist/factory-assets/connectors/postgres/CONNECTOR.md +46 -0
  288. package/dist/{base-assets → factory-assets}/connectors/postgres/adapter.d.ts +2 -2
  289. package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -0
  290. package/dist/factory-assets/connectors/postgres.js +22 -0
  291. package/dist/factory-assets/connectors/s3/CONNECTOR.md +76 -0
  292. package/dist/{base-assets → factory-assets}/connectors/s3/driver.d.ts +2 -2
  293. package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -0
  294. package/dist/factory-assets/connectors/s3.js +22 -0
  295. package/dist/factory-assets/connectors/sharepoint/CONNECTOR.md +181 -0
  296. package/dist/{base-assets → factory-assets}/connectors/sharepoint/driver.d.ts +2 -2
  297. package/dist/factory-assets/connectors/sharepoint/driver.d.ts.map +1 -0
  298. package/dist/factory-assets/connectors/sharepoint.js +22 -0
  299. package/dist/factory-assets/connectors/sqlite/CONNECTOR.md +44 -0
  300. package/dist/{base-assets → factory-assets}/connectors/sqlite/adapter.d.ts +2 -2
  301. package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -0
  302. package/dist/factory-assets/connectors/sqlite.js +22 -0
  303. package/dist/factory-assets/connectors/static-server/CONNECTOR.md +41 -0
  304. package/dist/{base-assets → factory-assets}/connectors/static-server/adapter.d.ts +2 -2
  305. package/dist/factory-assets/connectors/static-server/adapter.d.ts.map +1 -0
  306. package/dist/factory-assets/connectors/static-server.js +22 -0
  307. package/dist/factory-assets/connectors/tunnel/CONNECTOR.md +40 -0
  308. package/dist/{base-assets → factory-assets}/connectors/tunnel/adapter.d.ts +2 -2
  309. package/dist/factory-assets/connectors/tunnel/adapter.d.ts.map +1 -0
  310. package/dist/factory-assets/connectors/tunnel.js +22 -0
  311. package/dist/factory-assets/connectors/webdav/CONNECTOR.md +139 -0
  312. package/dist/{base-assets → factory-assets}/connectors/webdav/driver.d.ts +2 -2
  313. package/dist/factory-assets/connectors/webdav/driver.d.ts.map +1 -0
  314. package/dist/factory-assets/connectors/webdav.js +22 -0
  315. package/dist/factory-assets/connectors/xstate/CONNECTOR.md +57 -0
  316. package/dist/{base-assets → factory-assets}/connectors/xstate/adapter.d.ts +2 -2
  317. package/dist/factory-assets/connectors/xstate/adapter.d.ts.map +1 -0
  318. package/dist/factory-assets/connectors/xstate-store/CONNECTOR.md +48 -0
  319. package/dist/{base-assets → factory-assets}/connectors/xstate-store/adapter.d.ts +2 -2
  320. package/dist/factory-assets/connectors/xstate-store/adapter.d.ts.map +1 -0
  321. package/dist/factory-assets/connectors/xstate-store.js +22 -0
  322. package/dist/factory-assets/connectors/xstate.js +22 -0
  323. package/dist/{base-assets → factory-assets}/index.d.ts +1 -1
  324. package/dist/factory-assets/index.d.ts.map +1 -0
  325. package/dist/{base-assets → factory-assets}/index.js +1 -1
  326. package/dist/factory-assets/index.js.map +1 -0
  327. package/dist/factory-assets/skaile.manifest.yaml +25 -0
  328. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +176 -0
  329. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +243 -0
  330. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +197 -0
  331. package/dist/factory-assets/skills/manifest-compliance/SKILL.md +140 -0
  332. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +239 -0
  333. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +168 -0
  334. package/dist/{flows-DYFTPCPM.js → flows-L3GHQD7F.js} +4 -4
  335. package/dist/{flows-DYFTPCPM.js.map → flows-L3GHQD7F.js.map} +1 -1
  336. package/dist/helpers-F4NZ66VD.js +4 -0
  337. package/dist/{helpers-LTN3HMD3.js.map → helpers-F4NZ66VD.js.map} +1 -1
  338. package/dist/library/index.js +12 -10
  339. package/dist/library/install.d.ts +2 -0
  340. package/dist/library/install.js +16 -0
  341. package/dist/library/install.js.map +1 -0
  342. package/dist/library/src/install/index.d.ts +3 -0
  343. package/dist/library/src/install/index.d.ts.map +1 -0
  344. package/dist/library/src/library.d.ts +2 -0
  345. package/dist/library/src/library.d.ts.map +1 -1
  346. package/dist/library/src/local/library.d.ts +2 -0
  347. package/dist/library/src/local/library.d.ts.map +1 -1
  348. package/dist/library/src/local/local-catalog-source.d.ts +2 -1
  349. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  350. package/dist/library/src/local/sidecar-paths.d.ts +4 -4
  351. package/dist/library/src/local/sidecar-paths.d.ts.map +1 -1
  352. package/dist/library/src/local/store-paths.d.ts +4 -3
  353. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  354. package/dist/library/src/pin-resolver.d.ts.map +1 -1
  355. package/dist/library/src/preset/apply.d.ts.map +1 -1
  356. package/dist/library/src/preset/placeholders.d.ts.map +1 -1
  357. package/dist/library/src/remote/remote-catalog-source.d.ts +7 -0
  358. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  359. package/dist/library/src/remote/rest-catalog-source.d.ts +7 -0
  360. package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -1
  361. package/dist/library/src/sync/manifest-writeback.d.ts +1 -1
  362. package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -1
  363. package/dist/open-library-I7YTADMD.js +23 -0
  364. package/dist/{open-library-GW7DWWNZ.js.map → open-library-I7YTADMD.js.map} +1 -1
  365. package/dist/paths-CE66L3AL.js +15 -0
  366. package/dist/{paths-FKKGS6BA.js.map → paths-CE66L3AL.js.map} +1 -1
  367. package/dist/{plugin-store-R32NH7JE.js → plugin-store-GL5VKYUA.js} +10 -9
  368. package/dist/plugin-store-GL5VKYUA.js.map +1 -0
  369. package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
  370. package/dist/plugins/src/catalog-source.d.ts +13 -0
  371. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  372. package/dist/resolver/index.js +1 -1
  373. package/dist/resolver/src/parser.d.ts.map +1 -1
  374. package/dist/runner/index.js +20 -19
  375. package/dist/runner/src/capability-registry.d.ts +1 -1
  376. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  377. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  378. package/dist/runner/src/resources.d.ts +1 -1
  379. package/dist/runner/src/serve.d.ts.map +1 -1
  380. package/dist/runner/src/workspace-migration.d.ts.map +1 -1
  381. package/dist/sdk/asset-manager.js +12 -11
  382. package/dist/sdk/bridge.js +4 -4
  383. package/dist/sdk/core.js +8 -7
  384. package/dist/sdk/flow.js +12 -1
  385. package/dist/sdk/index.js +23 -22
  386. package/dist/sdk/index.js.map +1 -1
  387. package/dist/sdk/resolver.js +1 -1
  388. package/dist/sdk/runner.js +20 -19
  389. package/dist/sdk/session.js +1 -1
  390. package/dist/sdk/src/flow/index.d.ts +1 -1
  391. package/dist/sdk/src/flow/index.d.ts.map +1 -1
  392. package/dist/sdk/src/workspace.d.ts +3 -2
  393. package/dist/sdk/src/workspace.d.ts.map +1 -1
  394. package/dist/sdk/telemetry.js +1 -1
  395. package/dist/secrets/index.js +1 -1
  396. package/dist/secrets/src/providers/env.d.ts.map +1 -1
  397. package/dist/secrets/src/providers/local.d.ts.map +1 -1
  398. package/dist/session/index.js +1 -1
  399. package/dist/session/src/mentions.d.ts.map +1 -1
  400. package/dist/{setup-SRPBQOHY.js → setup-4YMN2BDU.js} +14 -13
  401. package/dist/setup-4YMN2BDU.js.map +1 -0
  402. package/dist/skills-6HJ3WINN.js +7 -0
  403. package/dist/{skills-CRL3VJNN.js.map → skills-6HJ3WINN.js.map} +1 -1
  404. package/dist/store-client-BCP5LCAZ.js +15 -0
  405. package/dist/{store-client-INZD2RYD.js.map → store-client-BCP5LCAZ.js.map} +1 -1
  406. package/dist/telemetry/index.js +1 -1
  407. package/dist/telemetry/src/config.d.ts +0 -16
  408. package/dist/telemetry/src/config.d.ts.map +1 -1
  409. package/dist/tui/index.js +20 -19
  410. package/dist/tui/index.js.map +1 -1
  411. package/dist/types/manifests.js +1 -1
  412. package/dist/types/src/flow.d.ts +2 -2
  413. package/dist/types/src/manifests/index.d.ts +1 -1
  414. package/dist/types/src/manifests/skill.d.ts +21 -0
  415. package/dist/types/src/manifests/skill.d.ts.map +1 -1
  416. package/dist/workspace-plugin/adapters/mcp.js +4 -4
  417. package/dist/workspace-plugin/adapters/omp.js +7 -7
  418. package/dist/workspace-plugin/index.js +1 -1
  419. package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -1
  420. package/package.json +194 -151
  421. package/dist/asset-feeds-77KLWCBP.js.map +0 -1
  422. package/dist/base-assets/connectors/deploy/adapter.d.ts.map +0 -1
  423. package/dist/base-assets/connectors/deploy.js +0 -21
  424. package/dist/base-assets/connectors/devserver/adapter.d.ts.map +0 -1
  425. package/dist/base-assets/connectors/devserver.js +0 -21
  426. package/dist/base-assets/connectors/flow/adapter.d.ts.map +0 -1
  427. package/dist/base-assets/connectors/flow/adapter.js +0 -21
  428. package/dist/base-assets/connectors/flow/engine/engine.d.ts.map +0 -1
  429. package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +0 -1
  430. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +0 -1
  431. package/dist/base-assets/connectors/flow/engine/index.d.ts.map +0 -1
  432. package/dist/base-assets/connectors/flow/engine/loader.d.ts.map +0 -1
  433. package/dist/base-assets/connectors/flow/engine/types.d.ts.map +0 -1
  434. package/dist/base-assets/connectors/flow/engine.js +0 -4
  435. package/dist/base-assets/connectors/flow/index.d.ts.map +0 -1
  436. package/dist/base-assets/connectors/flow/prompt-fragments.d.ts.map +0 -1
  437. package/dist/base-assets/connectors/flow/run-flow.d.ts.map +0 -1
  438. package/dist/base-assets/connectors/flow/run-flow.js +0 -24
  439. package/dist/base-assets/connectors/flow/stimulus-driver.d.ts.map +0 -1
  440. package/dist/base-assets/connectors/flow/stimulus-driver.js +0 -4
  441. package/dist/base-assets/connectors/flow.js +0 -21
  442. package/dist/base-assets/connectors/git/driver.d.ts.map +0 -1
  443. package/dist/base-assets/connectors/git.js +0 -21
  444. package/dist/base-assets/connectors/gmail/adapter.d.ts.map +0 -1
  445. package/dist/base-assets/connectors/gmail.js +0 -21
  446. package/dist/base-assets/connectors/googledrive/driver.d.ts.map +0 -1
  447. package/dist/base-assets/connectors/googledrive.js +0 -21
  448. package/dist/base-assets/connectors/local/driver.d.ts.map +0 -1
  449. package/dist/base-assets/connectors/local.js +0 -21
  450. package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +0 -1
  451. package/dist/base-assets/connectors/mattermost.js +0 -21
  452. package/dist/base-assets/connectors/memory/adapter.d.ts.map +0 -1
  453. package/dist/base-assets/connectors/memory.js +0 -21
  454. package/dist/base-assets/connectors/minio/adapter.d.ts.map +0 -1
  455. package/dist/base-assets/connectors/minio.js +0 -21
  456. package/dist/base-assets/connectors/postgres/adapter.d.ts.map +0 -1
  457. package/dist/base-assets/connectors/postgres.js +0 -21
  458. package/dist/base-assets/connectors/s3/driver.d.ts.map +0 -1
  459. package/dist/base-assets/connectors/s3.js +0 -21
  460. package/dist/base-assets/connectors/sharepoint/driver.d.ts.map +0 -1
  461. package/dist/base-assets/connectors/sharepoint.js +0 -21
  462. package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +0 -1
  463. package/dist/base-assets/connectors/sqlite.js +0 -21
  464. package/dist/base-assets/connectors/static-server/adapter.d.ts.map +0 -1
  465. package/dist/base-assets/connectors/static-server.js +0 -21
  466. package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +0 -1
  467. package/dist/base-assets/connectors/tunnel.js +0 -21
  468. package/dist/base-assets/connectors/webdav/driver.d.ts.map +0 -1
  469. package/dist/base-assets/connectors/webdav.js +0 -21
  470. package/dist/base-assets/connectors/xstate/adapter.d.ts.map +0 -1
  471. package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +0 -1
  472. package/dist/base-assets/connectors/xstate-store.js +0 -21
  473. package/dist/base-assets/connectors/xstate.js +0 -21
  474. package/dist/base-assets/index.d.ts.map +0 -1
  475. package/dist/base-assets/index.js.map +0 -1
  476. package/dist/chunk-2M3XTMOL.js +0 -23
  477. package/dist/chunk-2M3XTMOL.js.map +0 -1
  478. package/dist/chunk-2XY6732A.js.map +0 -1
  479. package/dist/chunk-3QTZWPGH.js.map +0 -1
  480. package/dist/chunk-4FADEVBN.js.map +0 -1
  481. package/dist/chunk-6VTG73UY.js.map +0 -1
  482. package/dist/chunk-B4ZXBH57.js.map +0 -1
  483. package/dist/chunk-BJWUSHC4.js.map +0 -1
  484. package/dist/chunk-D3VO6WNC.js.map +0 -1
  485. package/dist/chunk-DCAWIRD6.js.map +0 -1
  486. package/dist/chunk-DQWREFRQ.js.map +0 -1
  487. package/dist/chunk-FJFHJBGS.js.map +0 -1
  488. package/dist/chunk-FVTV7M76.js.map +0 -1
  489. package/dist/chunk-GCJXPUHG.js.map +0 -1
  490. package/dist/chunk-GZWJGNNN.js.map +0 -1
  491. package/dist/chunk-ICS76R4T.js.map +0 -1
  492. package/dist/chunk-JDX54X4Y.js.map +0 -1
  493. package/dist/chunk-KLNL7QHN.js.map +0 -1
  494. package/dist/chunk-KOVLSBXK.js.map +0 -1
  495. package/dist/chunk-KT3CK26V.js.map +0 -1
  496. package/dist/chunk-M5TE6YI5.js.map +0 -1
  497. package/dist/chunk-NELZIQ2E.js.map +0 -1
  498. package/dist/chunk-QAVZOJCV.js.map +0 -1
  499. package/dist/chunk-QXC62DOF.js.map +0 -1
  500. package/dist/chunk-UD4ZLXGS.js.map +0 -1
  501. package/dist/chunk-WIAHJOMG.js.map +0 -1
  502. package/dist/chunk-WSZAFRQL.js.map +0 -1
  503. package/dist/chunk-XMP6XTMF.js.map +0 -1
  504. package/dist/chunk-XVL22AWE.js.map +0 -1
  505. package/dist/ensure-sources-7MOOKY3K.js.map +0 -1
  506. package/dist/helpers-LTN3HMD3.js +0 -4
  507. package/dist/open-library-GW7DWWNZ.js +0 -21
  508. package/dist/paths-FKKGS6BA.js +0 -4
  509. package/dist/plugin-store-R32NH7JE.js.map +0 -1
  510. package/dist/setup-SRPBQOHY.js.map +0 -1
  511. package/dist/skills-CRL3VJNN.js +0 -7
  512. package/dist/store-client-INZD2RYD.js +0 -14
  513. /package/dist/{base-assets → factory-assets}/connectors/deploy.d.ts +0 -0
  514. /package/dist/{base-assets → factory-assets}/connectors/deploy.js.map +0 -0
  515. /package/dist/{base-assets → factory-assets}/connectors/devserver.d.ts +0 -0
  516. /package/dist/{base-assets → factory-assets}/connectors/devserver.js.map +0 -0
  517. /package/dist/{base-assets → factory-assets}/connectors/flow/adapter.js.map +0 -0
  518. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/engine.d.ts +0 -0
  519. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-manifest.d.ts +0 -0
  520. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/index.d.ts +0 -0
  521. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/loader.d.ts +0 -0
  522. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/types.d.ts +0 -0
  523. /package/dist/{base-assets → factory-assets}/connectors/flow/engine.d.ts +0 -0
  524. /package/dist/{base-assets → factory-assets}/connectors/flow/engine.js.map +0 -0
  525. /package/dist/{base-assets → factory-assets}/connectors/flow/index.d.ts +0 -0
  526. /package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js.map +0 -0
  527. /package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.js.map +0 -0
  528. /package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.js.map +0 -0
  529. /package/dist/{base-assets → factory-assets}/connectors/flow.d.ts +0 -0
  530. /package/dist/{base-assets → factory-assets}/connectors/flow.js.map +0 -0
  531. /package/dist/{base-assets → factory-assets}/connectors/git.d.ts +0 -0
  532. /package/dist/{base-assets → factory-assets}/connectors/git.js.map +0 -0
  533. /package/dist/{base-assets → factory-assets}/connectors/gmail.d.ts +0 -0
  534. /package/dist/{base-assets → factory-assets}/connectors/gmail.js.map +0 -0
  535. /package/dist/{base-assets → factory-assets}/connectors/googledrive.d.ts +0 -0
  536. /package/dist/{base-assets → factory-assets}/connectors/googledrive.js.map +0 -0
  537. /package/dist/{base-assets → factory-assets}/connectors/local.d.ts +0 -0
  538. /package/dist/{base-assets → factory-assets}/connectors/local.js.map +0 -0
  539. /package/dist/{base-assets → factory-assets}/connectors/mattermost.d.ts +0 -0
  540. /package/dist/{base-assets → factory-assets}/connectors/mattermost.js.map +0 -0
  541. /package/dist/{base-assets → factory-assets}/connectors/memory.d.ts +0 -0
  542. /package/dist/{base-assets → factory-assets}/connectors/memory.js.map +0 -0
  543. /package/dist/{base-assets → factory-assets}/connectors/minio.d.ts +0 -0
  544. /package/dist/{base-assets → factory-assets}/connectors/minio.js.map +0 -0
  545. /package/dist/{base-assets → factory-assets}/connectors/postgres.d.ts +0 -0
  546. /package/dist/{base-assets → factory-assets}/connectors/postgres.js.map +0 -0
  547. /package/dist/{base-assets → factory-assets}/connectors/s3.d.ts +0 -0
  548. /package/dist/{base-assets → factory-assets}/connectors/s3.js.map +0 -0
  549. /package/dist/{base-assets → factory-assets}/connectors/sharepoint.d.ts +0 -0
  550. /package/dist/{base-assets → factory-assets}/connectors/sharepoint.js.map +0 -0
  551. /package/dist/{base-assets → factory-assets}/connectors/sqlite.d.ts +0 -0
  552. /package/dist/{base-assets → factory-assets}/connectors/sqlite.js.map +0 -0
  553. /package/dist/{base-assets → factory-assets}/connectors/static-server.d.ts +0 -0
  554. /package/dist/{base-assets → factory-assets}/connectors/static-server.js.map +0 -0
  555. /package/dist/{base-assets → factory-assets}/connectors/tunnel.d.ts +0 -0
  556. /package/dist/{base-assets → factory-assets}/connectors/tunnel.js.map +0 -0
  557. /package/dist/{base-assets → factory-assets}/connectors/webdav.d.ts +0 -0
  558. /package/dist/{base-assets → factory-assets}/connectors/webdav.js.map +0 -0
  559. /package/dist/{base-assets → factory-assets}/connectors/xstate-store.d.ts +0 -0
  560. /package/dist/{base-assets → factory-assets}/connectors/xstate-store.js.map +0 -0
  561. /package/dist/{base-assets → factory-assets}/connectors/xstate.d.ts +0 -0
  562. /package/dist/{base-assets → factory-assets}/connectors/xstate.js.map +0 -0
@@ -0,0 +1,139 @@
1
+ ---
2
+ name: webdav
3
+ description: "WebDAV server connector via rclone FUSE."
4
+ version: "0.3.0"
5
+ entry: ./driver.ts
6
+ fields:
7
+ - key: source
8
+ label: "WebDAV server URL"
9
+ required: true
10
+ sensitive: false
11
+ - key: auth
12
+ label: "Credentials (username:password or Bearer token)"
13
+ required: false
14
+ sensitive: true
15
+ - key: options.vendor
16
+ label: "WebDAV vendor (nextcloud | owncloud | sharepoint | fastmail | other). Default: other"
17
+ required: false
18
+ sensitive: false
19
+ - key: options.basePath
20
+ label: "Subfolder appended under the WebDAV URL"
21
+ required: false
22
+ sensitive: false
23
+ - key: options.cacheMaxSize
24
+ label: "rclone VFS cache size cap (e.g. '5G'). Default: 5G"
25
+ required: false
26
+ sensitive: false
27
+ - key: options.cacheMaxAge
28
+ label: "rclone VFS cache age cap (e.g. '168h'). Default: 168h"
29
+ required: false
30
+ sensitive: false
31
+ - key: options.vfsWriteBack
32
+ label: "rclone VFS write-back delay before upload (e.g. '30s', '1m'). Default: 30s"
33
+ required: false
34
+ sensitive: false
35
+ keywords:
36
+ - webdav
37
+ - nextcloud
38
+ - owncloud
39
+ - fastmail
40
+ - rclone
41
+ ---
42
+
43
+ ## WebDAV Connector
44
+
45
+ Exposes a WebDAV server directory via rclone's FUSE backend. The driver
46
+ delegates the entire data plane (enumeration, download, upload, change
47
+ detection, cache management) to an `rclone mount` subprocess managed by
48
+ `RcloneProcessManager`.
49
+
50
+ ### Configuration
51
+
52
+ ```yaml
53
+ connectors:
54
+ - id: shared-docs
55
+ driver: webdav
56
+ access: read-write
57
+ auth: env:WEBDAV_CREDENTIALS
58
+ mount:
59
+ source: https://cloud.example.com/remote.php/dav/files/user
60
+ options:
61
+ vendor: nextcloud
62
+ basePath: Documents/project
63
+ cacheMaxSize: 5G
64
+ cacheMaxAge: 168h
65
+ vfsWriteBack: 30s
66
+ ```
67
+
68
+ `vfsWriteBack` controls rclone's `--vfs-write-back` — how long a dirty file
69
+ sits before upload. Default raised from 5s to 30s so a rapidly-rewritten file
70
+ settles before transfer instead of aborting with `sizes differ`.
71
+
72
+ `mount.source` is the WebDAV endpoint URL. `basePath` is an optional subfolder
73
+ appended to that URL when constructing the rclone remote.
74
+
75
+ ### NextCloud / ownCloud
76
+
77
+ NextCloud and ownCloud expose a standard WebDAV endpoint at
78
+ `https://<host>/remote.php/dav/files/<username>`. Set `vendor: nextcloud`
79
+ (or `owncloud`) so rclone uses the right quirks.
80
+
81
+ ```yaml
82
+ connectors:
83
+ - id: nextcloud-docs
84
+ driver: webdav
85
+ access: read-write
86
+ auth: env:NEXTCLOUD_CREDENTIALS
87
+ mount:
88
+ source: https://nextcloud.example.com/remote.php/dav/files/alice
89
+ options:
90
+ vendor: nextcloud
91
+ basePath: Documents/project
92
+ ```
93
+
94
+ ### Authentication
95
+
96
+ The `auth` field resolves to one of:
97
+ - `username:password` -- Basic/Digest authentication. The first colon
98
+ separates the two parts; passwords containing colons are preserved.
99
+ - A bare token string -- Bearer token authentication (OAuth WebDAV).
100
+ - Empty / undefined -- anonymous WebDAV (no auth header).
101
+
102
+ Plaintext passwords are passed through `rclone obscure` before being written
103
+ into the rclone config — rclone's `pass` field is not plaintext.
104
+
105
+ ### Implementation: rclone FUSE
106
+
107
+ - **mount**: Renders an `[skaile-<id>]` rclone config (webdav backend, URL +
108
+ vendor + obscured credentials), spawns `rclone mount` with VFS caching,
109
+ returns once the FUSE mountpoint is confirmed in `/proc/self/mounts`.
110
+ - **VFS cache mode**: `read-only` mounts use `minimal`; `read-write` uses
111
+ `full` so writes are buffered locally before upload.
112
+ - **Cache directory**: `/var/cache/skaile/<mountId>` (the parent
113
+ `/var/cache/skaile` is bind-mounted from the host per session).
114
+ - **sync**: Calls `RcloneProcessManager.flush` (POSTs `/vfs/refresh` then waits
115
+ for the in-use counter to reach zero).
116
+ - **unmount**: `RcloneProcessManager.stop` flushes, sends SIGTERM, falls back
117
+ to SIGKILL + `fusermount3 -u` after a 30s grace.
118
+ - **onHibernate / onSessionClose**: Always flush. Cheap and the right default;
119
+ no opt-out toggles.
120
+ - **Logs**: rclone subprocess JSON log lines are routed through a child
121
+ logger with subkind `webdav+rclone`, alongside the driver's own
122
+ `webdav` entries — both visible via `skaile session logs --kind mount`.
123
+
124
+ ### Fleet-managed mode (Phase 7B)
125
+
126
+ When the `SKAILE_FLEET_MANAGED_MOUNTS` env var lists this mount's id, the
127
+ host-side `RcloneFleetService` (in the platform backend) has already
128
+ spawned a shared `rclone mount` process and bind-mounted its FUSE
129
+ mountpoint into the container at the driver's `targetDir`. The driver
130
+ short-circuits its own rclone spawn:
131
+
132
+ - `mount()` verifies the bind mount is live (`stat` + `readdir` poll up
133
+ to 3s), then returns a no-op handle with `state.fleetManaged = true`.
134
+ - `unmount()`, `sync()`, `onHibernate()`, `onSessionClose()` all return
135
+ early — the fleet owns the rclone process and is responsible for
136
+ flushing and teardown.
137
+
138
+ The env var is comma-separated; an empty / unset value preserves the
139
+ per-session behaviour described above.
@@ -14,7 +14,7 @@ import { AbstractConnector } from "@skaile/workspaces/connectors";
14
14
  * Fastmail, generic) — delegates the data plane to an `rclone mount` subprocess via
15
15
  * `RcloneProcessManager`. Supports fleet-managed mode where the host has pre-mounted
16
16
  * the share via `SKAILE_FLEET_MANAGED_MOUNTS`.
17
- * @docLink packages/base-assets/concepts#webdav-connector
17
+ * @docLink packages/factory-assets/concepts#webdav-connector
18
18
  */
19
19
  export declare class WebDAVConnector extends AbstractConnector {
20
20
  readonly name = "webdav";
@@ -29,7 +29,7 @@ export declare class WebDAVConnector extends AbstractConnector {
29
29
  /**
30
30
  * Creates a new WebDAVConnector instance.
31
31
  * @returns Configured WebDAVConnector ready to be registered in the connector registry.
32
- * @docLink packages/base-assets/api-reference#webdav-connector-factory
32
+ * @docLink packages/factory-assets/api-reference#webdav-connector-factory
33
33
  */
34
34
  export declare function createConnector(): WebDAVConnector;
35
35
  //# sourceMappingURL=driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/webdav/driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,cAAc,EAIf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iBAAiB,EAQlB,MAAM,+BAA+B,CAAC;AAwBvC;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,IAAI,YAAY;IAEzB,OAAO,CAAC,MAAM,CAA8B;IAE5C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAKjC;IAEI,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAsGzF,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAM1C,KAAK;IAwBJ,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAOjE,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAMpF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAEjD"}
@@ -0,0 +1,22 @@
1
+ export { WebDAVConnector, createConnector5 as createConnector } from '../../chunk-XHBPQ7QP.js';
2
+ import '../../chunk-OVRSNIKJ.js';
3
+ import '../../chunk-DGM74UP4.js';
4
+ import '../../chunk-QMONOHXT.js';
5
+ import '../../chunk-6E6PKKAD.js';
6
+ import '../../chunk-W7W66MDZ.js';
7
+ import '../../chunk-DEYYRFQU.js';
8
+ import '../../chunk-IFGTRL2I.js';
9
+ import '../../chunk-M4KLIEIJ.js';
10
+ import '../../chunk-FWHOU3CX.js';
11
+ import '../../chunk-3QQSSRYN.js';
12
+ import '../../chunk-IERB3UXJ.js';
13
+ import '../../chunk-2FS4FPZ7.js';
14
+ import '../../chunk-IEJ5IOC3.js';
15
+ import '../../chunk-JKNWJ64A.js';
16
+ import '../../chunk-O4JH3KUE.js';
17
+ import '../../chunk-K5GBV4SA.js';
18
+ import '../../chunk-ZAP2BDHG.js';
19
+ import '../../chunk-24UIWON4.js';
20
+ import '../../chunk-NSBPE2FW.js';
21
+ //# sourceMappingURL=webdav.js.map
22
+ //# sourceMappingURL=webdav.js.map
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: xstate
3
+ description: "Full state machine resource via XState v5"
4
+ version: "0.1.0"
5
+ entry: ./adapter.ts
6
+ npm_deps:
7
+ required:
8
+ - xstate
9
+ optional:
10
+ - yaml
11
+ fields: []
12
+ health_check: null
13
+ keywords:
14
+ - state-machine
15
+ - xstate
16
+ - fsm
17
+ - workflow
18
+ ---
19
+
20
+ A state machine connector using XState v5. Provides guarded transitions,
21
+ entry/exit actions, context, and serializable snapshots.
22
+
23
+ Machine definitions can be provided inline via `options.machine` or loaded
24
+ from a YAML/JSON file via `options.definitionPath`.
25
+
26
+ ## Operations
27
+
28
+ | Operation | Access | Description |
29
+ |-----------|--------|-------------|
30
+ | `get_state` | read | Get current state, context, and available transitions |
31
+ | `get_definition` | read | Get the machine definition |
32
+ | `history` | read | Get the transition history log |
33
+ | `can` | read | Check if a transition is currently allowed |
34
+ | `send` | write | Send an event to trigger a transition |
35
+
36
+ ## Configuration
37
+
38
+ ```yaml
39
+ connectors:
40
+ - id: approval
41
+ adapter: xstate
42
+ access: read-write
43
+ options:
44
+ machine:
45
+ id: approval
46
+ initial: draft
47
+ states:
48
+ draft:
49
+ on:
50
+ SUBMIT: review
51
+ review:
52
+ on:
53
+ APPROVE: approved
54
+ REJECT: draft
55
+ approved:
56
+ type: final
57
+ ```
@@ -11,7 +11,7 @@ import type { ConnectContext, ConnectorDeclaration, ConnectorHandle, ToolFace }
11
11
  * Connector for XState v5 state machines — drives guarded transitions, tracks history, and exposes
12
12
  * the current state and context to agents. Machine definitions can be provided inline or loaded
13
13
  * from a JSON/YAML file. Requires the `xstate` optional peer dependency.
14
- * @docLink packages/base-assets/concepts#xstate-connector
14
+ * @docLink packages/factory-assets/concepts#xstate-connector
15
15
  */
16
16
  export declare class XStateConnector extends AbstractConnector {
17
17
  readonly name = "xstate";
@@ -47,7 +47,7 @@ export declare class XStateConnector extends AbstractConnector {
47
47
  /**
48
48
  * Creates a new XStateConnector instance.
49
49
  * @returns Configured XStateConnector ready to be registered in the connector registry.
50
- * @docLink packages/base-assets/api-reference#xstate-connector-factory
50
+ * @docLink packages/factory-assets/api-reference#xstate-connector-factory
51
51
  */
52
52
  export declare function createConnector(): XStateConnector;
53
53
  //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/xstate/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAmBvC;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,IAAI,YAAY;IAEzB,KAAK,EAAE,QAAQ,CAAC;;IAaV,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IA8E1F,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,OAAO,CAAC,CAAC;IAIT;;OAEG;IACH,eAAe,CACb,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAChD,IAAI;IAIP;;OAEG;IACH,cAAc,CACZ,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAClD,IAAI;IAIP;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,GACnD,IAAI;YAMO,KAAK;YAcL,KAAK;YAkBL,OAAO;IASrB,OAAO,CAAC,mBAAmB;YA0Db,UAAU;IA+FxB,OAAO,CAAC,kBAAkB;IAS1B,0EAA0E;IAC1E,OAAO,CAAC,YAAY;CAwBrB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAEjD"}
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: xstate-store
3
+ description: "Lightweight typed event store via @xstate/store"
4
+ version: "0.1.0"
5
+ entry: ./adapter.ts
6
+ npm_deps:
7
+ required:
8
+ - "@xstate/store"
9
+ optional: []
10
+ fields: []
11
+ health_check: null
12
+ keywords:
13
+ - store
14
+ - state
15
+ - xstate
16
+ - kv
17
+ - reactive
18
+ ---
19
+
20
+ A lightweight event-driven store using @xstate/store. Provides a shared
21
+ key-value store between UI and agents with event history.
22
+
23
+ For typed/validated state machines with guards and actions, use the
24
+ `xstate` adapter instead.
25
+
26
+ ## Operations
27
+
28
+ | Operation | Access | Description |
29
+ |-----------|--------|-------------|
30
+ | `get` | read | Get full store snapshot |
31
+ | `get_key` | read | Get a single value by key |
32
+ | `history` | read | Get event history log |
33
+ | `set` | write | Set a key to a value |
34
+ | `merge` | write | Merge an object into the store context |
35
+ | `reset` | write | Reset the store to initial context |
36
+
37
+ ## Configuration
38
+
39
+ ```yaml
40
+ connectors:
41
+ - id: app-state
42
+ adapter: xstate-store
43
+ access: read-write
44
+ options:
45
+ initial:
46
+ theme: dark
47
+ locale: en
48
+ ```
@@ -9,7 +9,7 @@ import { AbstractConnector } from "@skaile/workspaces/connectors";
9
9
  /**
10
10
  * Connector for `@xstate/store` — a lightweight event-driven key-value store shared between agents and UI clients.
11
11
  * Provides get, set, merge, and reset operations with an event history log. Requires the `@xstate/store` optional peer dependency.
12
- * @docLink packages/base-assets/concepts#xstate-store-connector
12
+ * @docLink packages/factory-assets/concepts#xstate-store-connector
13
13
  */
14
14
  export declare class XStateStoreConnector extends AbstractConnector {
15
15
  readonly name = "xstate-store";
@@ -35,7 +35,7 @@ export declare class XStateStoreConnector extends AbstractConnector {
35
35
  /**
36
36
  * Creates a new XStateStoreConnector instance.
37
37
  * @returns Configured XStateStoreConnector ready to be registered in the connector registry.
38
- * @docLink packages/base-assets/api-reference#xstate-store-connector-factory
38
+ * @docLink packages/factory-assets/api-reference#xstate-store-connector-factory
39
39
  */
40
40
  export declare function createConnector(): XStateStoreConnector;
41
41
  //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/xstate-store/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EAEpB,eAAe,EAKf,QAAQ,EACT,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAQlE;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,QAAQ,CAAC,IAAI,kBAAkB;IAE/B,KAAK,EAAE,QAAQ,CAAC;;IAeV,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAuC1F,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;IAIf;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;YAM/E,KAAK;YAWL,MAAM;YAgBN,OAAO;YAQP,KAAK;YAkBL,OAAO;IAiBrB,OAAO,CAAC,mBAAmB;YAiFb,UAAU;IAgFxB,OAAO,CAAC,cAAc;CAKvB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,oBAAoB,CAEtD"}
@@ -0,0 +1,22 @@
1
+ export { XStateStoreConnector, createConnector13 as createConnector } from '../../chunk-XHBPQ7QP.js';
2
+ import '../../chunk-OVRSNIKJ.js';
3
+ import '../../chunk-DGM74UP4.js';
4
+ import '../../chunk-QMONOHXT.js';
5
+ import '../../chunk-6E6PKKAD.js';
6
+ import '../../chunk-W7W66MDZ.js';
7
+ import '../../chunk-DEYYRFQU.js';
8
+ import '../../chunk-IFGTRL2I.js';
9
+ import '../../chunk-M4KLIEIJ.js';
10
+ import '../../chunk-FWHOU3CX.js';
11
+ import '../../chunk-3QQSSRYN.js';
12
+ import '../../chunk-IERB3UXJ.js';
13
+ import '../../chunk-2FS4FPZ7.js';
14
+ import '../../chunk-IEJ5IOC3.js';
15
+ import '../../chunk-JKNWJ64A.js';
16
+ import '../../chunk-O4JH3KUE.js';
17
+ import '../../chunk-K5GBV4SA.js';
18
+ import '../../chunk-ZAP2BDHG.js';
19
+ import '../../chunk-24UIWON4.js';
20
+ import '../../chunk-NSBPE2FW.js';
21
+ //# sourceMappingURL=xstate-store.js.map
22
+ //# sourceMappingURL=xstate-store.js.map
@@ -0,0 +1,22 @@
1
+ export { XStateConnector, createConnector12 as createConnector } from '../../chunk-XHBPQ7QP.js';
2
+ import '../../chunk-OVRSNIKJ.js';
3
+ import '../../chunk-DGM74UP4.js';
4
+ import '../../chunk-QMONOHXT.js';
5
+ import '../../chunk-6E6PKKAD.js';
6
+ import '../../chunk-W7W66MDZ.js';
7
+ import '../../chunk-DEYYRFQU.js';
8
+ import '../../chunk-IFGTRL2I.js';
9
+ import '../../chunk-M4KLIEIJ.js';
10
+ import '../../chunk-FWHOU3CX.js';
11
+ import '../../chunk-3QQSSRYN.js';
12
+ import '../../chunk-IERB3UXJ.js';
13
+ import '../../chunk-2FS4FPZ7.js';
14
+ import '../../chunk-IEJ5IOC3.js';
15
+ import '../../chunk-JKNWJ64A.js';
16
+ import '../../chunk-O4JH3KUE.js';
17
+ import '../../chunk-K5GBV4SA.js';
18
+ import '../../chunk-ZAP2BDHG.js';
19
+ import '../../chunk-24UIWON4.js';
20
+ import '../../chunk-NSBPE2FW.js';
21
+ //# sourceMappingURL=xstate.js.map
22
+ //# sourceMappingURL=xstate.js.map
@@ -2,7 +2,7 @@
2
2
  * Eagerly loads all built-in connector adapters and mount drivers.
3
3
  * Intended for use in environments where lazy loading via subpath imports is not desired.
4
4
  * Individual adapters and drivers are normally loaded on demand by the connector and mount registries.
5
- * @docLink packages/base-assets/api-reference#base-assets
5
+ * @docLink packages/factory-assets/api-reference#factory-assets
6
6
  */
7
7
  export declare function registerAll(): Promise<void>;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../factory-assets/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjD"}
@@ -1,6 +1,6 @@
1
1
  import '../chunk-NSBPE2FW.js';
2
2
 
3
- // base-assets/index.ts
3
+ // factory-assets/index.ts
4
4
  async function registerAll() {
5
5
  }
6
6
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../factory-assets/index.ts"],"names":[],"mappings":";;;AAUA,eAAsB,WAAA,GAA6B;AAEnD","file":"index.js","sourcesContent":["// factory-assets — first-party framework content (built-in connectors + skills + bundles)\n// Subpath imports: @skaile/workspaces/factory-assets/connectors/<name>\n// This root export provides registerAll() for eager loading of all built-in adapters/drivers.\n\n/**\n * Eagerly loads all built-in connector adapters and mount drivers.\n * Intended for use in environments where lazy loading via subpath imports is not desired.\n * Individual adapters and drivers are normally loaded on demand by the connector and mount registries.\n * @docLink packages/factory-assets/api-reference#factory-assets\n */\nexport async function registerAll(): Promise<void> {\n // Populated in Phase 3 after implementations are moved here\n}\n"]}
@@ -0,0 +1,25 @@
1
+ # Publication manifest for the workspaces-authoring asset set.
2
+ # This repo IS a source (publication half only). See skills/authoring-skaile-manifests.
3
+ publisher: skaile-ai
4
+ version: 0.1.0
5
+
6
+ assets:
7
+ - kind: skill
8
+ name: authoring-skaile-assets
9
+ root: skills/authoring-skaile-assets
10
+ - kind: skill
11
+ name: authoring-skaile-manifests
12
+ root: skills/authoring-skaile-manifests
13
+ - kind: skill
14
+ name: skaile-author-asset
15
+ root: skills/skaile-author-asset
16
+ - kind: skill
17
+ name: skaile-manage-workspace
18
+ root: skills/skaile-manage-workspace
19
+ - kind: skill
20
+ name: manifest-compliance
21
+ root: skills/manifest-compliance
22
+ - kind: bundle
23
+ name: workspaces-authoring
24
+ files:
25
+ - bundles/workspaces-authoring/workspaces-authoring.bundle.yaml
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: authoring-skaile-assets
3
+ description: "Use when authoring or restructuring an AI-asset repository (skills, agents, prompts, contracts, MCP servers, connectors, flows, bundles) so it resolves cleanly through @skaile/workspaces and any store. Covers file layout, the 11 asset kinds, frontmatter conventions, the requires-vs-dependencies split, and how to test a source locally before publishing."
4
+ metadata:
5
+ version: '0.1.0'
6
+ stage: alpha
7
+ tags:
8
+ - skaile
9
+ - workspaces
10
+ - authoring
11
+ - skill
12
+ - asset
13
+ - source
14
+ - publish
15
+ requires:
16
+ - skill:authoring-skaile-manifests
17
+ ---
18
+
19
+ # Authoring assets for `@skaile/workspaces`
20
+
21
+ You are helping an author build or fix an **AI-asset repository** (a "source") so
22
+ that `@skaile/workspaces` — and any store mirroring it — can discover, resolve,
23
+ and deploy its assets. This skill owns the *content* side (files on disk). Its
24
+ companion **[authoring-skaile-manifests]** owns the `skaile.yaml` manifest and
25
+ the dependency grammar; read it before publishing.
26
+
27
+ ## Mental model
28
+
29
+ A **source** is a git repo of asset bytes. Identity is the global tuple
30
+ `(publisher, kind, name, version)` and is **asset-intrinsic** — declared in the
31
+ source's own `skaile.yaml`, never chosen by the consuming project. A consumer
32
+ reaches the bytes by cloning the source repo (`sources[]`) or by querying a
33
+ catalog (`stores[]`); both paths are content-hash verified and interchangeable.
34
+
35
+ > Vocabulary: **source** holds bytes (a repo). **library** is a place on the
36
+ > author's machine where they hold/author bytes. **store** is a remote catalog of
37
+ > *manifests* that point at sources — it holds no bytes.
38
+
39
+ ## The 11 asset kinds
40
+
41
+ | Kind | Manifest file | Identity name from |
42
+ |---|---|---|
43
+ | `skill` | `SKILL.md` | frontmatter `name:` → else parent dir |
44
+ | `agent` | `AGENT.md` **or** `agent.yaml` | `name:` → else parent dir |
45
+ | `prompt` | `*.prompt.md` | `name:` → else filename stem |
46
+ | `contract` | `CONTRACT.md` | `name:` → else parent dir |
47
+ | `mcp-server` | `MCP.md` | `name:` → else parent dir |
48
+ | `connector` | `CONNECTOR.md` | `name:` → else parent dir |
49
+ | `knowledge` | `knowledge.yaml` | `name:` → else parent dir |
50
+ | `persona` | `SKILL.md` with `type: persona` | `name:` → else parent dir |
51
+ | `ruleset` | `SKILL.md` with `type: ruleset` | `name:` → else parent dir |
52
+ | `flow` | `*.flow.yaml` / `*.flow.json` | `name:`/`id:` → else filename stem |
53
+ | `bundle` | `*.bundle.yaml` | `name:` → else filename stem |
54
+
55
+ `mcp:` is a shorthand alias for `mcp-server:` in refs.
56
+ `persona`/`ruleset` are composition fragments selected via a `SKILL.md`
57
+ `type:` key (they replace the old `SOUL.md`/`RULES.md`).
58
+
59
+ ## File layout — two options
60
+
61
+ **A. Explicit (recommended for curated repos).** Put `skaile.yaml` at the repo
62
+ root with an `assets:` list and lay files out however you like; `root:`/`files:`
63
+ point at each asset. See [authoring-skaile-manifests].
64
+
65
+ **B. Convention (zero-config).** Omit `skaile.yaml`; the walker falls back to the
66
+ agentskills.io layout:
67
+
68
+ ```
69
+ <repo-root>/<kind-plural>/<name>/<KIND>.md
70
+ skills/audit/SKILL.md
71
+ agents/reviewer/AGENT.md
72
+ mcp-servers/excel/MCP.md
73
+ ```
74
+
75
+ > ⚠️ If `skaile.yaml` has a **non-empty `assets:` list, it is exhaustive** — only
76
+ > listed assets are resolvable. Files on disk that you forgot to list still show
77
+ > up in `skaile manage` (the browse scan walks the filesystem) but **fail at
78
+ > install** with `Asset not found`. Keep the list complete, or omit it and rely
79
+ > on convention. This is the #1 authoring footgun.
80
+
81
+ ## Frontmatter conventions (`SKILL.md` et al.)
82
+
83
+ Follow the agentskills.io convention: identity at the top level, skaile
84
+ extensions nested under `metadata:` (both locations are read for `version` and
85
+ `requires`, so either works).
86
+
87
+ ```markdown
88
+ ---
89
+ name: audit # MUST equal the assets[].name in skaile.yaml
90
+ description: "Use when ..." # one line; this is what the model matches on
91
+ metadata:
92
+ version: '1.4.0' # source skaile.yaml is authoritative; this is a hint only
93
+ stage: stable
94
+ tags: [review, quality, ci]
95
+ requires: # peer assets this one needs — kind:name form
96
+ - contract:implementation-contract
97
+ - skill:use-exa
98
+ ---
99
+
100
+ # Audit
101
+ ...skill body the agent reads at runtime...
102
+ ```
103
+
104
+ Rules that bite:
105
+ - **`name:` MUST equal the `assets[].name`** in `skaile.yaml`. Mismatch is an
106
+ index-time hard error.
107
+ - `metadata.version` is **ignored for resolution** — the source `skaile.yaml`
108
+ version (or git-tag waterfall) is authoritative. Keep it as documentation only.
109
+ - `description:` is the model-facing trigger. Write it as "Use when …"; it
110
+ decides whether the skill gets surfaced.
111
+
112
+ ## `requires:` vs `dependencies:` — don't confuse them
113
+
114
+ | Field | Where | Form | Resolves to |
115
+ |---|---|---|---|
116
+ | `requires:` | content frontmatter (`SKILL.md`, `agent.yaml`) | **`kind:name`** (bare) | a peer asset in the *same source* — publisher inherited |
117
+ | `dependencies:` | a **bundle** manifest, or a *project's* `skaile.yaml` | **full canonical ref** `kind:@publisher/name[#version]` | any asset, cross-source |
118
+
119
+ So a skill that needs a co-located contract writes `requires: [contract:implementation-contract]`.
120
+ A bundle that fans out across publishers writes
121
+ `dependencies: [skill:@skaile-ai/audit#^1.4, skill:@vercel-labs/agent-skills]`.
122
+ The full grammar lives in [authoring-skaile-manifests].
123
+
124
+ ## Bundles — group assets for one-shot install
125
+
126
+ A `*.bundle.yaml` lists canonical refs; installing the bundle pulls every member
127
+ (and nested bundles, any depth — cycles are de-duped).
128
+
129
+ ```yaml
130
+ name: mvp
131
+ version: 1.0.0
132
+ description: "MVP pipeline: concept → spec → mockup → build."
133
+ dependencies:
134
+ - skill:@skaile-ai/concept-brief
135
+ - skill:@skaile-ai/product-spec-features#^1.0
136
+ - agent:@skaile-ai/impl-build-implement
137
+ ```
138
+
139
+ ## Authoring checklist
140
+
141
+ 1. Pick the kind + name; create the manifest file (`SKILL.md`, `agent.yaml`, …).
142
+ 2. Write a sharp `description:` ("Use when …").
143
+ 3. Declare same-source peers in `requires:` (`kind:name`).
144
+ 4. If publishing as a curated source: add the asset to `skaile.yaml` `assets:`
145
+ and confirm `name:` matches. Run [authoring-skaile-manifests] to author/verify.
146
+ 5. Test locally before pushing (below).
147
+ 6. Commit; tag a SemVer release (`vX.Y.Z`) so the version waterfall resolves.
148
+
149
+ ## Test a source locally — no publish needed
150
+
151
+ ```bash
152
+ # In a throwaway consumer project:
153
+ skaile init
154
+ skaile source add <path-or-git-url> # register your repo as a source
155
+ skaile source sync # clone/refresh + rebuild manifest cache
156
+ skaile manage # browse the tree — every asset should appear
157
+ skaile add skill:@<publisher>/<name> # resolve+deploy one asset; watch for "Asset not found"
158
+ skaile catalog test # debug the read protocol (resolve/list)
159
+ skaile install # resolve the full dependency closure
160
+ ```
161
+
162
+ If `skaile manage` shows an asset but `skaile add` errors `Asset not found`, the
163
+ asset is on disk but missing from the `assets:` list — see the footgun warning
164
+ above.
165
+
166
+ ## Common failures
167
+
168
+ | Symptom | Cause | Fix |
169
+ |---|---|---|
170
+ | `Asset not found` on an asset visible in `manage` | omitted from `assets:` | add it, or drop `assets:` and use convention |
171
+ | `name mismatch` at index time | `SKILL.md` `name:` ≠ `assets[].name` | make them equal |
172
+ | `publisher must be declared` | non-GitHub source URL, no `publisher:` | set `publisher:` in `skaile.yaml` |
173
+ | `publisher required in asset ref` | a dep uses legacy `kind:name@pub` | migrate to `kind:@pub/name` (see [authoring-skaile-manifests]) |
174
+ | dep silently absent at runtime | `requires:` used a full canonical ref | `requires:` is `kind:name` only; full refs go in bundle/project `dependencies:` |
175
+
176
+ [authoring-skaile-manifests]: ../authoring-skaile-manifests/SKILL.md