@skaile/workspaces 4.39.0 → 5.1.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 (392) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/asset-feeds-TU5CS6QL.js +131 -0
  3. package/dist/asset-feeds-TU5CS6QL.js.map +1 -0
  4. package/dist/asset-manager/catalog-deployer.js +12 -11
  5. package/dist/asset-manager/index.js +17 -16
  6. package/dist/asset-manager/installer.js +12 -11
  7. package/dist/asset-manager/src/catalog-deployer.d.ts +1 -3
  8. package/dist/asset-manager/src/catalog-deployer.d.ts.map +1 -1
  9. package/dist/asset-manager/src/index.d.ts +8 -9
  10. package/dist/asset-manager/src/index.d.ts.map +1 -1
  11. package/dist/bridge/drivers/claude-sdk.js +25 -13
  12. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  13. package/dist/bridge/drivers/codex.js +13 -12
  14. package/dist/bridge/drivers/codex.js.map +1 -1
  15. package/dist/bridge/drivers/continue.js +14 -13
  16. package/dist/bridge/drivers/continue.js.map +1 -1
  17. package/dist/bridge/drivers/echo.js +2 -2
  18. package/dist/bridge/drivers/gemini.js +6 -6
  19. package/dist/bridge/drivers/goose.js +14 -13
  20. package/dist/bridge/drivers/goose.js.map +1 -1
  21. package/dist/bridge/drivers/omp.js +3 -3
  22. package/dist/bridge/drivers/opencode.js +14 -13
  23. package/dist/bridge/drivers/opencode.js.map +1 -1
  24. package/dist/bridge/drivers/qwen.js +6 -6
  25. package/dist/bridge/index.js +15 -14
  26. package/dist/bridge/src/drivers/claude-sdk.d.ts +4 -0
  27. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  28. package/dist/bridge/src/types.d.ts +7 -0
  29. package/dist/bridge/src/types.d.ts.map +1 -1
  30. package/dist/{chunk-NLKIW2VI.js → chunk-2Y6DSR36.js} +5 -4
  31. package/dist/chunk-2Y6DSR36.js.map +1 -0
  32. package/dist/{chunk-H7N6RWNF.js → chunk-3KSAFYD4.js} +9 -5
  33. package/dist/chunk-3KSAFYD4.js.map +1 -0
  34. package/dist/{chunk-SM6EUQMY.js → chunk-3NGPZC44.js} +11 -11
  35. package/dist/chunk-3NGPZC44.js.map +1 -0
  36. package/dist/{chunk-A5EDMBFG.js → chunk-43ZBF3WH.js} +5 -8
  37. package/dist/chunk-43ZBF3WH.js.map +1 -0
  38. package/dist/{chunk-P7BU6DAC.js → chunk-55RMUF4G.js} +76 -33
  39. package/dist/chunk-55RMUF4G.js.map +1 -0
  40. package/dist/{chunk-TQ6XNACF.js → chunk-6LDUA57J.js} +25 -26
  41. package/dist/chunk-6LDUA57J.js.map +1 -0
  42. package/dist/chunk-A2ULN3KX.js +40 -0
  43. package/dist/chunk-A2ULN3KX.js.map +1 -0
  44. package/dist/{chunk-DSB6X25D.js → chunk-AG44ZJ7W.js} +3 -3
  45. package/dist/{chunk-DSB6X25D.js.map → chunk-AG44ZJ7W.js.map} +1 -1
  46. package/dist/{chunk-YCMZHL4T.js → chunk-AGWYBS2E.js} +6 -6
  47. package/dist/{chunk-YCMZHL4T.js.map → chunk-AGWYBS2E.js.map} +1 -1
  48. package/dist/{chunk-35G4M33T.js → chunk-AOMWF2OE.js} +4 -4
  49. package/dist/chunk-AOMWF2OE.js.map +1 -0
  50. package/dist/{chunk-X4DKUGV4.js → chunk-AYNPGPT5.js} +9 -15
  51. package/dist/chunk-AYNPGPT5.js.map +1 -0
  52. package/dist/{chunk-SSCPTAFJ.js → chunk-CI6FQ654.js} +3 -3
  53. package/dist/{chunk-SSCPTAFJ.js.map → chunk-CI6FQ654.js.map} +1 -1
  54. package/dist/{chunk-6X4DHKHP.js → chunk-CT6NQSA4.js} +3 -3
  55. package/dist/{chunk-6X4DHKHP.js.map → chunk-CT6NQSA4.js.map} +1 -1
  56. package/dist/{chunk-5K2VT6E2.js → chunk-DXUQCMVT.js} +3 -3
  57. package/dist/{chunk-5K2VT6E2.js.map → chunk-DXUQCMVT.js.map} +1 -1
  58. package/dist/{chunk-3C3ODIDE.js → chunk-E3ZACBHD.js} +13 -16
  59. package/dist/chunk-E3ZACBHD.js.map +1 -0
  60. package/dist/{chunk-C75VKXAM.js → chunk-E67J56FJ.js} +3 -3
  61. package/dist/{chunk-C75VKXAM.js.map → chunk-E67J56FJ.js.map} +1 -1
  62. package/dist/{chunk-B4IAZTZZ.js → chunk-EB6OPURC.js} +3 -3
  63. package/dist/{chunk-B4IAZTZZ.js.map → chunk-EB6OPURC.js.map} +1 -1
  64. package/dist/{chunk-VXPFSZDT.js → chunk-EPHQWHOH.js} +6 -6
  65. package/dist/{chunk-VXPFSZDT.js.map → chunk-EPHQWHOH.js.map} +1 -1
  66. package/dist/chunk-F7JHP7JV.js +122 -0
  67. package/dist/chunk-F7JHP7JV.js.map +1 -0
  68. package/dist/{chunk-FTPKMJFD.js → chunk-G47EV3V6.js} +2 -2
  69. package/dist/{chunk-FTPKMJFD.js.map → chunk-G47EV3V6.js.map} +1 -1
  70. package/dist/{chunk-252TK4RU.js → chunk-G4T7MYTA.js} +12 -14
  71. package/dist/chunk-G4T7MYTA.js.map +1 -0
  72. package/dist/{chunk-2EL2PBRC.js → chunk-H4EGUQ7M.js} +3 -3
  73. package/dist/{chunk-2EL2PBRC.js.map → chunk-H4EGUQ7M.js.map} +1 -1
  74. package/dist/{chunk-YV3YI3TA.js → chunk-IWCCZL7C.js} +17 -11
  75. package/dist/chunk-IWCCZL7C.js.map +1 -0
  76. package/dist/{chunk-QVLQGXT6.js → chunk-IYIIT4R3.js} +5 -5
  77. package/dist/{chunk-QVLQGXT6.js.map → chunk-IYIIT4R3.js.map} +1 -1
  78. package/dist/{chunk-YYH5EVPM.js → chunk-JUXQUZOQ.js} +12 -4
  79. package/dist/{chunk-YYH5EVPM.js.map → chunk-JUXQUZOQ.js.map} +1 -1
  80. package/dist/{chunk-BCUVRJXV.js → chunk-KAYH6AXN.js} +3 -3
  81. package/dist/{chunk-BCUVRJXV.js.map → chunk-KAYH6AXN.js.map} +1 -1
  82. package/dist/{chunk-JEPSP6XK.js → chunk-MXXKTQXJ.js} +18 -12
  83. package/dist/chunk-MXXKTQXJ.js.map +1 -0
  84. package/dist/{chunk-UDFWBALP.js → chunk-NFGRW3L7.js} +3 -3
  85. package/dist/{chunk-UDFWBALP.js.map → chunk-NFGRW3L7.js.map} +1 -1
  86. package/dist/{chunk-WCWFS36P.js → chunk-P5UQ56RA.js} +3 -3
  87. package/dist/{chunk-WCWFS36P.js.map → chunk-P5UQ56RA.js.map} +1 -1
  88. package/dist/{chunk-ORH2BZEM.js → chunk-QCI6D7E4.js} +69 -22
  89. package/dist/chunk-QCI6D7E4.js.map +1 -0
  90. package/dist/{chunk-5RWL4L3X.js → chunk-QFZFZXQW.js} +171 -28
  91. package/dist/chunk-QFZFZXQW.js.map +1 -0
  92. package/dist/{chunk-DIQDYNXZ.js → chunk-QZLWJETK.js} +3 -3
  93. package/dist/{chunk-DIQDYNXZ.js.map → chunk-QZLWJETK.js.map} +1 -1
  94. package/dist/{chunk-TSVRKUGV.js → chunk-RDTHJSGY.js} +11 -2
  95. package/dist/chunk-RDTHJSGY.js.map +1 -0
  96. package/dist/{chunk-QBQITQAM.js → chunk-RNNUYFFD.js} +3 -3
  97. package/dist/{chunk-QBQITQAM.js.map → chunk-RNNUYFFD.js.map} +1 -1
  98. package/dist/chunk-RVRB27AN.js +64 -0
  99. package/dist/chunk-RVRB27AN.js.map +1 -0
  100. package/dist/{chunk-XU7JET5Z.js → chunk-SP47UJKE.js} +37 -109
  101. package/dist/chunk-SP47UJKE.js.map +1 -0
  102. package/dist/{chunk-EB4ZTESQ.js → chunk-TOSHZX4C.js} +8 -3
  103. package/dist/chunk-TOSHZX4C.js.map +1 -0
  104. package/dist/{chunk-5NYBY6ZE.js → chunk-TVOODIZE.js} +3 -3
  105. package/dist/{chunk-5NYBY6ZE.js.map → chunk-TVOODIZE.js.map} +1 -1
  106. package/dist/{chunk-EOKAFBJ7.js → chunk-TYUJB336.js} +3 -3
  107. package/dist/{chunk-EOKAFBJ7.js.map → chunk-TYUJB336.js.map} +1 -1
  108. package/dist/{chunk-KAJH3XPW.js → chunk-U6K3I3AX.js} +3 -3
  109. package/dist/{chunk-KAJH3XPW.js.map → chunk-U6K3I3AX.js.map} +1 -1
  110. package/dist/{chunk-7RC37XFW.js → chunk-UMSWQKCY.js} +59 -12
  111. package/dist/chunk-UMSWQKCY.js.map +1 -0
  112. package/dist/{chunk-OLMNDIAU.js → chunk-UVOJSWD2.js} +95 -320
  113. package/dist/chunk-UVOJSWD2.js.map +1 -0
  114. package/dist/{chunk-DOVURNRK.js → chunk-VDJKWKH2.js} +3 -3
  115. package/dist/chunk-VDJKWKH2.js.map +1 -0
  116. package/dist/{chunk-VDBP6Y5M.js → chunk-WCQMXBO5.js} +21 -47
  117. package/dist/chunk-WCQMXBO5.js.map +1 -0
  118. package/dist/{chunk-YQEF36D5.js → chunk-WKIOWDLQ.js} +4 -4
  119. package/dist/{chunk-YQEF36D5.js.map → chunk-WKIOWDLQ.js.map} +1 -1
  120. package/dist/{chunk-5LF27VUB.js → chunk-X6E7Y4JD.js} +17 -15
  121. package/dist/chunk-X6E7Y4JD.js.map +1 -0
  122. package/dist/chunk-XUQBVK4R.js +15 -0
  123. package/dist/chunk-XUQBVK4R.js.map +1 -0
  124. package/dist/{chunk-K3IBZ2UZ.js → chunk-XUUYAS3Z.js} +3 -3
  125. package/dist/{chunk-K3IBZ2UZ.js.map → chunk-XUUYAS3Z.js.map} +1 -1
  126. package/dist/{chunk-36ML6SFP.js → chunk-YDJZRLGN.js} +4 -4
  127. package/dist/{chunk-36ML6SFP.js.map → chunk-YDJZRLGN.js.map} +1 -1
  128. package/dist/{chunk-M7GPCWEV.js → chunk-YIVB7GIP.js} +3 -3
  129. package/dist/{chunk-M7GPCWEV.js.map → chunk-YIVB7GIP.js.map} +1 -1
  130. package/dist/{chunk-VJNTB4DN.js → chunk-YMOZC2D3.js} +4 -4
  131. package/dist/{chunk-VJNTB4DN.js.map → chunk-YMOZC2D3.js.map} +1 -1
  132. package/dist/{chunk-OQRB7JUS.js → chunk-YV4J7V53.js} +3 -3
  133. package/dist/{chunk-OQRB7JUS.js.map → chunk-YV4J7V53.js.map} +1 -1
  134. package/dist/{chunk-JXT46QFC.js → chunk-ZDKJHQY2.js} +2 -2
  135. package/dist/{chunk-JXT46QFC.js.map → chunk-ZDKJHQY2.js.map} +1 -1
  136. package/dist/cli/index.js +777 -1120
  137. package/dist/cli/index.js.map +1 -1
  138. package/dist/cli/src/asset-feeds.d.ts +1 -8
  139. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  140. package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
  141. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  142. package/dist/cli/src/commands/flow.d.ts +5 -5
  143. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  144. package/dist/cli/src/commands/library-index.d.ts +5 -12
  145. package/dist/cli/src/commands/library-index.d.ts.map +1 -1
  146. package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
  147. package/dist/cli/src/commands/manage.d.ts +74 -58
  148. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  149. package/dist/cli/src/commands/project.d.ts.map +1 -1
  150. package/dist/cli/src/commands/publish-core.d.ts +10 -0
  151. package/dist/cli/src/commands/publish-core.d.ts.map +1 -1
  152. package/dist/cli/src/commands/run.d.ts.map +1 -1
  153. package/dist/cli/src/commands/show.d.ts +1 -1
  154. package/dist/cli/src/commands/skailify-lib.d.ts +17 -31
  155. package/dist/cli/src/commands/skailify-lib.d.ts.map +1 -1
  156. package/dist/cli/src/commands/source-manifest.d.ts.map +1 -1
  157. package/dist/cli/src/commands/validate.d.ts +20 -2
  158. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  159. package/dist/cli/src/flow-discovery.d.ts +46 -3
  160. package/dist/cli/src/flow-discovery.d.ts.map +1 -1
  161. package/dist/cli/src/helpers.d.ts +6 -0
  162. package/dist/cli/src/helpers.d.ts.map +1 -1
  163. package/dist/cli/src/hooks/pre-commit-version.d.ts +1 -1
  164. package/dist/cli/src/open-library.d.ts +11 -0
  165. package/dist/cli/src/open-library.d.ts.map +1 -1
  166. package/dist/cli/src/skill-walker.d.ts +7 -10
  167. package/dist/cli/src/skill-walker.d.ts.map +1 -1
  168. package/dist/connectors/config.js +7 -6
  169. package/dist/connectors/index.js +23 -22
  170. package/dist/connectors/src/connector-manager.d.ts +53 -3
  171. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  172. package/dist/connectors/src/connector-prompt.d.ts +16 -2
  173. package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
  174. package/dist/connectors/src/fleet-utils.d.ts +3 -4
  175. package/dist/connectors/src/fleet-utils.d.ts.map +1 -1
  176. package/dist/connectors/src/index.d.ts +3 -3
  177. package/dist/connectors/src/index.d.ts.map +1 -1
  178. package/dist/connectors-VX7YRFFS.js +45 -0
  179. package/dist/{connectors-T57XL7EA.js.map → connectors-VX7YRFFS.js.map} +1 -1
  180. package/dist/core/discovery.js +1 -1
  181. package/dist/core/driver-targets.js +1 -1
  182. package/dist/core/index.js +11 -10
  183. package/dist/core/manifest.js +2 -2
  184. package/dist/core/models.js +1 -1
  185. package/dist/core/plugin-groupings.d.ts +2 -0
  186. package/dist/core/plugin-groupings.js +4 -0
  187. package/dist/core/plugin-groupings.js.map +1 -0
  188. package/dist/core/publish-manifest.js +2 -2
  189. package/dist/core/ref.js +1 -1
  190. package/dist/core/runtime-assets.js +7 -6
  191. package/dist/core/src/discovery.d.ts +11 -51
  192. package/dist/core/src/discovery.d.ts.map +1 -1
  193. package/dist/core/src/driver-targets.d.ts +10 -0
  194. package/dist/core/src/driver-targets.d.ts.map +1 -1
  195. package/dist/core/src/index.d.ts +5 -4
  196. package/dist/core/src/index.d.ts.map +1 -1
  197. package/dist/core/src/models.d.ts +6 -33
  198. package/dist/core/src/models.d.ts.map +1 -1
  199. package/dist/core/src/plugin-groupings.d.ts +31 -0
  200. package/dist/core/src/plugin-groupings.d.ts.map +1 -0
  201. package/dist/core/src/repo-manager.d.ts.map +1 -1
  202. package/dist/core/src/settings.d.ts +14 -1
  203. package/dist/core/src/settings.d.ts.map +1 -1
  204. package/dist/core/src/workspace-config.d.ts +1 -1
  205. package/dist/core/store.js +2 -2
  206. package/dist/core/workspace-config.js +6 -5
  207. package/dist/deploy/index.js +11 -10
  208. package/dist/deploy/index.js.map +1 -1
  209. package/dist/discovery/index.js +6 -5
  210. package/dist/discovery/src/discover.d.ts +9 -25
  211. package/dist/discovery/src/discover.d.ts.map +1 -1
  212. package/dist/discovery/src/index.d.ts +0 -2
  213. package/dist/discovery/src/index.d.ts.map +1 -1
  214. package/dist/discovery/src/source-config.d.ts +13 -9
  215. package/dist/discovery/src/source-config.d.ts.map +1 -1
  216. package/dist/discovery/src/tree-entries.d.ts +6 -11
  217. package/dist/discovery/src/tree-entries.d.ts.map +1 -1
  218. package/dist/{ensure-sources-J5CDTQ36.js → ensure-sources-2XQS32WI.js} +20 -19
  219. package/dist/ensure-sources-2XQS32WI.js.map +1 -0
  220. package/dist/factory-assets/README.md +1 -1
  221. package/dist/factory-assets/connectors/box.js +23 -22
  222. package/dist/factory-assets/connectors/deploy.js +23 -22
  223. package/dist/factory-assets/connectors/devserver.js +23 -22
  224. package/dist/factory-assets/connectors/flow/CONNECTOR.md +6 -1
  225. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  226. package/dist/factory-assets/connectors/flow/adapter.js +23 -22
  227. package/dist/factory-assets/connectors/flow/contract/flow.v2.schema.json +13 -3
  228. package/dist/factory-assets/connectors/flow/contract/index.d.ts +1 -0
  229. package/dist/factory-assets/connectors/flow/contract/index.d.ts.map +1 -1
  230. package/dist/factory-assets/connectors/flow/contract/output-fields.d.ts +21 -5
  231. package/dist/factory-assets/connectors/flow/contract/output-fields.d.ts.map +1 -1
  232. package/dist/factory-assets/connectors/flow/contract/schema.d.ts +2 -0
  233. package/dist/factory-assets/connectors/flow/contract/schema.d.ts.map +1 -1
  234. package/dist/factory-assets/connectors/flow/contract/sub-flow-output.d.ts +20 -0
  235. package/dist/factory-assets/connectors/flow/contract/sub-flow-output.d.ts.map +1 -0
  236. package/dist/factory-assets/connectors/flow/contract.js +4 -4
  237. package/dist/factory-assets/connectors/flow/engine/bindings.d.ts.map +1 -1
  238. package/dist/factory-assets/connectors/flow/engine/flow-output.d.ts +12 -0
  239. package/dist/factory-assets/connectors/flow/engine/flow-output.d.ts.map +1 -0
  240. package/dist/factory-assets/connectors/flow/engine/index.d.ts +1 -0
  241. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -1
  242. package/dist/factory-assets/connectors/flow/engine/loader.d.ts +3 -3
  243. package/dist/factory-assets/connectors/flow/engine/locate.d.ts +2 -2
  244. package/dist/factory-assets/connectors/flow/engine/locate.d.ts.map +1 -1
  245. package/dist/factory-assets/connectors/flow/engine/types.d.ts +0 -2
  246. package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -1
  247. package/dist/factory-assets/connectors/flow/engine.js +15 -14
  248. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -1
  249. package/dist/factory-assets/connectors/flow/prompt-fragments.js +3 -3
  250. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  251. package/dist/factory-assets/connectors/flow/run-flow.js +25 -24
  252. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +6 -5
  253. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -1
  254. package/dist/factory-assets/connectors/flow.js +23 -22
  255. package/dist/factory-assets/connectors/git.js +23 -22
  256. package/dist/factory-assets/connectors/gmail.js +23 -22
  257. package/dist/factory-assets/connectors/googledrive.js +23 -22
  258. package/dist/factory-assets/connectors/local.js +23 -22
  259. package/dist/factory-assets/connectors/mattermost.js +23 -22
  260. package/dist/factory-assets/connectors/memory.js +23 -22
  261. package/dist/factory-assets/connectors/minio.js +23 -22
  262. package/dist/factory-assets/connectors/postgres.js +23 -22
  263. package/dist/factory-assets/connectors/s3.js +23 -22
  264. package/dist/factory-assets/connectors/sharepoint.js +23 -22
  265. package/dist/factory-assets/connectors/sqlite.js +23 -22
  266. package/dist/factory-assets/connectors/static-server.js +23 -22
  267. package/dist/factory-assets/connectors/tunnel.js +23 -22
  268. package/dist/factory-assets/connectors/webdav.js +23 -22
  269. package/dist/factory-assets/connectors/xstate-store.js +23 -22
  270. package/dist/factory-assets/connectors/xstate.js +23 -22
  271. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +37 -26
  272. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +2 -2
  273. package/dist/factory-assets/skills/skailify/SKILL.md +10 -19
  274. package/dist/flows-SVCCADGE.js +26 -0
  275. package/dist/{flows-PX53XFV7.js.map → flows-SVCCADGE.js.map} +1 -1
  276. package/dist/helpers-IELQGVGB.js +34 -0
  277. package/dist/{helpers-EP6H3O3S.js.map → helpers-IELQGVGB.js.map} +1 -1
  278. package/dist/library/index.js +15 -14
  279. package/dist/library/install.js +2 -2
  280. package/dist/library/src/index.d.ts +1 -1
  281. package/dist/library/src/index.d.ts.map +1 -1
  282. package/dist/library/src/local/db.d.ts.map +1 -1
  283. package/dist/library/src/local/library-manager.d.ts.map +1 -1
  284. package/dist/library/src/local/library.d.ts.map +1 -1
  285. package/dist/library/src/local/local-catalog-source.d.ts +14 -10
  286. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  287. package/dist/library/src/local/schema.d.ts +1 -20
  288. package/dist/library/src/local/schema.d.ts.map +1 -1
  289. package/dist/library/src/remote/remote-catalog-source.d.ts +1 -11
  290. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  291. package/dist/library/src/sync/manifest-writeback.d.ts +5 -5
  292. package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -1
  293. package/dist/library/src/user-library.d.ts +1 -9
  294. package/dist/library/src/user-library.d.ts.map +1 -1
  295. package/dist/{library-publish-KKT73FJK.js → library-publish-TCFU3X5L.js} +39 -26
  296. package/dist/library-publish-TCFU3X5L.js.map +1 -0
  297. package/dist/open-library-SSBN4FX2.js +40 -0
  298. package/dist/{open-library-R62UBL6E.js.map → open-library-SSBN4FX2.js.map} +1 -1
  299. package/dist/open-registry-CHCWKV5W.js +32 -0
  300. package/dist/open-registry-CHCWKV5W.js.map +1 -0
  301. package/dist/paths-MKSI52PF.js +22 -0
  302. package/dist/{paths-W4LDORQQ.js.map → paths-MKSI52PF.js.map} +1 -1
  303. package/dist/{plugin-store-D45CREMJ.js → plugin-store-SVYV7L4C.js} +13 -12
  304. package/dist/plugin-store-SVYV7L4C.js.map +1 -0
  305. package/dist/plugins/index.js +1 -1
  306. package/dist/plugins/src/catalog-source.d.ts +4 -55
  307. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  308. package/dist/plugins/src/index.d.ts +1 -1
  309. package/dist/plugins/src/index.d.ts.map +1 -1
  310. package/dist/project-PJ37PM6N.js +35 -0
  311. package/dist/{project-GCW5DFAB.js.map → project-PJ37PM6N.js.map} +1 -1
  312. package/dist/resolver/index.js +12 -11
  313. package/dist/runner/index.js +35 -34
  314. package/dist/runner/src/compaction/orchestrator.d.ts +2 -1
  315. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
  316. package/dist/runner/src/compaction-gate.d.ts +13 -0
  317. package/dist/runner/src/compaction-gate.d.ts.map +1 -1
  318. package/dist/runner/src/fleet-health-flag-dispatcher.d.ts +14 -11
  319. package/dist/runner/src/fleet-health-flag-dispatcher.d.ts.map +1 -1
  320. package/dist/runner/src/serve.d.ts.map +1 -1
  321. package/dist/sdk/asset-manager.js +17 -16
  322. package/dist/sdk/bridge.js +15 -14
  323. package/dist/sdk/core.js +11 -10
  324. package/dist/sdk/flow.js +15 -14
  325. package/dist/sdk/index.js +35 -34
  326. package/dist/sdk/index.js.map +1 -1
  327. package/dist/sdk/resolver.js +12 -11
  328. package/dist/sdk/runner.js +35 -34
  329. package/dist/secrets/index.js +2 -2
  330. package/dist/{setup-Q3LXY5AE.js → setup-JW2ZGCUG.js} +25 -24
  331. package/dist/setup-JW2ZGCUG.js.map +1 -0
  332. package/dist/skills-7K2YO3KN.js +26 -0
  333. package/dist/{skills-R3RPIPWP.js.map → skills-7K2YO3KN.js.map} +1 -1
  334. package/dist/source-F2VO32W6.js +41 -0
  335. package/dist/{source-CFQESKJU.js.map → source-F2VO32W6.js.map} +1 -1
  336. package/dist/{source-manifest-publish-3TCBA2RV.js → source-manifest-publish-AXNII2J4.js} +29 -27
  337. package/dist/source-manifest-publish-AXNII2J4.js.map +1 -0
  338. package/dist/tui/index.js +35 -34
  339. package/dist/tui/index.js.map +1 -1
  340. package/dist/workspace-plugin/adapters/mcp.js +40 -18
  341. package/dist/workspace-plugin/adapters/omp.js +21 -21
  342. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  343. package/dist/workspace-plugin/index.js +1 -1
  344. package/dist/workspace-plugin/src/adapters/mcp.d.ts +4 -4
  345. package/dist/workspace-plugin/src/adapters/mcp.d.ts.map +1 -1
  346. package/dist/workspace-plugin/src/adapters/omp.d.ts +2 -2
  347. package/dist/workspace-plugin/src/tools/connectors.d.ts +1 -1
  348. package/dist/workspace-plugin/src/tools/connectors.d.ts.map +1 -1
  349. package/dist/workspace-plugin/src/tools/skills.d.ts +5 -17
  350. package/dist/workspace-plugin/src/tools/skills.d.ts.map +1 -1
  351. package/package.json +7 -1
  352. package/dist/asset-feeds-KXL45ALC.js +0 -210
  353. package/dist/asset-feeds-KXL45ALC.js.map +0 -1
  354. package/dist/chunk-252TK4RU.js.map +0 -1
  355. package/dist/chunk-35G4M33T.js.map +0 -1
  356. package/dist/chunk-3C3ODIDE.js.map +0 -1
  357. package/dist/chunk-5LF27VUB.js.map +0 -1
  358. package/dist/chunk-5RWL4L3X.js.map +0 -1
  359. package/dist/chunk-7RC37XFW.js.map +0 -1
  360. package/dist/chunk-A5EDMBFG.js.map +0 -1
  361. package/dist/chunk-DOVURNRK.js.map +0 -1
  362. package/dist/chunk-EB4ZTESQ.js.map +0 -1
  363. package/dist/chunk-H7N6RWNF.js.map +0 -1
  364. package/dist/chunk-JEPSP6XK.js.map +0 -1
  365. package/dist/chunk-NLKIW2VI.js.map +0 -1
  366. package/dist/chunk-OLMNDIAU.js.map +0 -1
  367. package/dist/chunk-ORH2BZEM.js.map +0 -1
  368. package/dist/chunk-P7BU6DAC.js.map +0 -1
  369. package/dist/chunk-QVZA2MDT.js +0 -81
  370. package/dist/chunk-QVZA2MDT.js.map +0 -1
  371. package/dist/chunk-SM6EUQMY.js.map +0 -1
  372. package/dist/chunk-TQ6XNACF.js.map +0 -1
  373. package/dist/chunk-TSVRKUGV.js.map +0 -1
  374. package/dist/chunk-VDBP6Y5M.js.map +0 -1
  375. package/dist/chunk-X4DKUGV4.js.map +0 -1
  376. package/dist/chunk-XU7JET5Z.js.map +0 -1
  377. package/dist/chunk-YV3YI3TA.js.map +0 -1
  378. package/dist/connectors-T57XL7EA.js +0 -5
  379. package/dist/discovery/src/domains.d.ts +0 -149
  380. package/dist/discovery/src/domains.d.ts.map +0 -1
  381. package/dist/ensure-sources-J5CDTQ36.js.map +0 -1
  382. package/dist/flows-PX53XFV7.js +0 -25
  383. package/dist/helpers-EP6H3O3S.js +0 -33
  384. package/dist/library-publish-KKT73FJK.js.map +0 -1
  385. package/dist/open-library-R62UBL6E.js +0 -38
  386. package/dist/paths-W4LDORQQ.js +0 -21
  387. package/dist/plugin-store-D45CREMJ.js.map +0 -1
  388. package/dist/project-GCW5DFAB.js +0 -34
  389. package/dist/setup-Q3LXY5AE.js.map +0 -1
  390. package/dist/skills-R3RPIPWP.js +0 -25
  391. package/dist/source-CFQESKJU.js +0 -39
  392. package/dist/source-manifest-publish-3TCBA2RV.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import { AssetKindRegistryFrozenError, AssetKindConflictError, AssetKindPatternConflictError, AssetKindPathAmbiguityError } from './chunk-JXT46QFC.js';
2
- import { decodeSkaileManifest, SKAILE_MANIFEST_FILENAME } from './chunk-DSB6X25D.js';
3
- import { parseFrontmatter } from './chunk-5K2VT6E2.js';
4
- import { isValidAssetName } from './chunk-A5EDMBFG.js';
1
+ import { AssetKindRegistryFrozenError, AssetKindConflictError, AssetKindPatternConflictError, AssetKindPathAmbiguityError } from './chunk-ZDKJHQY2.js';
2
+ import { decodeSkaileManifest, SKAILE_MANIFEST_FILENAME } from './chunk-AG44ZJ7W.js';
3
+ import { readPluginGroupings } from './chunk-RVRB27AN.js';
4
+ import { parseFrontmatter } from './chunk-DXUQCMVT.js';
5
+ import { isValidAssetName } from './chunk-43ZBF3WH.js';
5
6
  import { validatePersona, validateRuleset, validateSkill, validateAgent, validateConnector, validateMcpServer, validateContract, validatePrompt, validatePreset } from './chunk-5CYEWBPB.js';
6
7
  import * as fs from 'fs';
7
8
  import * as path from 'path';
@@ -602,11 +603,16 @@ var SourceConfigSchema = z.object({
602
603
  /** Schema version. `1` (glob mode) or `2` (allows `assets:` block). */
603
604
  version: z.union([z.literal(1), z.literal(2)]),
604
605
  /**
605
- * Default publisher namespace template.
606
- * Use `@<domain>` to derive from first-level directory name.
607
- * Use a literal like `@skaile` if the entire repo maps to one publisher.
606
+ * Default publisher namespace — a literal like `@skaile` mapping the whole
607
+ * repo to one publisher, used exactly as written. Never a template: the
608
+ * former `@<domain>` placeholder (publisher = first path segment) is
609
+ * rejected by validation, because the publisher is never derived from a
610
+ * path segment.
608
611
  */
609
- publisher_default: z.string().min(1).refine((v) => v.startsWith("@"), "publisher_default must start with @"),
612
+ publisher_default: z.string().min(1).refine((v) => v.startsWith("@"), "publisher_default must start with @").refine(
613
+ (v) => !v.includes("<domain>"),
614
+ "publisher_default no longer supports the `@<domain>` template (the publisher is never derived from a path segment); set a literal like `@acme`, or map folders with `publisher_overrides`"
615
+ ),
610
616
  /** Default git ref for version resolution. */
611
617
  default_ref: z.string().min(1).default("main"),
612
618
  /** Per-path publisher overrides. Evaluated in order; first match wins. */
@@ -681,10 +687,6 @@ function barePublisher(publisher) {
681
687
  function atPublisher(publisher) {
682
688
  return publisher.startsWith("@") ? publisher : `@${publisher}`;
683
689
  }
684
- function derivePublisherFromPath(p) {
685
- const seg = p.split("/").find((s) => s.length > 0 && s !== ".");
686
- return seg ? `@${seg}` : "@unknown";
687
- }
688
690
  function manifestFilesToStrings(files) {
689
691
  if (!Array.isArray(files) || files.length === 0) return void 0;
690
692
  const out = files.map((f) => typeof f === "string" ? f : f.path).filter((p) => p.length > 0);
@@ -701,11 +703,11 @@ function manifestEntryMetadata(a, manifest) {
701
703
  if (homepage !== void 0) meta.homepage = homepage;
702
704
  return Object.keys(meta).length > 0 ? meta : void 0;
703
705
  }
704
- function adaptManifestAssetEntry(a, manifest) {
706
+ function adaptManifestAssetEntry(a, manifest, fallbackPublisher) {
705
707
  const root = typeof a.root === "string" && a.root.length > 0 ? a.root : void 0;
706
708
  const assetPath = root ?? ".";
707
709
  const files = root ? void 0 : manifestFilesToStrings(a.files);
708
- const publisher = a.publisher ? atPublisher(a.publisher) : manifest.publisher ? atPublisher(manifest.publisher) : derivePublisherFromPath(assetPath);
710
+ const publisher = atPublisher(a.publisher || manifest.publisher || fallbackPublisher);
709
711
  const entry = {
710
712
  path: assetPath,
711
713
  kind: a.kind,
@@ -721,8 +723,8 @@ function adaptManifestAssetEntry(a, manifest) {
721
723
  if (metadata) entry.metadata = metadata;
722
724
  return entry;
723
725
  }
724
- function manifestToSourceConfig(manifest) {
725
- const publisherDefault = manifest.publisher ? atPublisher(manifest.publisher) : "@<domain>";
726
+ function manifestToSourceConfig(manifest, fallbackPublisher) {
727
+ const publisherDefault = atPublisher(manifest.publisher || fallbackPublisher);
726
728
  const devPaths = manifest.dev_paths ?? [];
727
729
  if (!manifest.assets || manifest.assets.length === 0) {
728
730
  return {
@@ -739,10 +741,10 @@ function manifestToSourceConfig(manifest) {
739
741
  default_ref: "main",
740
742
  publisher_overrides: [],
741
743
  dev_paths: devPaths,
742
- assets: manifest.assets.map((a) => adaptManifestAssetEntry(a, manifest))
744
+ assets: manifest.assets.map((a) => adaptManifestAssetEntry(a, manifest, fallbackPublisher))
743
745
  };
744
746
  }
745
- function decodeManifestSourceConfig(text) {
747
+ function decodeManifestSourceConfig(text, fallbackPublisher) {
746
748
  const { manifest, diagnostics } = decodeSkaileManifest(text);
747
749
  const fatal = diagnostics.filter((d) => d.severity === "error");
748
750
  if (fatal.length > 0) {
@@ -751,13 +753,16 @@ function decodeManifestSourceConfig(text) {
751
753
  errors: fatal.map((d) => ({ path: d.path ?? "", message: d.message }))
752
754
  };
753
755
  }
754
- return { ok: true, config: manifestToSourceConfig(manifest) };
756
+ return { ok: true, config: manifestToSourceConfig(manifest, fallbackPublisher) };
755
757
  }
756
- function readManifestSourceConfig(dir) {
758
+ function readManifestSourceConfig(dir, fallbackPublisher) {
757
759
  const filePath = path.join(dir, SKAILE_MANIFEST_FILENAME);
758
760
  if (!fs.existsSync(filePath)) return void 0;
759
761
  try {
760
- const result = decodeManifestSourceConfig(fs.readFileSync(filePath, "utf-8"));
762
+ const result = decodeManifestSourceConfig(
763
+ fs.readFileSync(filePath, "utf-8"),
764
+ fallbackPublisher
765
+ );
761
766
  return result.ok ? result.config : void 0;
762
767
  } catch {
763
768
  return void 0;
@@ -789,20 +794,21 @@ function mergeSourceConfigs(base, overlay) {
789
794
  }
790
795
  return merged;
791
796
  }
792
- function loadMergedSourceConfig(rootPath, sidecarPath) {
797
+ function loadMergedSourceConfig(rootPath, sidecarPath, fallbackPublisher) {
793
798
  return loadMergedSourceConfigFromFile(
794
799
  rootPath,
795
- sidecarPath ? path.join(sidecarPath, SKAILE_MANIFEST_FILENAME) : void 0
800
+ sidecarPath ? path.join(sidecarPath, SKAILE_MANIFEST_FILENAME) : void 0,
801
+ fallbackPublisher
796
802
  );
797
803
  }
798
- function loadMergedSourceConfigFromFile(rootPath, overlayManifestFile) {
799
- const baseResult = loadSourceConfigFromDir(rootPath);
804
+ function loadMergedSourceConfigFromFile(rootPath, overlayManifestFile, fallbackPublisher = path.basename(path.resolve(rootPath)) || "unknown") {
805
+ const baseResult = loadSourceConfigFromDir(rootPath, fallbackPublisher);
800
806
  if (baseResult && !baseResult.ok) return baseResult;
801
807
  const base = baseResult?.ok ? baseResult.config : void 0;
802
808
  let overlay;
803
809
  const overlayWarnings = [];
804
810
  if (overlayManifestFile) {
805
- const overlayResult = loadSourceConfigFromFile(overlayManifestFile);
811
+ const overlayResult = loadSourceConfigFromFile(overlayManifestFile, fallbackPublisher);
806
812
  if (overlayResult && !overlayResult.ok) return overlayResult;
807
813
  if (overlayResult?.ok) {
808
814
  overlay = overlayResult.config;
@@ -815,7 +821,7 @@ function loadMergedSourceConfigFromFile(rootPath, overlayManifestFile) {
815
821
  ok: true,
816
822
  config: {
817
823
  version: 2,
818
- publisher_default: "@<domain>",
824
+ publisher_default: atPublisher(fallbackPublisher),
819
825
  default_ref: "main",
820
826
  publisher_overrides: [],
821
827
  dev_paths: []
@@ -826,14 +832,14 @@ function loadMergedSourceConfigFromFile(rootPath, overlayManifestFile) {
826
832
  if (overlayWarnings.length > 0) warnings.push(...overlayWarnings);
827
833
  return warnings.length > 0 ? { ok: true, config: merged, warnings } : { ok: true, config: merged };
828
834
  }
829
- function loadSourceConfigFromDir(dir) {
830
- return loadSourceConfigFromFile(path.join(dir, SKAILE_MANIFEST_FILENAME));
835
+ function loadSourceConfigFromDir(dir, fallbackPublisher) {
836
+ return loadSourceConfigFromFile(path.join(dir, SKAILE_MANIFEST_FILENAME), fallbackPublisher);
831
837
  }
832
- function loadSourceConfigFromFile(filePath) {
838
+ function loadSourceConfigFromFile(filePath, fallbackPublisher) {
833
839
  if (!fs.existsSync(filePath)) return void 0;
834
840
  try {
835
841
  const text = fs.readFileSync(filePath, "utf-8");
836
- return decodeManifestSourceConfig(text);
842
+ return decodeManifestSourceConfig(text, fallbackPublisher);
837
843
  } catch (err) {
838
844
  return {
839
845
  ok: false,
@@ -1054,184 +1060,6 @@ function validateRequiresSyntax(requires) {
1054
1060
  }
1055
1061
  return errors;
1056
1062
  }
1057
-
1058
- // discovery/src/domains.ts
1059
- var DOMAIN_RELATIONS = /* @__PURE__ */ new Set([
1060
- "additions",
1061
- "alternatives",
1062
- "sequence"
1063
- ]);
1064
- var DOMAIN_SLUG_RE = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
1065
- var DOMAIN_SLUG_MAX = 39;
1066
- function isValidDomainSlug(slug) {
1067
- return slug.length > 0 && slug.length <= DOMAIN_SLUG_MAX && DOMAIN_SLUG_RE.test(slug);
1068
- }
1069
- var DOMAIN_MD_FILENAME = "DOMAIN.md";
1070
- function isDomainMdPath(relativePath) {
1071
- return relativePath === DOMAIN_MD_FILENAME || relativePath.endsWith(`/${DOMAIN_MD_FILENAME}`);
1072
- }
1073
- function posixDirname(p) {
1074
- const i = p.lastIndexOf("/");
1075
- return i === -1 ? "" : p.slice(0, i);
1076
- }
1077
- function normalizeMembers(raw) {
1078
- if (!Array.isArray(raw)) return void 0;
1079
- const out = [];
1080
- for (const m of raw) {
1081
- if (typeof m === "string" && m.length > 0) {
1082
- out.push({ ref: m });
1083
- } else if (m && typeof m === "object" && typeof m.ref === "string") {
1084
- const obj = m;
1085
- const member = { ref: obj.ref };
1086
- if (typeof obj.order === "number") member.order = obj.order;
1087
- if (obj.recommended === true) member.recommended = true;
1088
- out.push(member);
1089
- }
1090
- }
1091
- return out.length > 0 ? out : void 0;
1092
- }
1093
- function parseDomainMd(domainMdPath, frontmatter) {
1094
- const slug = typeof frontmatter.slug === "string" ? frontmatter.slug : typeof frontmatter.name === "string" ? frontmatter.name : "";
1095
- const title = typeof frontmatter.title === "string" && frontmatter.title.length > 0 ? frontmatter.title : slug;
1096
- const publisher = typeof frontmatter.publisher === "string" && frontmatter.publisher.trim().length > 0 ? frontmatter.publisher.trim() : void 0;
1097
- const description = typeof frontmatter.description === "string" ? frontmatter.description.trim() : "";
1098
- const relation = typeof frontmatter.relation === "string" ? frontmatter.relation : "additions";
1099
- const order = typeof frontmatter.order === "number" ? frontmatter.order : void 0;
1100
- const members = normalizeMembers(frontmatter.members);
1101
- return {
1102
- domainRoot: posixDirname(domainMdPath),
1103
- slug,
1104
- title,
1105
- ...publisher !== void 0 ? { publisher } : {},
1106
- description,
1107
- relation,
1108
- ...order !== void 0 ? { order } : {},
1109
- ...members ? { members } : {}
1110
- };
1111
- }
1112
- function claims(root, target) {
1113
- if (root === "") return true;
1114
- return target === root || target.startsWith(`${root}/`);
1115
- }
1116
- function validateDomains(domains) {
1117
- const errors = [];
1118
- for (const d of domains) {
1119
- if (!isValidDomainSlug(d.slug)) {
1120
- errors.push({ code: "InvalidSlug", root: d.domainRoot, value: d.slug });
1121
- }
1122
- if (!DOMAIN_RELATIONS.has(d.relation)) {
1123
- errors.push({ code: "InvalidRelation", root: d.domainRoot, value: d.relation });
1124
- }
1125
- }
1126
- const bySlug = /* @__PURE__ */ new Map();
1127
- for (const d of domains) {
1128
- if (!d.slug) continue;
1129
- const roots2 = bySlug.get(d.slug) ?? [];
1130
- roots2.push(d.domainRoot);
1131
- bySlug.set(d.slug, roots2);
1132
- }
1133
- for (const [slug, roots2] of bySlug) {
1134
- if (roots2.length > 1) errors.push({ code: "DuplicateDomainSlug", slug, roots: roots2.sort() });
1135
- }
1136
- const roots = domains.map((d) => d.domainRoot).sort();
1137
- for (let i = 0; i < roots.length; i++) {
1138
- for (let j = i + 1; j < roots.length; j++) {
1139
- const a = roots[i];
1140
- const b = roots[j];
1141
- if (a === b) continue;
1142
- if (claims(a, b)) errors.push({ code: "DomainNesting", outer: a, inner: b });
1143
- else if (claims(b, a)) errors.push({ code: "DomainNesting", outer: b, inner: a });
1144
- }
1145
- }
1146
- return errors;
1147
- }
1148
- function assignDomain(relativePath, domains) {
1149
- let best;
1150
- for (const d of domains) {
1151
- if (!d.slug) continue;
1152
- if (!claims(d.domainRoot, relativePath)) continue;
1153
- if (!best || d.domainRoot.length > best.domainRoot.length) best = d;
1154
- }
1155
- return best ? best.slug : null;
1156
- }
1157
- function buildDomainIndex(assets, domains) {
1158
- const index = {};
1159
- const unclaimed = [];
1160
- const bySlug = /* @__PURE__ */ new Map();
1161
- for (const d of domains) bySlug.set(d.slug, d);
1162
- const refsBySlug = /* @__PURE__ */ new Map();
1163
- for (const asset of assets) {
1164
- const slug = assignDomain(asset.relativePath, domains);
1165
- if (slug === null) {
1166
- unclaimed.push(asset.ref);
1167
- continue;
1168
- }
1169
- const list = refsBySlug.get(slug) ?? [];
1170
- list.push(asset.ref);
1171
- refsBySlug.set(slug, list);
1172
- }
1173
- for (const [slug, refs] of refsBySlug) {
1174
- const d = bySlug.get(slug);
1175
- const memberOrder = /* @__PURE__ */ new Map();
1176
- const recommended = /* @__PURE__ */ new Set();
1177
- for (const m of d.members ?? []) {
1178
- if (m.order !== void 0) memberOrder.set(m.ref, m.order);
1179
- if (m.recommended) recommended.add(m.ref);
1180
- }
1181
- const ordered = refs.map((ref, i) => ({ ref, i, order: memberOrder.get(ref) })).sort((a, b) => {
1182
- if (a.order !== void 0 && b.order !== void 0) return a.order - b.order || a.i - b.i;
1183
- if (a.order !== void 0) return -1;
1184
- if (b.order !== void 0) return 1;
1185
- return a.i - b.i;
1186
- }).map((x) => x.ref);
1187
- index[slug] = {
1188
- slug,
1189
- title: d.title,
1190
- description: d.description,
1191
- relation: d.relation,
1192
- ...d.order !== void 0 ? { order: d.order } : {},
1193
- members: ordered,
1194
- recommended: ordered.filter((ref) => recommended.has(ref))
1195
- };
1196
- }
1197
- return { index, unclaimed };
1198
- }
1199
- function describeDomainError(e) {
1200
- switch (e.code) {
1201
- case "DomainNesting":
1202
- return {
1203
- path: `${e.inner}/${DOMAIN_MD_FILENAME}`,
1204
- error: `DomainNesting: domain at '${e.inner}' is nested inside domain at '${e.outer || "<repo root>"}'`
1205
- };
1206
- case "DuplicateDomainSlug":
1207
- return {
1208
- path: `${e.roots[0] ?? ""}/${DOMAIN_MD_FILENAME}`,
1209
- error: `DuplicateDomainSlug: slug '${e.slug}' declared by ${e.roots.join(", ")}`
1210
- };
1211
- case "InvalidRelation":
1212
- return {
1213
- path: `${e.root}/${DOMAIN_MD_FILENAME}`,
1214
- error: `InvalidRelation: '${e.value}' (expected additions|alternatives|sequence)`
1215
- };
1216
- case "InvalidSlug":
1217
- return {
1218
- path: `${e.root}/${DOMAIN_MD_FILENAME}`,
1219
- error: `InvalidSlug: '${e.value}' (expected lowercase a-z0-9 with single hyphens, \u226439 chars)`
1220
- };
1221
- }
1222
- }
1223
- function applyDomains(assets, domains) {
1224
- const errors = validateDomains(domains).map(describeDomainError);
1225
- for (const a of assets) {
1226
- const slug = assignDomain(a.relativePath, domains);
1227
- if (slug) a.domainSlug = slug;
1228
- }
1229
- const { index } = buildDomainIndex(assets, domains);
1230
- const ordered = Object.values(index).sort(
1231
- (a, b) => (a.order ?? Number.POSITIVE_INFINITY) - (b.order ?? Number.POSITIVE_INFINITY) || (a.slug < b.slug ? -1 : a.slug > b.slug ? 1 : 0)
1232
- );
1233
- return { domains: ordered, errors };
1234
- }
1235
1063
  var SCANNABLE_EXT = /* @__PURE__ */ new Set([".md", ".mdx", ".markdown", ".txt"]);
1236
1064
  function isNonLocal(token) {
1237
1065
  return token.length === 0 || token.startsWith("#") || token.startsWith("//") || /^[a-z][a-z0-9+.-]*:/i.test(token);
@@ -1432,12 +1260,11 @@ function createDefaultRegistry() {
1432
1260
  return registry;
1433
1261
  }
1434
1262
  function discoverAssetsInTree(rootPath, optionsOrSourceConfig) {
1435
- const { sourceConfig, registry, includeDev, sidecarPath, domainFiles, atomization } = normalizeDiscoveryArgs(rootPath, optionsOrSourceConfig);
1436
- const domainMds = domainFiles ? domainFiles.map((f) => parseDomainMd(f.path, parseDomainFrontmatter(f.content))) : collectDomainMds(sidecarPath ?? rootPath);
1263
+ const { sourceConfig, registry, includeDev, atomization, fallbackPublisher } = normalizeDiscoveryArgs(rootPath, optionsOrSourceConfig);
1437
1264
  if (sourceConfig && isManifestMode(sourceConfig)) {
1438
- return finalizeDomains(
1265
+ return stampPlugins(
1439
1266
  discoverFromManifest(rootPath, sourceConfig, registry, includeDev),
1440
- domainMds
1267
+ rootPath
1441
1268
  );
1442
1269
  }
1443
1270
  const assets = [];
@@ -1465,36 +1292,21 @@ function discoverAssetsInTree(rootPath, optionsOrSourceConfig) {
1465
1292
  seen.add(dedupKey);
1466
1293
  processDiscoveredEntry(
1467
1294
  { absPath, relativePath, kind },
1468
- { registry, sourceConfig, atomization },
1295
+ { registry, sourceConfig, atomization, fallbackPublisher },
1469
1296
  { assets, errors, warnings, allEdges }
1470
1297
  );
1471
1298
  }
1472
1299
  allEdges.push(...extractBodyLinkEdges(assets));
1473
1300
  const graph = buildRequiresGraph(allEdges);
1474
- return finalizeDomains({ assets, graph, errors, warnings }, domainMds);
1475
- }
1476
- function parseDomainFrontmatter(content) {
1477
- const { data } = parseFrontmatter(content);
1478
- return data && typeof data === "object" ? data : {};
1301
+ return stampPlugins({ assets, graph, errors, warnings }, rootPath);
1479
1302
  }
1480
- function collectDomainMds(dir) {
1481
- const out = [];
1482
- for (const { absPath, relativePath } of walkTree(dir)) {
1483
- if (!isDomainMdPath(relativePath)) continue;
1484
- try {
1485
- out.push(
1486
- parseDomainMd(relativePath, parseDomainFrontmatter(fs.readFileSync(absPath, "utf-8")))
1487
- );
1488
- } catch {
1489
- }
1303
+ function stampPlugins(result, rootPath) {
1304
+ const groupings = readPluginGroupings(rootPath);
1305
+ if (groupings.size === 0) return result;
1306
+ for (const a of result.assets) {
1307
+ const plugin = groupings.get(path.posix.dirname(a.relativePath));
1308
+ if (plugin) a.plugin = plugin;
1490
1309
  }
1491
- return out;
1492
- }
1493
- function finalizeDomains(result, domainMds) {
1494
- if (domainMds.length === 0) return result;
1495
- const { domains, errors } = applyDomains(result.assets, domainMds);
1496
- result.errors.push(...errors);
1497
- if (domains.length > 0) result.domains = domains;
1498
1310
  return result;
1499
1311
  }
1500
1312
  function normalizeDiscoveryArgs(rootPath, optionsOrSourceConfig) {
@@ -1503,24 +1315,25 @@ function normalizeDiscoveryArgs(rootPath, optionsOrSourceConfig) {
1503
1315
  let sidecarPath;
1504
1316
  let sidecarManifestFile;
1505
1317
  let includeDev = false;
1506
- let domainFiles;
1507
1318
  let atomization = DEFAULT_ATOMIZATION_POLICY;
1508
- if (optionsOrSourceConfig && ("registry" in optionsOrSourceConfig || "sourceConfig" in optionsOrSourceConfig || "sidecarPath" in optionsOrSourceConfig || "sidecarManifestFile" in optionsOrSourceConfig || "domainFiles" in optionsOrSourceConfig || "atomization" in optionsOrSourceConfig || "includeDev" in optionsOrSourceConfig)) {
1319
+ let explicitPublisher;
1320
+ if (optionsOrSourceConfig && ("registry" in optionsOrSourceConfig || "sourceConfig" in optionsOrSourceConfig || "sidecarPath" in optionsOrSourceConfig || "sidecarManifestFile" in optionsOrSourceConfig || "publisher" in optionsOrSourceConfig || "atomization" in optionsOrSourceConfig || "includeDev" in optionsOrSourceConfig)) {
1509
1321
  sourceConfig = optionsOrSourceConfig.sourceConfig;
1510
1322
  registry = optionsOrSourceConfig.registry;
1511
1323
  sidecarPath = optionsOrSourceConfig.sidecarPath;
1512
1324
  sidecarManifestFile = optionsOrSourceConfig.sidecarManifestFile;
1513
1325
  includeDev = optionsOrSourceConfig.includeDev ?? false;
1514
- domainFiles = optionsOrSourceConfig.domainFiles;
1326
+ explicitPublisher = optionsOrSourceConfig.publisher;
1515
1327
  atomization = optionsOrSourceConfig.atomization ?? DEFAULT_ATOMIZATION_POLICY;
1516
1328
  } else {
1517
1329
  sourceConfig = optionsOrSourceConfig;
1518
1330
  }
1331
+ const fallbackPublisher = explicitPublisher ?? (path.basename(path.resolve(rootPath)) || "unknown");
1519
1332
  if (!registry) {
1520
1333
  registry = createDefaultRegistry();
1521
1334
  }
1522
1335
  if (!sourceConfig && (sidecarManifestFile || sidecarPath)) {
1523
- const merged = sidecarManifestFile ? loadMergedSourceConfigFromFile(rootPath, sidecarManifestFile) : loadMergedSourceConfig(rootPath, sidecarPath);
1336
+ const merged = sidecarManifestFile ? loadMergedSourceConfigFromFile(rootPath, sidecarManifestFile, fallbackPublisher) : loadMergedSourceConfig(rootPath, sidecarPath, fallbackPublisher);
1524
1337
  if (merged.ok) {
1525
1338
  sourceConfig = merged.config;
1526
1339
  }
@@ -1531,8 +1344,8 @@ function normalizeDiscoveryArgs(rootPath, optionsOrSourceConfig) {
1531
1344
  includeDev,
1532
1345
  sidecarPath,
1533
1346
  sidecarManifestFile,
1534
- domainFiles,
1535
- atomization
1347
+ atomization,
1348
+ fallbackPublisher
1536
1349
  };
1537
1350
  }
1538
1351
  function processDiscoveredEntry(entry, ctx, acc) {
@@ -1544,7 +1357,7 @@ function processDiscoveredEntry(entry, ctx, acc) {
1544
1357
  acc.errors.push({ path: relativePath, error: "Failed to parse manifest" });
1545
1358
  return;
1546
1359
  }
1547
- const publisher = resolvePublisher(relativePath, sourceConfig);
1360
+ const publisher = resolvePublisher(relativePath, sourceConfig, ctx.fallbackPublisher);
1548
1361
  const name = deriveName(relativePath, kind, manifest);
1549
1362
  const version = coerceVersion(manifest);
1550
1363
  const ref = `@${publisher}/${name}@${version}`;
@@ -1677,22 +1490,16 @@ function parseManifest2(absPath) {
1677
1490
  return null;
1678
1491
  }
1679
1492
  }
1680
- function resolvePublisher(relativePath, sourceConfig) {
1681
- if (!sourceConfig) {
1682
- const domain = relativePath.split("/")[0] ?? "unknown";
1683
- return domain;
1684
- }
1685
- for (const override of sourceConfig.publisher_overrides) {
1686
- if (relativePath.startsWith(override.path)) {
1687
- return barePublisher(override.publisher);
1493
+ function resolvePublisher(relativePath, sourceConfig, fallbackPublisher) {
1494
+ if (sourceConfig) {
1495
+ for (const override of sourceConfig.publisher_overrides) {
1496
+ if (relativePath.startsWith(override.path)) {
1497
+ return barePublisher(override.publisher);
1498
+ }
1688
1499
  }
1500
+ return barePublisher(sourceConfig.publisher_default);
1689
1501
  }
1690
- const template = sourceConfig.publisher_default;
1691
- if (template.includes("<domain>")) {
1692
- const domain = relativePath.split("/")[0] ?? "unknown";
1693
- return barePublisher(template.replace("<domain>", domain));
1694
- }
1695
- return barePublisher(template);
1502
+ return fallbackPublisher;
1696
1503
  }
1697
1504
  function coerceVersion(manifest) {
1698
1505
  const scalar = (v) => typeof v === "string" ? v : typeof v === "number" ? String(v) : null;
@@ -1731,6 +1538,7 @@ function deriveName(relativePath, kind, manifest) {
1731
1538
  async function discoverAssetsInTreeEntries(entries, options) {
1732
1539
  const registry = options.registry ?? createDefaultRegistry();
1733
1540
  const includeDev = options.includeDev ?? false;
1541
+ const fallbackPublisher = options.publisher ?? "unknown";
1734
1542
  const atomization = options.atomization ?? DEFAULT_ATOMIZATION_POLICY;
1735
1543
  const blobByPath = /* @__PURE__ */ new Map();
1736
1544
  for (const entry of entries) {
@@ -1741,20 +1549,17 @@ async function discoverAssetsInTreeEntries(entries, options) {
1741
1549
  const baseSourceConfig = await resolveSourceConfigFromTree(
1742
1550
  options.sourceConfig,
1743
1551
  blobByPath,
1744
- options.fetchBlob
1552
+ options.fetchBlob,
1553
+ fallbackPublisher
1745
1554
  );
1746
1555
  const resolvedSourceConfig = options.sidecarSourceConfig ? mergeSourceConfigs(baseSourceConfig, options.sidecarSourceConfig) : baseSourceConfig;
1747
- const domainMds = options.domainFiles ? options.domainFiles.map((f) => parseDomainMd(f.path, parseDomainFrontmatter2(f.content))) : await collectDomainMdsFromTree(blobByPath, options.fetchBlob);
1748
1556
  if (resolvedSourceConfig && isManifestMode(resolvedSourceConfig)) {
1749
- return finalizeDomains2(
1750
- await discoverFromManifestTree(
1751
- resolvedSourceConfig,
1752
- blobByPath,
1753
- options.fetchBlob,
1754
- registry,
1755
- includeDev
1756
- ),
1757
- domainMds
1557
+ return discoverFromManifestTree(
1558
+ resolvedSourceConfig,
1559
+ blobByPath,
1560
+ options.fetchBlob,
1561
+ registry,
1562
+ includeDev
1758
1563
  );
1759
1564
  }
1760
1565
  const devPaths = resolvedSourceConfig?.dev_paths ?? [];
@@ -1768,7 +1573,7 @@ async function discoverAssetsInTreeEntries(entries, options) {
1768
1573
  if (shouldSkipBlobPath(relativePath, includeDev, devPaths)) continue;
1769
1574
  const kind = resolveKindForPath(relativePath, registry, errors);
1770
1575
  if (!kind) continue;
1771
- const dir = posixDirname2(relativePath);
1576
+ const dir = posixDirname(relativePath);
1772
1577
  const dedupKey = `${dir}:${kind}`;
1773
1578
  if (seen.has(dedupKey)) continue;
1774
1579
  seen.add(dedupKey);
@@ -1781,7 +1586,8 @@ async function discoverAssetsInTreeEntries(entries, options) {
1781
1586
  registry,
1782
1587
  atomization,
1783
1588
  errors,
1784
- warnings
1589
+ warnings,
1590
+ fallbackPublisher
1785
1591
  );
1786
1592
  if (!result) continue;
1787
1593
  allEdges.push(...result.requires);
@@ -1789,32 +1595,7 @@ async function discoverAssetsInTreeEntries(entries, options) {
1789
1595
  }
1790
1596
  allEdges.push(...await extractBodyLinkEdgesTree(assets, blobByPath, options.fetchBlob));
1791
1597
  const graph = buildRequiresGraph(allEdges);
1792
- return finalizeDomains2({ assets, graph, errors, warnings }, domainMds);
1793
- }
1794
- function parseDomainFrontmatter2(content) {
1795
- const { data } = parseFrontmatter(content);
1796
- return data && typeof data === "object" ? data : {};
1797
- }
1798
- async function collectDomainMdsFromTree(blobByPath, fetchBlob) {
1799
- const out = [];
1800
- for (const [p, entry] of blobByPath) {
1801
- if (!isDomainMdPath(p)) continue;
1802
- let bytes;
1803
- try {
1804
- bytes = await fetchAsBuffer(fetchBlob, entry.sha);
1805
- } catch {
1806
- bytes = null;
1807
- }
1808
- if (bytes) out.push(parseDomainMd(p, parseDomainFrontmatter2(bytes.toString("utf-8"))));
1809
- }
1810
- return out;
1811
- }
1812
- function finalizeDomains2(result, domainMds) {
1813
- if (domainMds.length === 0) return result;
1814
- const { domains, errors } = applyDomains(result.assets, domainMds);
1815
- result.errors.push(...errors);
1816
- if (domains.length > 0) result.domains = domains;
1817
- return result;
1598
+ return { assets, graph, errors, warnings };
1818
1599
  }
1819
1600
  function shouldSkipBlobPath(relativePath, includeDev, devPaths) {
1820
1601
  if (relativePath.startsWith(".git/") || relativePath.startsWith("node_modules/") || relativePath.startsWith(".skaile/") || relativePath.includes("/.git/") || relativePath.includes("/node_modules/") || relativePath.includes("/.skaile/")) {
@@ -1834,7 +1615,7 @@ function resolveKindForPath(relativePath, registry, errors) {
1834
1615
  return void 0;
1835
1616
  }
1836
1617
  }
1837
- async function buildAssetFromBlob(relativePath, kind, blobByPath, fetchBlob, resolvedSourceConfig, registry, atomization, errors, warnings) {
1618
+ async function buildAssetFromBlob(relativePath, kind, blobByPath, fetchBlob, resolvedSourceConfig, registry, atomization, errors, warnings, fallbackPublisher) {
1838
1619
  const manifestEntry = blobByPath.get(relativePath);
1839
1620
  if (!manifestEntry) {
1840
1621
  errors.push({ path: relativePath, error: "Manifest blob disappeared from tree index" });
@@ -1860,7 +1641,7 @@ async function buildAssetFromBlob(relativePath, kind, blobByPath, fetchBlob, res
1860
1641
  errors.push({ path: relativePath, error: "Failed to parse manifest" });
1861
1642
  return null;
1862
1643
  }
1863
- const publisher = resolvePublisher2(relativePath, resolvedSourceConfig);
1644
+ const publisher = resolvePublisher2(relativePath, resolvedSourceConfig, fallbackPublisher);
1864
1645
  const name = deriveName2(relativePath, kind, manifest);
1865
1646
  const version = coerceVersion2(manifest);
1866
1647
  const ref = `@${publisher}/${name}@${version}`;
@@ -1925,22 +1706,16 @@ function parseManifestText(relativePath, text) {
1925
1706
  return null;
1926
1707
  }
1927
1708
  }
1928
- function resolvePublisher2(relativePath, sourceConfig) {
1929
- if (!sourceConfig) {
1930
- const domain = relativePath.split("/")[0] ?? "unknown";
1931
- return domain;
1932
- }
1933
- for (const override of sourceConfig.publisher_overrides) {
1934
- if (relativePath.startsWith(override.path)) {
1935
- return barePublisher(override.publisher);
1709
+ function resolvePublisher2(relativePath, sourceConfig, fallbackPublisher) {
1710
+ if (sourceConfig) {
1711
+ for (const override of sourceConfig.publisher_overrides) {
1712
+ if (relativePath.startsWith(override.path)) {
1713
+ return barePublisher(override.publisher);
1714
+ }
1936
1715
  }
1716
+ return barePublisher(sourceConfig.publisher_default);
1937
1717
  }
1938
- const template = sourceConfig.publisher_default;
1939
- if (template.includes("<domain>")) {
1940
- const domain = relativePath.split("/")[0] ?? "unknown";
1941
- return barePublisher(template.replace("<domain>", domain));
1942
- }
1943
- return barePublisher(template);
1718
+ return fallbackPublisher;
1944
1719
  }
1945
1720
  function coerceVersion2(manifest) {
1946
1721
  const scalar = (v) => typeof v === "string" ? v : typeof v === "number" ? String(v) : null;
@@ -1977,7 +1752,7 @@ function deriveName2(relativePath, kind, manifest) {
1977
1752
  return filename.replace(/\.(md|yaml|json)$/, "");
1978
1753
  }
1979
1754
  function computeFileFilter(kind, manifestPath, blobByPath) {
1980
- const dir = posixDirname2(manifestPath);
1755
+ const dir = posixDirname(manifestPath);
1981
1756
  const manifestName = posixBasename(manifestPath);
1982
1757
  switch (kind) {
1983
1758
  case "skill":
@@ -2120,7 +1895,7 @@ function collectFullDirFilesTree(assetRoot, blobByPath, registry) {
2120
1895
  } catch {
2121
1896
  kind = void 0;
2122
1897
  }
2123
- if (kind) nestedDirs.push(posixDirname2(rel));
1898
+ if (kind) nestedDirs.push(posixDirname(rel));
2124
1899
  }
2125
1900
  }
2126
1901
  const carved = [...new Set(nestedDirs)];
@@ -2161,7 +1936,7 @@ async function extractBodyLinkEdgesTree(assets, blobByPath, fetchBlob) {
2161
1936
  }
2162
1937
  return edges;
2163
1938
  }
2164
- function posixDirname2(p) {
1939
+ function posixDirname(p) {
2165
1940
  const i = p.lastIndexOf("/");
2166
1941
  return i === -1 ? "" : p.slice(0, i);
2167
1942
  }
@@ -2194,13 +1969,13 @@ async function fetchAsBuffer(fetchBlob, sha) {
2194
1969
  if (typeof result === "string") return Buffer.from(result, "utf-8");
2195
1970
  return Buffer.from(result);
2196
1971
  }
2197
- async function resolveSourceConfigFromTree(explicit, blobByPath, fetchBlob) {
1972
+ async function resolveSourceConfigFromTree(explicit, blobByPath, fetchBlob, fallbackPublisher) {
2198
1973
  if (explicit) return explicit;
2199
1974
  const entry = blobByPath.get(SKAILE_MANIFEST_FILENAME);
2200
1975
  if (!entry) return void 0;
2201
1976
  const bytes = await fetchAsBuffer(fetchBlob, entry.sha);
2202
1977
  if (!bytes) return void 0;
2203
- const result = decodeManifestSourceConfig(bytes.toString("utf-8"));
1978
+ const result = decodeManifestSourceConfig(bytes.toString("utf-8"), fallbackPublisher);
2204
1979
  return result.ok ? result.config : void 0;
2205
1980
  }
2206
1981
  async function discoverFromManifestTree(sourceConfig, blobByPath, fetchBlob, registry, includeDev = false) {
@@ -2441,6 +2216,6 @@ function validateRequiresSyntax2(requires) {
2441
2216
  // discovery/src/index.ts
2442
2217
  var VERSION = "0.0.0";
2443
2218
 
2444
- export { AGENT_COMPANION_DIRS, AssetKindRegistry, BUILTIN_PROVIDERS, DEFAULT_ATOMIZATION_POLICY, DOMAIN_MD_FILENAME, SEMVER_RE, SKILL_COMPANION_DIRS, SourceConfigSchema, VERSION, agentProvider, assignDomain, barePublisher, buildDomainIndex, buildRequiresGraph, closeOverReferences, computeDeterministicHash, computeDeterministicHashDetailed, connectorProvider, contractProvider, createDefaultRegistry, createNodeAssetFs, decodeManifestSourceConfig, detectCycles, discoverAssetsInTree, discoverAssetsInTreeEntries, discoverFromManifest, extractPathCandidates, extractRequires, extractSlashCommands, isDomainMdPath, isExcludedDevPath, isManifestMode, isValidDomainSlug, lintUncoveredReferences, loadMergedSourceConfig, loadMergedSourceConfigFromFile, loadSourceConfig, manifestToSourceConfig, mcpServerProvider, mergeSourceConfigs, parseDomainMd, parseSourceConfig, personaProvider, presetProvider, promptProvider, readManifestSourceConfig, rulesetProvider, scanAssetReferences, scanSlashCommandNames, skillProvider, validateDomains, validateSourceConfig };
2445
- //# sourceMappingURL=chunk-OLMNDIAU.js.map
2446
- //# sourceMappingURL=chunk-OLMNDIAU.js.map
2219
+ export { AGENT_COMPANION_DIRS, AssetKindRegistry, BUILTIN_PROVIDERS, DEFAULT_ATOMIZATION_POLICY, SEMVER_RE, SKILL_COMPANION_DIRS, SourceConfigSchema, VERSION, agentProvider, barePublisher, buildRequiresGraph, closeOverReferences, computeDeterministicHash, computeDeterministicHashDetailed, connectorProvider, contractProvider, createDefaultRegistry, createNodeAssetFs, decodeManifestSourceConfig, detectCycles, discoverAssetsInTree, discoverAssetsInTreeEntries, discoverFromManifest, extractPathCandidates, extractRequires, extractSlashCommands, isExcludedDevPath, isManifestMode, lintUncoveredReferences, loadMergedSourceConfig, loadMergedSourceConfigFromFile, loadSourceConfig, manifestToSourceConfig, mcpServerProvider, mergeSourceConfigs, parseSourceConfig, personaProvider, presetProvider, promptProvider, readManifestSourceConfig, rulesetProvider, scanAssetReferences, scanSlashCommandNames, skillProvider, validateSourceConfig };
2220
+ //# sourceMappingURL=chunk-UVOJSWD2.js.map
2221
+ //# sourceMappingURL=chunk-UVOJSWD2.js.map