@skaile/workspaces 5.4.0 → 5.6.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 (429) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/dist/app-sdk/index.js +1 -1
  3. package/dist/{asset-feeds-3MVRNS5U.js → asset-feeds-4O2JK5S4.js} +27 -14
  4. package/dist/asset-feeds-4O2JK5S4.js.map +1 -0
  5. package/dist/asset-manager/catalog-deployer.js +9 -9
  6. package/dist/asset-manager/index.js +18 -18
  7. package/dist/asset-manager/installer.js +11 -11
  8. package/dist/asset-manager/renderers.js +20 -2
  9. package/dist/asset-manager/src/index.d.ts +75 -24
  10. package/dist/asset-manager/src/index.d.ts.map +1 -1
  11. package/dist/asset-manager/src/install-agent.d.ts +22 -14
  12. package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
  13. package/dist/asset-manager/src/install-instances.d.ts +55 -0
  14. package/dist/asset-manager/src/install-instances.d.ts.map +1 -0
  15. package/dist/asset-manager/src/installer.d.ts +30 -7
  16. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  17. package/dist/asset-manager/src/renderers.d.ts +29 -8
  18. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  19. package/dist/bridge/drivers/claude-sdk.js +14 -14
  20. package/dist/bridge/drivers/codex.js +20 -14
  21. package/dist/bridge/drivers/codex.js.map +1 -1
  22. package/dist/bridge/drivers/continue.js +11 -11
  23. package/dist/bridge/drivers/echo.js +3 -3
  24. package/dist/bridge/drivers/gemini.js +6 -6
  25. package/dist/bridge/drivers/goose.js +11 -11
  26. package/dist/bridge/drivers/omp.js +4 -4
  27. package/dist/bridge/drivers/opencode.js +11 -11
  28. package/dist/bridge/drivers/qwen.js +6 -6
  29. package/dist/bridge/index.js +15 -15
  30. package/dist/bridge/src/codex/native-policy.d.ts +1 -1
  31. package/dist/bridge/src/drivers/codex.d.ts +2 -1
  32. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  33. package/dist/{chunk-LUBS5DXY.js → chunk-27HS2DHB.js} +4 -4
  34. package/dist/{chunk-LUBS5DXY.js.map → chunk-27HS2DHB.js.map} +1 -1
  35. package/dist/{chunk-RD6GE4HU.js → chunk-2GRB5ITE.js} +4 -4
  36. package/dist/{chunk-RD6GE4HU.js.map → chunk-2GRB5ITE.js.map} +1 -1
  37. package/dist/{chunk-UKDFOOEG.js → chunk-2NYXQYHN.js} +4 -4
  38. package/dist/{chunk-UKDFOOEG.js.map → chunk-2NYXQYHN.js.map} +1 -1
  39. package/dist/{chunk-6IGFSUTE.js → chunk-2W4LBLIN.js} +388 -61
  40. package/dist/chunk-2W4LBLIN.js.map +1 -0
  41. package/dist/{chunk-OXE5A6H6.js → chunk-2XFUXGV6.js} +3 -3
  42. package/dist/{chunk-OXE5A6H6.js.map → chunk-2XFUXGV6.js.map} +1 -1
  43. package/dist/{chunk-ZDKJHQY2.js → chunk-3TXEJN4W.js} +2 -2
  44. package/dist/{chunk-ZDKJHQY2.js.map → chunk-3TXEJN4W.js.map} +1 -1
  45. package/dist/{chunk-QK756IRJ.js → chunk-436GRQC2.js} +15 -15
  46. package/dist/chunk-436GRQC2.js.map +1 -0
  47. package/dist/{chunk-JELTQ4H7.js → chunk-45VFGT7A.js} +3 -3
  48. package/dist/{chunk-JELTQ4H7.js.map → chunk-45VFGT7A.js.map} +1 -1
  49. package/dist/{chunk-XGIS325V.js → chunk-46OVMT76.js} +3 -3
  50. package/dist/{chunk-XGIS325V.js.map → chunk-46OVMT76.js.map} +1 -1
  51. package/dist/{chunk-37GBJLF5.js → chunk-47ZD34KB.js} +3 -3
  52. package/dist/{chunk-37GBJLF5.js.map → chunk-47ZD34KB.js.map} +1 -1
  53. package/dist/{chunk-BATL2CWI.js → chunk-4CTGEEN6.js} +297 -124
  54. package/dist/chunk-4CTGEEN6.js.map +1 -0
  55. package/dist/{chunk-DTV7HL5R.js → chunk-4GNJELPH.js} +2 -2
  56. package/dist/{chunk-DTV7HL5R.js.map → chunk-4GNJELPH.js.map} +1 -1
  57. package/dist/{chunk-AE42DHSH.js → chunk-5B5IZVEP.js} +2 -2
  58. package/dist/{chunk-AE42DHSH.js.map → chunk-5B5IZVEP.js.map} +1 -1
  59. package/dist/{chunk-BHUHGLNS.js → chunk-6NPINANG.js} +6 -6
  60. package/dist/{chunk-BHUHGLNS.js.map → chunk-6NPINANG.js.map} +1 -1
  61. package/dist/{chunk-SQBPE66C.js → chunk-7KLC4LZO.js} +8 -8
  62. package/dist/{chunk-SQBPE66C.js.map → chunk-7KLC4LZO.js.map} +1 -1
  63. package/dist/{chunk-SR4RFKHM.js → chunk-7ZHLYXTI.js} +3 -3
  64. package/dist/{chunk-SR4RFKHM.js.map → chunk-7ZHLYXTI.js.map} +1 -1
  65. package/dist/{chunk-WX74MVNA.js → chunk-AO7VJ6G6.js} +3 -24
  66. package/dist/chunk-AO7VJ6G6.js.map +1 -0
  67. package/dist/{chunk-UAAAERXI.js → chunk-AOAZCSDI.js} +4 -3
  68. package/dist/chunk-AOAZCSDI.js.map +1 -0
  69. package/dist/{chunk-JCATNLY3.js → chunk-BF33SCLY.js} +10 -5
  70. package/dist/chunk-BF33SCLY.js.map +1 -0
  71. package/dist/{chunk-VKSA2CDJ.js → chunk-BTISGSK4.js} +4 -4
  72. package/dist/{chunk-VKSA2CDJ.js.map → chunk-BTISGSK4.js.map} +1 -1
  73. package/dist/{chunk-TOSHZX4C.js → chunk-CPSIPIX7.js} +2 -2
  74. package/dist/chunk-CPSIPIX7.js.map +1 -0
  75. package/dist/{chunk-K2K7OF4P.js → chunk-DMLDYFDS.js} +23 -6
  76. package/dist/chunk-DMLDYFDS.js.map +1 -0
  77. package/dist/{chunk-A67BHJCH.js → chunk-DZM73WDN.js} +4 -4
  78. package/dist/{chunk-A67BHJCH.js.map → chunk-DZM73WDN.js.map} +1 -1
  79. package/dist/{chunk-QMWMSZQ4.js → chunk-FK6HPLQA.js} +3 -3
  80. package/dist/{chunk-QMWMSZQ4.js.map → chunk-FK6HPLQA.js.map} +1 -1
  81. package/dist/chunk-FRHE7FFB.js +655 -0
  82. package/dist/chunk-FRHE7FFB.js.map +1 -0
  83. package/dist/{chunk-37DN45RR.js → chunk-IPWR33AW.js} +181 -111
  84. package/dist/chunk-IPWR33AW.js.map +1 -0
  85. package/dist/{chunk-2XXAVTTO.js → chunk-KUFNKVBM.js} +3 -3
  86. package/dist/{chunk-2XXAVTTO.js.map → chunk-KUFNKVBM.js.map} +1 -1
  87. package/dist/{chunk-GCYD4EGY.js → chunk-KYXOGHY6.js} +4 -4
  88. package/dist/{chunk-GCYD4EGY.js.map → chunk-KYXOGHY6.js.map} +1 -1
  89. package/dist/{chunk-ZIYYMR6Y.js → chunk-LLKKLKZJ.js} +3 -3
  90. package/dist/{chunk-ZIYYMR6Y.js.map → chunk-LLKKLKZJ.js.map} +1 -1
  91. package/dist/{chunk-Y5OCUOXF.js → chunk-MX3UQXLU.js} +52 -35
  92. package/dist/chunk-MX3UQXLU.js.map +1 -0
  93. package/dist/{chunk-7KITVWXK.js → chunk-MX6LZE2C.js} +44 -13
  94. package/dist/chunk-MX6LZE2C.js.map +1 -0
  95. package/dist/{chunk-BNUZEYC3.js → chunk-NARITJS2.js} +3 -3
  96. package/dist/{chunk-BNUZEYC3.js.map → chunk-NARITJS2.js.map} +1 -1
  97. package/dist/{chunk-OANSNVCP.js → chunk-NLXIALVO.js} +5 -5
  98. package/dist/{chunk-OANSNVCP.js.map → chunk-NLXIALVO.js.map} +1 -1
  99. package/dist/{chunk-U6ORGQHZ.js → chunk-O5GDKC5I.js} +3 -3
  100. package/dist/{chunk-U6ORGQHZ.js.map → chunk-O5GDKC5I.js.map} +1 -1
  101. package/dist/{chunk-ZUZ5LLZ2.js → chunk-OGLDAJFL.js} +4 -4
  102. package/dist/{chunk-ZUZ5LLZ2.js.map → chunk-OGLDAJFL.js.map} +1 -1
  103. package/dist/chunk-OLLAQLFJ.js +17 -0
  104. package/dist/chunk-OLLAQLFJ.js.map +1 -0
  105. package/dist/{chunk-LFMX2UEF.js → chunk-PA7WLID3.js} +86 -69
  106. package/dist/chunk-PA7WLID3.js.map +1 -0
  107. package/dist/{chunk-UNRZCQD4.js → chunk-PJS2YWGG.js} +6 -6
  108. package/dist/{chunk-UNRZCQD4.js.map → chunk-PJS2YWGG.js.map} +1 -1
  109. package/dist/{chunk-VETH6MDG.js → chunk-RGXVQZOV.js} +6021 -3099
  110. package/dist/chunk-RGXVQZOV.js.map +1 -0
  111. package/dist/{chunk-JEA32KB6.js → chunk-S7QXEXKY.js} +19 -6
  112. package/dist/chunk-S7QXEXKY.js.map +1 -0
  113. package/dist/{chunk-JKWU6ULI.js → chunk-SDFROXSA.js} +3 -3
  114. package/dist/{chunk-JKWU6ULI.js.map → chunk-SDFROXSA.js.map} +1 -1
  115. package/dist/{chunk-XMQAV6T3.js → chunk-SX4UIDKT.js} +3 -3
  116. package/dist/{chunk-XMQAV6T3.js.map → chunk-SX4UIDKT.js.map} +1 -1
  117. package/dist/{chunk-QEXEHXX5.js → chunk-TZCQ7ZWQ.js} +83 -9
  118. package/dist/chunk-TZCQ7ZWQ.js.map +1 -0
  119. package/dist/{chunk-ONWTPXVU.js → chunk-UAP2XHRF.js} +10 -10
  120. package/dist/{chunk-ONWTPXVU.js.map → chunk-UAP2XHRF.js.map} +1 -1
  121. package/dist/{chunk-JF26V3BC.js → chunk-V7NN3HXR.js} +7 -12
  122. package/dist/chunk-V7NN3HXR.js.map +1 -0
  123. package/dist/{chunk-LAI7X6I2.js → chunk-VBBBZDI7.js} +3 -3
  124. package/dist/{chunk-LAI7X6I2.js.map → chunk-VBBBZDI7.js.map} +1 -1
  125. package/dist/{chunk-TNWXGHLD.js → chunk-VKSXST23.js} +51 -42
  126. package/dist/chunk-VKSXST23.js.map +1 -0
  127. package/dist/{chunk-HTKZ4AOW.js → chunk-VSQFGU5D.js} +3 -3
  128. package/dist/{chunk-HTKZ4AOW.js.map → chunk-VSQFGU5D.js.map} +1 -1
  129. package/dist/{chunk-IDUGP4V7.js → chunk-VX3INFBA.js} +4 -4
  130. package/dist/{chunk-IDUGP4V7.js.map → chunk-VX3INFBA.js.map} +1 -1
  131. package/dist/{chunk-Y7UBRRKG.js → chunk-XOGG7VDZ.js} +40 -31
  132. package/dist/chunk-XOGG7VDZ.js.map +1 -0
  133. package/dist/{chunk-JAJG4G5E.js → chunk-ZBBM6O6P.js} +3 -3
  134. package/dist/{chunk-JAJG4G5E.js.map → chunk-ZBBM6O6P.js.map} +1 -1
  135. package/dist/cli/index.js +5031 -3384
  136. package/dist/cli/index.js.map +1 -1
  137. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  138. package/dist/cli/src/commands/catalog.d.ts +7 -7
  139. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  140. package/dist/cli/src/commands/connector.d.ts +2 -2
  141. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  142. package/dist/cli/src/commands/diff.d.ts.map +1 -1
  143. package/dist/cli/src/commands/history.d.ts.map +1 -1
  144. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  145. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  146. package/dist/cli/src/commands/migrate-agents.d.ts +131 -0
  147. package/dist/cli/src/commands/migrate-agents.d.ts.map +1 -0
  148. package/dist/cli/src/commands/migrate-assets.d.ts +54 -0
  149. package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -0
  150. package/dist/cli/src/commands/migrate-files.d.ts +52 -0
  151. package/dist/cli/src/commands/migrate-files.d.ts.map +1 -0
  152. package/dist/cli/src/commands/migrate-providers.d.ts +5 -8
  153. package/dist/cli/src/commands/migrate-providers.d.ts.map +1 -1
  154. package/dist/cli/src/commands/migrate.d.ts +21 -0
  155. package/dist/cli/src/commands/migrate.d.ts.map +1 -0
  156. package/dist/cli/src/commands/npx.d.ts.map +1 -1
  157. package/dist/cli/src/commands/outdated.d.ts.map +1 -1
  158. package/dist/cli/src/commands/patch.d.ts.map +1 -1
  159. package/dist/cli/src/commands/preset-cmd.d.ts.map +1 -1
  160. package/dist/cli/src/commands/project.d.ts +13 -1
  161. package/dist/cli/src/commands/project.d.ts.map +1 -1
  162. package/dist/cli/src/commands/rebuild.d.ts.map +1 -1
  163. package/dist/cli/src/commands/run.d.ts.map +1 -1
  164. package/dist/cli/src/commands/show.d.ts.map +1 -1
  165. package/dist/cli/src/commands/tree.d.ts.map +1 -1
  166. package/dist/cli/src/commands/update.d.ts.map +1 -1
  167. package/dist/cli/src/commands/validate-instances.d.ts +17 -0
  168. package/dist/cli/src/commands/validate-instances.d.ts.map +1 -0
  169. package/dist/cli/src/commands/validate.d.ts +14 -0
  170. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  171. package/dist/cli/src/commands/why.d.ts.map +1 -1
  172. package/dist/cli/src/helpers.d.ts +10 -0
  173. package/dist/cli/src/helpers.d.ts.map +1 -1
  174. package/dist/cli/src/open-library.d.ts.map +1 -1
  175. package/dist/cli/src/open-registry.d.ts +13 -16
  176. package/dist/cli/src/open-registry.d.ts.map +1 -1
  177. package/dist/cli/src/type-guards.d.ts +3 -0
  178. package/dist/cli/src/type-guards.d.ts.map +1 -0
  179. package/dist/connectors/config.js +6 -6
  180. package/dist/connectors/index.js +19 -19
  181. package/dist/{connectors-OB3OAZTK.js → connectors-HWENZFKW.js} +22 -22
  182. package/dist/{connectors-OB3OAZTK.js.map → connectors-HWENZFKW.js.map} +1 -1
  183. package/dist/connectors-shared/index.js +2 -2
  184. package/dist/core/driver-targets.js +1 -1
  185. package/dist/core/index.js +8 -8
  186. package/dist/core/manifest.js +2 -2
  187. package/dist/core/models.js +1 -1
  188. package/dist/core/publish-manifest.js +2 -2
  189. package/dist/core/ref.js +1 -1
  190. package/dist/core/runtime-assets.js +6 -6
  191. package/dist/core/src/agent-instances.d.ts +93 -0
  192. package/dist/core/src/agent-instances.d.ts.map +1 -0
  193. package/dist/core/src/agent-prompt-sections.d.ts +90 -0
  194. package/dist/core/src/agent-prompt-sections.d.ts.map +1 -0
  195. package/dist/core/src/driver-targets.d.ts +4 -2
  196. package/dist/core/src/driver-targets.d.ts.map +1 -1
  197. package/dist/core/src/index.d.ts +12 -8
  198. package/dist/core/src/index.d.ts.map +1 -1
  199. package/dist/core/src/manifest.d.ts +71 -27
  200. package/dist/core/src/manifest.d.ts.map +1 -1
  201. package/dist/core/src/models.d.ts +6 -92
  202. package/dist/core/src/models.d.ts.map +1 -1
  203. package/dist/core/src/repo-manager.d.ts +54 -3
  204. package/dist/core/src/repo-manager.d.ts.map +1 -1
  205. package/dist/core/src/type-guards.d.ts +3 -0
  206. package/dist/core/src/type-guards.d.ts.map +1 -0
  207. package/dist/core/src/walker.d.ts +7 -3
  208. package/dist/core/src/walker.d.ts.map +1 -1
  209. package/dist/core/src/workspace-config.d.ts +19 -15
  210. package/dist/core/src/workspace-config.d.ts.map +1 -1
  211. package/dist/core/store.js +2 -2
  212. package/dist/core/workspace-config.js +5 -5
  213. package/dist/deploy/index.js +8 -8
  214. package/dist/discovery/index.js +6 -6
  215. package/dist/discovery/src/builtin-providers.d.ts +5 -4
  216. package/dist/discovery/src/builtin-providers.d.ts.map +1 -1
  217. package/dist/discovery/src/default-registry.d.ts +23 -0
  218. package/dist/discovery/src/default-registry.d.ts.map +1 -0
  219. package/dist/discovery/src/discover.d.ts +0 -6
  220. package/dist/discovery/src/discover.d.ts.map +1 -1
  221. package/dist/discovery/src/index.d.ts +2 -1
  222. package/dist/discovery/src/index.d.ts.map +1 -1
  223. package/dist/discovery/src/tree-entries.d.ts +1 -1
  224. package/dist/discovery/src/tree-entries.d.ts.map +1 -1
  225. package/dist/{ensure-sources-Z3KKLEM6.js → ensure-sources-VCPKNPK2.js} +21 -21
  226. package/dist/{ensure-sources-Z3KKLEM6.js.map → ensure-sources-VCPKNPK2.js.map} +1 -1
  227. package/dist/factory-assets/README.md +3 -3
  228. package/dist/factory-assets/connectors/box.js +19 -19
  229. package/dist/factory-assets/connectors/deploy.js +19 -19
  230. package/dist/factory-assets/connectors/devserver.js +19 -19
  231. package/dist/factory-assets/connectors/flow/adapter.js +19 -19
  232. package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -1
  233. package/dist/factory-assets/connectors/flow/engine.js +9 -9
  234. package/dist/factory-assets/connectors/flow/run-flow.js +21 -21
  235. package/dist/factory-assets/connectors/flow.js +19 -19
  236. package/dist/factory-assets/connectors/git.js +19 -19
  237. package/dist/factory-assets/connectors/gmail.js +19 -19
  238. package/dist/factory-assets/connectors/googledrive.js +19 -19
  239. package/dist/factory-assets/connectors/local.js +19 -19
  240. package/dist/factory-assets/connectors/mattermost.js +19 -19
  241. package/dist/factory-assets/connectors/memory.js +19 -19
  242. package/dist/factory-assets/connectors/minio.js +19 -19
  243. package/dist/factory-assets/connectors/postgres.js +19 -19
  244. package/dist/factory-assets/connectors/s3.js +19 -19
  245. package/dist/factory-assets/connectors/sharepoint.js +19 -19
  246. package/dist/factory-assets/connectors/sqlite.js +19 -19
  247. package/dist/factory-assets/connectors/static-server.js +19 -19
  248. package/dist/factory-assets/connectors/tunnel.js +19 -19
  249. package/dist/factory-assets/connectors/webdav.js +19 -19
  250. package/dist/factory-assets/connectors/xstate-store.js +19 -19
  251. package/dist/factory-assets/connectors/xstate.js +19 -19
  252. package/dist/factory-assets/index.js.map +1 -1
  253. package/dist/factory-assets/presets/workspaces-authoring/workspaces-authoring.preset.yaml +9 -0
  254. package/dist/factory-assets/skaile.manifest.yaml +2 -2
  255. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +16 -12
  256. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +8 -8
  257. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +13 -11
  258. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +1 -1
  259. package/dist/{flows-DTADYIXH.js → flows-ENQY2DV7.js} +13 -13
  260. package/dist/{flows-DTADYIXH.js.map → flows-ENQY2DV7.js.map} +1 -1
  261. package/dist/helpers-IW36CEJX.js +34 -0
  262. package/dist/{helpers-F2RFRT5D.js.map → helpers-IW36CEJX.js.map} +1 -1
  263. package/dist/library/index.js +13 -13
  264. package/dist/library/install.js +3 -3
  265. package/dist/library/src/index.d.ts +2 -2
  266. package/dist/library/src/index.d.ts.map +1 -1
  267. package/dist/library/src/library.d.ts +2 -12
  268. package/dist/library/src/library.d.ts.map +1 -1
  269. package/dist/library/src/local/local-catalog-source.d.ts +2 -2
  270. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  271. package/dist/library/src/manifest-writer.d.ts +4 -1
  272. package/dist/library/src/manifest-writer.d.ts.map +1 -1
  273. package/dist/library/src/remote/remote-catalog-source.d.ts +11 -2
  274. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  275. package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -1
  276. package/dist/{library-publish-62RFU74A.js → library-publish-R3DQLMTD.js} +27 -27
  277. package/dist/{library-publish-62RFU74A.js.map → library-publish-R3DQLMTD.js.map} +1 -1
  278. package/dist/open-library-FAJZRDKE.js +40 -0
  279. package/dist/{open-library-NVG3CZUO.js.map → open-library-FAJZRDKE.js.map} +1 -1
  280. package/dist/open-registry-NVPCQPND.js +32 -0
  281. package/dist/{open-registry-IYH6W6CN.js.map → open-registry-NVPCQPND.js.map} +1 -1
  282. package/dist/paths-YUCP7K6U.js +22 -0
  283. package/dist/{paths-STQO4FYF.js.map → paths-YUCP7K6U.js.map} +1 -1
  284. package/dist/{plugin-store-2DTEIJTG.js → plugin-store-66QFBNEO.js} +10 -10
  285. package/dist/{plugin-store-2DTEIJTG.js.map → plugin-store-66QFBNEO.js.map} +1 -1
  286. package/dist/plugins/index.js +1 -1
  287. package/dist/plugins/src/asset-kind-provider.d.ts +14 -2
  288. package/dist/plugins/src/asset-kind-provider.d.ts.map +1 -1
  289. package/dist/plugins/src/catalog-source.d.ts +7 -0
  290. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  291. package/dist/plugins/src/index.d.ts +1 -1
  292. package/dist/plugins/src/index.d.ts.map +1 -1
  293. package/dist/project-ALJIVFHI.js +41 -0
  294. package/dist/{project-44LM6SRV.js.map → project-ALJIVFHI.js.map} +1 -1
  295. package/dist/resolver/index.js +9 -9
  296. package/dist/runner/index.js +34 -29
  297. package/dist/runner/src/agent-capabilities.d.ts +101 -0
  298. package/dist/runner/src/agent-capabilities.d.ts.map +1 -0
  299. package/dist/runner/src/agent.d.ts.map +1 -1
  300. package/dist/runner/src/agents/in-process-host.d.ts +56 -0
  301. package/dist/runner/src/agents/in-process-host.d.ts.map +1 -0
  302. package/dist/runner/src/agents/instances.d.ts +62 -0
  303. package/dist/runner/src/agents/instances.d.ts.map +1 -0
  304. package/dist/runner/src/agents/json-schema.d.ts +16 -0
  305. package/dist/runner/src/agents/json-schema.d.ts.map +1 -0
  306. package/dist/runner/src/agents/memory-run-store.d.ts +19 -0
  307. package/dist/runner/src/agents/memory-run-store.d.ts.map +1 -0
  308. package/dist/runner/src/agents/run-controller.d.ts +208 -0
  309. package/dist/runner/src/agents/run-controller.d.ts.map +1 -0
  310. package/dist/runner/src/agents/standalone-surface.d.ts +30 -0
  311. package/dist/runner/src/agents/standalone-surface.d.ts.map +1 -0
  312. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  313. package/dist/runner/src/composition/bootstrap.d.ts +13 -51
  314. package/dist/runner/src/composition/bootstrap.d.ts.map +1 -1
  315. package/dist/runner/src/composition/compile.d.ts +43 -27
  316. package/dist/runner/src/composition/compile.d.ts.map +1 -1
  317. package/dist/runner/src/composition/content-source.d.ts +94 -0
  318. package/dist/runner/src/composition/content-source.d.ts.map +1 -0
  319. package/dist/runner/src/composition/dry-run.d.ts +34 -0
  320. package/dist/runner/src/composition/dry-run.d.ts.map +1 -0
  321. package/dist/runner/src/composition/errors.d.ts +41 -0
  322. package/dist/runner/src/composition/errors.d.ts.map +1 -0
  323. package/dist/runner/src/composition/index.d.ts +10 -3
  324. package/dist/runner/src/composition/index.d.ts.map +1 -1
  325. package/dist/runner/src/composition/prompt-sections.d.ts +31 -0
  326. package/dist/runner/src/composition/prompt-sections.d.ts.map +1 -0
  327. package/dist/runner/src/composition/resolve-instance.d.ts +140 -0
  328. package/dist/runner/src/composition/resolve-instance.d.ts.map +1 -0
  329. package/dist/runner/src/composition/resolve.d.ts +43 -25
  330. package/dist/runner/src/composition/resolve.d.ts.map +1 -1
  331. package/dist/runner/src/composition/revision-hash.d.ts +58 -0
  332. package/dist/runner/src/composition/revision-hash.d.ts.map +1 -0
  333. package/dist/runner/src/composition/run-snapshot.d.ts +37 -0
  334. package/dist/runner/src/composition/run-snapshot.d.ts.map +1 -0
  335. package/dist/runner/src/composition/types.d.ts +79 -12
  336. package/dist/runner/src/composition/types.d.ts.map +1 -1
  337. package/dist/runner/src/index.d.ts +2 -0
  338. package/dist/runner/src/index.d.ts.map +1 -1
  339. package/dist/runner/src/manifest.d.ts +1 -1
  340. package/dist/runner/src/manifest.d.ts.map +1 -1
  341. package/dist/runner/src/mixin-resolver.d.ts +14 -15
  342. package/dist/runner/src/mixin-resolver.d.ts.map +1 -1
  343. package/dist/runner/src/serve.d.ts +6 -0
  344. package/dist/runner/src/serve.d.ts.map +1 -1
  345. package/dist/runner/src/session-builder.d.ts +35 -6
  346. package/dist/runner/src/session-builder.d.ts.map +1 -1
  347. package/dist/sdk/asset-manager.js +18 -18
  348. package/dist/sdk/bridge.js +15 -15
  349. package/dist/sdk/core.js +8 -8
  350. package/dist/sdk/flow.js +9 -9
  351. package/dist/sdk/index.js +34 -29
  352. package/dist/sdk/index.js.map +1 -1
  353. package/dist/sdk/resolver.js +9 -9
  354. package/dist/sdk/runner.js +34 -29
  355. package/dist/sdk/session.js +2 -2
  356. package/dist/sdk/types.js +1 -1
  357. package/dist/secrets/index.js +2 -2
  358. package/dist/session/index.js +2 -2
  359. package/dist/{setup-4BV5ZWOZ.js → setup-35JXIA3N.js} +28 -28
  360. package/dist/{setup-4BV5ZWOZ.js.map → setup-35JXIA3N.js.map} +1 -1
  361. package/dist/skills-CS7NE5TT.js +26 -0
  362. package/dist/{skills-M7OU3WMP.js.map → skills-CS7NE5TT.js.map} +1 -1
  363. package/dist/source-ISR4KRZV.js +41 -0
  364. package/dist/{source-HTT6CXUP.js.map → source-ISR4KRZV.js.map} +1 -1
  365. package/dist/{source-manifest-publish-CPXUX3CL.js → source-manifest-publish-P22IPK5F.js} +27 -27
  366. package/dist/{source-manifest-publish-CPXUX3CL.js.map → source-manifest-publish-P22IPK5F.js.map} +1 -1
  367. package/dist/tui/index.js +34 -29
  368. package/dist/tui/index.js.map +1 -1
  369. package/dist/types/index.js +1 -1
  370. package/dist/types/manifests.js +1 -1
  371. package/dist/types/src/agent-lifecycle.d.ts +402 -0
  372. package/dist/types/src/agent-lifecycle.d.ts.map +1 -0
  373. package/dist/types/src/capabilities.d.ts +0 -4
  374. package/dist/types/src/capabilities.d.ts.map +1 -1
  375. package/dist/types/src/delivery.d.ts.map +1 -1
  376. package/dist/types/src/events.d.ts +66 -4
  377. package/dist/types/src/events.d.ts.map +1 -1
  378. package/dist/types/src/index.d.ts +3 -1
  379. package/dist/types/src/index.d.ts.map +1 -1
  380. package/dist/types/src/lifecycle.d.ts +21 -3
  381. package/dist/types/src/lifecycle.d.ts.map +1 -1
  382. package/dist/types/src/manifests/_shared.d.ts +1 -16
  383. package/dist/types/src/manifests/_shared.d.ts.map +1 -1
  384. package/dist/types/src/manifests/agent-composition.d.ts +44 -0
  385. package/dist/types/src/manifests/agent-composition.d.ts.map +1 -0
  386. package/dist/types/src/manifests/agent.d.ts +184 -6
  387. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  388. package/dist/types/src/manifests/index.d.ts +6 -15
  389. package/dist/types/src/manifests/index.d.ts.map +1 -1
  390. package/dist/types/src/manifests/preset.d.ts +5 -5
  391. package/dist/types/src/version.d.ts +16 -1
  392. package/dist/types/src/version.d.ts.map +1 -1
  393. package/dist/workspace-plugin/adapters/mcp.js +26 -26
  394. package/dist/workspace-plugin/adapters/omp.js +14 -14
  395. package/dist/workspace-plugin/index.js +1 -1
  396. package/package.json +1 -1
  397. package/dist/asset-feeds-3MVRNS5U.js.map +0 -1
  398. package/dist/chunk-37DN45RR.js.map +0 -1
  399. package/dist/chunk-5CYEWBPB.js +0 -440
  400. package/dist/chunk-5CYEWBPB.js.map +0 -1
  401. package/dist/chunk-5NH3U6N5.js +0 -15
  402. package/dist/chunk-5NH3U6N5.js.map +0 -1
  403. package/dist/chunk-6IGFSUTE.js.map +0 -1
  404. package/dist/chunk-7KITVWXK.js.map +0 -1
  405. package/dist/chunk-BATL2CWI.js.map +0 -1
  406. package/dist/chunk-JCATNLY3.js.map +0 -1
  407. package/dist/chunk-JEA32KB6.js.map +0 -1
  408. package/dist/chunk-JF26V3BC.js.map +0 -1
  409. package/dist/chunk-K2K7OF4P.js.map +0 -1
  410. package/dist/chunk-LFMX2UEF.js.map +0 -1
  411. package/dist/chunk-QEXEHXX5.js.map +0 -1
  412. package/dist/chunk-QK756IRJ.js.map +0 -1
  413. package/dist/chunk-TNWXGHLD.js.map +0 -1
  414. package/dist/chunk-TOSHZX4C.js.map +0 -1
  415. package/dist/chunk-UAAAERXI.js.map +0 -1
  416. package/dist/chunk-VETH6MDG.js.map +0 -1
  417. package/dist/chunk-WX74MVNA.js.map +0 -1
  418. package/dist/chunk-Y5OCUOXF.js.map +0 -1
  419. package/dist/chunk-Y7UBRRKG.js.map +0 -1
  420. package/dist/factory-assets/bundles/workspaces-authoring/workspaces-authoring.bundle.yaml +0 -9
  421. package/dist/helpers-F2RFRT5D.js +0 -34
  422. package/dist/open-library-NVG3CZUO.js +0 -40
  423. package/dist/open-registry-IYH6W6CN.js +0 -32
  424. package/dist/paths-STQO4FYF.js +0 -22
  425. package/dist/project-44LM6SRV.js +0 -36
  426. package/dist/skills-M7OU3WMP.js +0 -26
  427. package/dist/source-HTT6CXUP.js +0 -41
  428. package/dist/types/src/manifests/mount.d.ts +0 -21
  429. package/dist/types/src/manifests/mount.d.ts.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { globalCacheRoot, globalSkaileDir, mergeLegacyEntriesInto, mergeLegacyEntriesKeyed } from './chunk-MFHKHXDE.js';
2
- import { SUPPORTED_DRIVER_TARGETS, globalHarnessRoot } from './chunk-TOSHZX4C.js';
3
- import { decodeSkaileManifest, compositeSha256, listAssetFiles, SKAILE_MANIFEST_FILENAME, sha256Hex } from './chunk-SR4RFKHM.js';
2
+ import { SUPPORTED_DRIVER_TARGETS, globalHarnessRoot } from './chunk-CPSIPIX7.js';
3
+ import { decodeSkaileManifest, compositeSha256, listAssetFiles, SKAILE_MANIFEST_FILENAME, sha256Hex } from './chunk-7ZHLYXTI.js';
4
4
  import { readPluginGroupings } from './chunk-RVRB27AN.js';
5
- import { scanDirectory, parseFrontmatter, bundleDepRefs, fromMcpServerMdContent, withFsDeadline, tryWithFsDeadline, fsDeadlineMs } from './chunk-LFMX2UEF.js';
6
- import { isValidAssetName, slugifyAssetName, parseAssetRef, assetRefToStr } from './chunk-WX74MVNA.js';
5
+ import { scanDirectory, parseFrontmatter, assetDepRefs, fromMcpServerMdContent, withFsDeadline, tryWithFsDeadline, fsDeadlineMs } from './chunk-PA7WLID3.js';
6
+ import { isValidAssetName, slugifyAssetName, parseAssetRef, assetRefToStr } from './chunk-AO7VJ6G6.js';
7
7
  import { isRetentionValue } from './chunk-C3CAXQMA.js';
8
8
  import { existsSync, readFileSync, mkdirSync, writeFileSync, lstatSync, symlinkSync, rmSync, readdirSync, constants, statSync } from 'fs';
9
9
  import { readdir, stat, cp, rm, open, readFile } from 'fs/promises';
@@ -13,6 +13,247 @@ import { spawnSync } from 'child_process';
13
13
  import semver from 'semver';
14
14
  import fg from 'fast-glob';
15
15
 
16
+ // core/src/type-guards.ts
17
+ function isRecord(value) {
18
+ return value !== null && typeof value === "object" && !Array.isArray(value);
19
+ }
20
+
21
+ // core/src/agent-instances.ts
22
+ var AGENT_INSTANCE_ID_PATTERN = /^[a-z][a-z0-9_-]*$/;
23
+ var DEFAULT_AGENT_INSTANCE_ID = "default";
24
+ var AGENT_INSTANCE_LIFECYCLES = ["standing", "role"];
25
+ var AGENT_INSTANCE_MEMORY_SCOPES = ["instance", "user", "workspace", "none"];
26
+ var AGENT_INSTANCE_TRIGGER_KINDS = ["schedule", "webhook", "channel", "event"];
27
+ var INSTANCE_KEYS = {
28
+ ref: true,
29
+ lifecycle: true,
30
+ model: true,
31
+ permissions: true,
32
+ memory: true,
33
+ triggers: true,
34
+ connectors: true,
35
+ budget: true
36
+ };
37
+ function normalizeAgentInstances(raw, diagnostics) {
38
+ if (raw === void 0 || raw === null) return void 0;
39
+ if (!isRecord(raw)) {
40
+ diagnostics.push({
41
+ code: "invalid_agents_section",
42
+ severity: "error",
43
+ message: "`agents:` must be a mapping of instance id \u2192 { ref, \u2026 }.",
44
+ path: "agents"
45
+ });
46
+ return void 0;
47
+ }
48
+ const out = {};
49
+ for (const [id, value] of Object.entries(raw)) {
50
+ const path = `agents.${id}`;
51
+ if (!AGENT_INSTANCE_ID_PATTERN.test(id)) {
52
+ diagnostics.push({
53
+ code: "invalid_agent_instance_id",
54
+ severity: "error",
55
+ message: `Agent instance id "${id}" must match [a-z][a-z0-9_-]* (lowercase, starts with a letter).`,
56
+ path
57
+ });
58
+ continue;
59
+ }
60
+ if (!isRecord(value) || typeof value.ref !== "string" || value.ref.trim() === "") {
61
+ diagnostics.push({
62
+ code: "invalid_agent_instance",
63
+ severity: "error",
64
+ message: `Agent instance "${id}" needs a non-empty string \`ref\` (e.g. "agent:@publisher/name" or a local path).`,
65
+ path: `${path}.ref`
66
+ });
67
+ continue;
68
+ }
69
+ out[id] = normalizeInstance(id, value, value.ref, diagnostics);
70
+ }
71
+ return Object.keys(out).length > 0 ? out : void 0;
72
+ }
73
+ function normalizeInstance(id, raw, ref, diagnostics) {
74
+ const path = `agents.${id}`;
75
+ const instance = { ref };
76
+ for (const key of Object.keys(raw)) {
77
+ if (INSTANCE_KEYS[key]) continue;
78
+ diagnostics.push({
79
+ code: "unknown_agent_instance_key",
80
+ severity: "warning",
81
+ message: `Unknown key "${key}" on agent instance "${id}" is ignored \u2014 expected one of: ${Object.keys(INSTANCE_KEYS).join(", ")}.`,
82
+ path: `${path}.${key}`
83
+ });
84
+ }
85
+ if (raw.lifecycle !== void 0) {
86
+ if (AGENT_INSTANCE_LIFECYCLES.includes(raw.lifecycle)) {
87
+ instance.lifecycle = raw.lifecycle;
88
+ } else {
89
+ diagnostics.push({
90
+ code: "invalid_agent_instance_lifecycle",
91
+ severity: "error",
92
+ message: `Agent instance "${id}": lifecycle "${String(raw.lifecycle)}" \u2014 expected one of: ${AGENT_INSTANCE_LIFECYCLES.join(", ")}.`,
93
+ path: `${path}.lifecycle`
94
+ });
95
+ }
96
+ }
97
+ if (isRecord(raw.model)) {
98
+ const model = {};
99
+ if (typeof raw.model.preferred === "string") model.preferred = raw.model.preferred;
100
+ if (Array.isArray(raw.model.fallback)) {
101
+ model.fallback = raw.model.fallback.filter((m) => typeof m === "string");
102
+ }
103
+ if (Object.keys(model).length > 0) instance.model = model;
104
+ }
105
+ if (isRecord(raw.permissions)) instance.permissions = raw.permissions;
106
+ if (raw.memory !== void 0) {
107
+ const scope = isRecord(raw.memory) ? raw.memory.scope : void 0;
108
+ if (AGENT_INSTANCE_MEMORY_SCOPES.includes(scope)) {
109
+ instance.memory = { scope };
110
+ } else {
111
+ diagnostics.push({
112
+ code: "invalid_agent_instance_memory_scope",
113
+ severity: "error",
114
+ message: `Agent instance "${id}": memory.scope ${scope === void 0 ? "is required" : `"${String(scope)}" is unknown`} \u2014 expected one of: ${AGENT_INSTANCE_MEMORY_SCOPES.join(", ")}.`,
115
+ path: `${path}.memory.scope`
116
+ });
117
+ }
118
+ }
119
+ if (Array.isArray(raw.triggers)) {
120
+ const triggers = normalizeTriggers(id, raw.triggers, diagnostics);
121
+ if (triggers.length > 0) instance.triggers = triggers;
122
+ } else if (raw.triggers !== void 0) {
123
+ diagnostics.push({
124
+ code: "invalid_agent_instance_triggers",
125
+ severity: "error",
126
+ message: `Agent instance "${id}": triggers must be a list of { id, \u2026 } entries.`,
127
+ path: `${path}.triggers`
128
+ });
129
+ }
130
+ if (isRecord(raw.connectors)) {
131
+ const connectors = {};
132
+ for (const [slot, connectorId] of Object.entries(raw.connectors)) {
133
+ if (typeof connectorId === "string" && connectorId !== "") {
134
+ connectors[slot] = connectorId;
135
+ } else {
136
+ diagnostics.push({
137
+ code: "invalid_agent_instance_connector",
138
+ severity: "error",
139
+ message: `Agent instance "${id}": connectors.${slot} must name a skaile.yaml connectors[].id.`,
140
+ path: `${path}.connectors.${slot}`
141
+ });
142
+ }
143
+ }
144
+ if (Object.keys(connectors).length > 0) instance.connectors = connectors;
145
+ } else if (raw.connectors !== void 0) {
146
+ diagnostics.push({
147
+ code: "invalid_agent_instance_connector",
148
+ severity: "error",
149
+ message: `Agent instance "${id}": connectors must map compose slot ids to connectors[].id.`,
150
+ path: `${path}.connectors`
151
+ });
152
+ }
153
+ if (isRecord(raw.budget)) {
154
+ const budget = {};
155
+ if (typeof raw.budget.max_turns === "number") budget.max_turns = raw.budget.max_turns;
156
+ if (typeof raw.budget.max_tokens === "number") budget.max_tokens = raw.budget.max_tokens;
157
+ if (Object.keys(budget).length > 0) instance.budget = budget;
158
+ }
159
+ return instance;
160
+ }
161
+ function normalizeTriggers(instanceId, raw, diagnostics) {
162
+ const out = [];
163
+ raw.forEach((item, i) => {
164
+ const path = `agents.${instanceId}.triggers[${i}]`;
165
+ if (!isRecord(item) || typeof item.id !== "string" || !AGENT_INSTANCE_ID_PATTERN.test(item.id)) {
166
+ diagnostics.push({
167
+ code: "invalid_agent_instance_trigger",
168
+ severity: "error",
169
+ message: `Agent instance "${instanceId}": trigger ${i} needs an \`id\` matching [a-z][a-z0-9_-]*.`,
170
+ path: `${path}.id`
171
+ });
172
+ return;
173
+ }
174
+ if (item.kind !== void 0 && !AGENT_INSTANCE_TRIGGER_KINDS.includes(item.kind)) {
175
+ diagnostics.push({
176
+ code: "invalid_agent_instance_trigger",
177
+ severity: "error",
178
+ message: `Agent instance "${instanceId}": trigger "${item.id}" kind "${String(item.kind)}" \u2014 expected one of: ${AGENT_INSTANCE_TRIGGER_KINDS.join(", ")}.`,
179
+ path: `${path}.kind`
180
+ });
181
+ return;
182
+ }
183
+ out.push({ ...item });
184
+ });
185
+ return out;
186
+ }
187
+ function definedEntries(obj) {
188
+ const out = {};
189
+ for (const [key, value] of Object.entries(obj ?? {})) {
190
+ if (value !== void 0) out[key] = value;
191
+ }
192
+ return out;
193
+ }
194
+ function mergeAgentPermissions(base, overlay) {
195
+ return {
196
+ ...base,
197
+ ...definedEntries(overlay),
198
+ deny_write: [.../* @__PURE__ */ new Set([...base?.deny_write ?? [], ...overlay?.deny_write ?? []])],
199
+ deny_read: [.../* @__PURE__ */ new Set([...base?.deny_read ?? [], ...overlay?.deny_read ?? []])]
200
+ };
201
+ }
202
+ function mergeTriggers(base, overlay) {
203
+ const byId = /* @__PURE__ */ new Map();
204
+ for (const t of [...base ?? [], ...overlay ?? []]) {
205
+ byId.set(t.id, { ...byId.get(t.id), ...definedEntries(t) });
206
+ }
207
+ return [...byId.values()];
208
+ }
209
+ function mergeInstance(base, overlay) {
210
+ const merged = { ref: overlay.ref };
211
+ const lifecycle = overlay.lifecycle ?? base.lifecycle;
212
+ if (lifecycle) merged.lifecycle = lifecycle;
213
+ if (base.model || overlay.model)
214
+ merged.model = { ...base.model, ...definedEntries(overlay.model) };
215
+ if (base.permissions || overlay.permissions) {
216
+ merged.permissions = mergeAgentPermissions(base.permissions, overlay.permissions);
217
+ }
218
+ const memory = overlay.memory ?? base.memory;
219
+ if (memory) merged.memory = memory;
220
+ if (base.triggers || overlay.triggers)
221
+ merged.triggers = mergeTriggers(base.triggers, overlay.triggers);
222
+ if (base.connectors || overlay.connectors) {
223
+ merged.connectors = { ...base.connectors, ...overlay.connectors };
224
+ }
225
+ if (base.budget || overlay.budget)
226
+ merged.budget = { ...base.budget, ...definedEntries(overlay.budget) };
227
+ return merged;
228
+ }
229
+ function mergeAgentInstances(base, overlay) {
230
+ if (!base && !overlay) return void 0;
231
+ const out = { ...base };
232
+ for (const [id, instance] of Object.entries(overlay ?? {})) {
233
+ const existing = out[id];
234
+ out[id] = existing ? mergeInstance(existing, instance) : instance;
235
+ }
236
+ return out;
237
+ }
238
+ function effectiveAgentInstances(config) {
239
+ const out = { ...config.agent?.instances };
240
+ const definition = config.agent?.definition;
241
+ if (definition) out[DEFAULT_AGENT_INSTANCE_ID] = { ref: definition };
242
+ return out;
243
+ }
244
+ function agentInstanceDiagnostics(config) {
245
+ if (config.agent?.definition && config.agent.instances?.[DEFAULT_AGENT_INSTANCE_ID]) {
246
+ return [
247
+ {
248
+ code: "agent_default_conflict",
249
+ severity: "error",
250
+ message: "`agent:` and `agents.default` both declare the primary agent \u2014 `agent:` is the default instance. Remove one of them.",
251
+ path: `agents.${DEFAULT_AGENT_INSTANCE_ID}`
252
+ }
253
+ ];
254
+ }
255
+ return [];
256
+ }
16
257
  function fileSha256(p) {
17
258
  return sha256Hex(readFileSync(p));
18
259
  }
@@ -29,7 +270,6 @@ function syntheticVersion(commit) {
29
270
  var KIND_DIRS = [
30
271
  { dir: "skills", kind: "skill", mdName: "SKILL.md" },
31
272
  { dir: "agents", kind: "agent", mdName: "AGENT.md" },
32
- { dir: "bundles", kind: "bundle", mdName: "BUNDLE.md" },
33
273
  { dir: "mcp-servers", kind: "mcp-server", mdName: "MCP.md" },
34
274
  { dir: "connectors", kind: "connector", mdName: "CONNECTOR.md" },
35
275
  { dir: "prompts", kind: "prompt", mdName: "PROMPT.md" },
@@ -38,25 +278,25 @@ var KIND_DIRS = [
38
278
  var MD_FILE_BY_KIND = Object.fromEntries(
39
279
  KIND_DIRS.map((k) => [k.kind, k.mdName])
40
280
  );
41
- async function buildProvenanceIndex(clones, _opts) {
281
+ async function buildProvenanceIndex(clones, opts) {
42
282
  const index = /* @__PURE__ */ new Map();
43
- for (const clone of clones) await walkOne(clone, index);
283
+ for (const clone of clones) await walkOne(clone, index, opts.knownKinds);
44
284
  return index;
45
285
  }
46
- async function walkOne(clone, index) {
286
+ async function walkOne(clone, index, knownKinds) {
47
287
  if (clone.overlayManifestPath && existsSync(clone.overlayManifestPath)) {
48
288
  if (await walkWithManifest(clone, clone.overlayManifestPath, index)) return;
49
289
  }
50
290
  const manifestPaths = findManifestFiles(clone.localPath);
51
291
  if (manifestPaths.length === 0) {
52
- await walkFilenameConvention(clone, index);
292
+ await walkFilenameConvention(clone, index, knownKinds);
53
293
  return;
54
294
  }
55
295
  let produced = false;
56
296
  for (const p of manifestPaths) {
57
297
  if (await walkWithManifest(clone, p, index)) produced = true;
58
298
  }
59
- if (!produced) await walkFilenameConvention(clone, index);
299
+ if (!produced) await walkFilenameConvention(clone, index, knownKinds);
60
300
  }
61
301
  function findManifestFiles(root) {
62
302
  const found = [];
@@ -101,7 +341,7 @@ async function walkWithManifest(clone, manifestPath, index) {
101
341
  files,
102
342
  sha256: a.sha256 ?? compositeSha256(files),
103
343
  metadata: resolved.metadata,
104
- deps: a.dependencies ?? await manifestDeps(repoRoot, files, a.kind)
344
+ ...a.dependencies ? { deps: a.dependencies } : await manifestDeps(repoRoot, files, a.kind)
105
345
  };
106
346
  applyStoreListingMetadata(candidate, a, manifest, resolved.frontmatter);
107
347
  push(index, `${assetPublisher}/${a.kind}:${name}`, candidate);
@@ -190,7 +430,7 @@ var DIR_SCOPED_KINDS = /* @__PURE__ */ new Set([
190
430
  "connector",
191
431
  "knowledge"
192
432
  ]);
193
- async function walkFilenameConvention(clone, index) {
433
+ async function walkFilenameConvention(clone, index, knownKinds) {
194
434
  const publisher = publisherFromGithubUrl(clone.sourceUrl);
195
435
  if (!publisher) {
196
436
  throw new Error(
@@ -198,7 +438,7 @@ async function walkFilenameConvention(clone, index) {
198
438
  );
199
439
  }
200
440
  const version = (clone.tag ? clone.tag.replace(/^v/, "") : void 0) ?? syntheticVersion(clone.commit);
201
- for (const e of await scanDirectory(clone.localPath, publisher)) {
441
+ for (const e of await scanDirectory(clone.localPath, publisher, { knownKinds })) {
202
442
  const manifestAbs = e.source;
203
443
  const manifestRel = relative(clone.localPath, manifestAbs).replace(/\\/g, "/");
204
444
  const files = DIR_SCOPED_KINDS.has(e.kind) ? hashedFilesUnder(clone.localPath, posix.dirname(manifestRel)) : [{ path: manifestRel, sha256: fileSha256(manifestAbs) }];
@@ -212,7 +452,7 @@ async function walkFilenameConvention(clone, index) {
212
452
  files,
213
453
  sha256: compositeSha256(files),
214
454
  metadata: readMetadata(clone.localPath, files, e.kind),
215
- deps: await manifestDeps(clone.localPath, files, e.kind)
455
+ ...await manifestDeps(clone.localPath, files, e.kind)
216
456
  };
217
457
  push(index, `${publisher}/${e.kind}:${e.name}`, candidate);
218
458
  }
@@ -249,10 +489,12 @@ function readContentFrontmatter(repoRoot, files, kind) {
249
489
  }
250
490
  }
251
491
  async function manifestDeps(repoRoot, files, kind) {
252
- const ext = kind === "bundle" ? [".bundle.yaml", "BUNDLE.md"] : kind === "flow" ? [".flow.yaml", ".flow.json"] : null;
253
- if (!ext) return void 0;
492
+ const ext = kind === "preset" ? [".preset.yaml"] : kind === "flow" ? [".flow.yaml", ".flow.json"] : null;
493
+ if (!ext) return {};
254
494
  const mf = files.find((f) => ext.some((e) => f.path.endsWith(e)));
255
- return mf ? await bundleDepRefs(join(repoRoot, mf.path)) : void 0;
495
+ if (!mf) return {};
496
+ const { refs, skipped } = await assetDepRefs(join(repoRoot, mf.path));
497
+ return kind === "preset" ? { deps: refs, skippedItems: skipped } : { deps: refs };
256
498
  }
257
499
  function push(index, key, candidate) {
258
500
  const arr = index.get(key) ?? [];
@@ -535,11 +777,11 @@ function resolveSourcePublisher(repoDir) {
535
777
  const org = repoSlugFromGitRemote(repoDir)?.split("/")[0];
536
778
  return org ? normalizeGithubOrg(org) : void 0;
537
779
  }
538
- async function scanRepo(repoDir, repoName) {
780
+ async function scanRepo(repoDir, repoName, options) {
539
781
  const repo = repoSlugFromGitRemote(repoDir);
540
782
  const publisher = resolveSourcePublisher(repoDir) ?? repoName;
541
783
  const groupings = readPluginGroupings(repoDir);
542
- return (await scanDirectory(repoDir, repoName)).map((e) => {
784
+ return (await scanDirectory(repoDir, repoName, options)).map((e) => {
543
785
  const plugin = groupings.get(relative(repoDir, dirname(e.source)).split(sep).join("/"));
544
786
  return {
545
787
  ...e,
@@ -553,7 +795,7 @@ async function resolveAsset(ref, repositories, reposDir, opts) {
553
795
  let repoNames;
554
796
  if (ref.publisher) {
555
797
  repoNames = [ref.publisher];
556
- } else if (opts?.preferRepo && opts.preferRepo in repositories) {
798
+ } else if (opts.preferRepo && opts.preferRepo in repositories) {
557
799
  const rest = Object.keys(repositories).filter((n) => n !== opts.preferRepo);
558
800
  repoNames = [opts.preferRepo, ...rest];
559
801
  } else {
@@ -562,9 +804,9 @@ async function resolveAsset(ref, repositories, reposDir, opts) {
562
804
  for (const repoName of repoNames) {
563
805
  const decl = repositories[repoName];
564
806
  if (!decl) continue;
565
- const repoDir = resolveRepoDir(decl, repoName, reposDir, opts?.projectDir);
807
+ const repoDir = resolveRepoDir(decl, repoName, reposDir, opts.projectDir);
566
808
  if (!repoDir || !existsSync(repoDir)) continue;
567
- const entries = await scanRepo(repoDir, repoName);
809
+ const entries = await scanRepo(repoDir, repoName, { knownKinds: opts.knownKinds });
568
810
  const match = entries.find((e) => e.kind === ref.kind && e.name === ref.name);
569
811
  if (match) return match;
570
812
  }
@@ -621,6 +863,43 @@ var CanonicalRefConflictError = class extends Error {
621
863
  candidates;
622
864
  depChain;
623
865
  };
866
+ var MAX_PRESET_DEPTH = 3;
867
+ var PresetDepthError = class extends Error {
868
+ constructor(reason, ref, depChain) {
869
+ super(
870
+ `preset_depth_exceeded: ${reason === "cycle" ? `preset ${ref} lists itself (cycle)` : `preset ${ref} nests deeper than ${MAX_PRESET_DEPTH} presets`} \u2014 via ${depChain.join(" \u2192 ")}`
871
+ );
872
+ this.reason = reason;
873
+ this.ref = ref;
874
+ this.depChain = depChain;
875
+ this.name = "PresetDepthError";
876
+ }
877
+ reason;
878
+ ref;
879
+ depChain;
880
+ code = "preset_depth_exceeded";
881
+ };
882
+ var REMOVED_KIND_REPLACEMENTS = { bundle: "preset", mount: "connector" };
883
+ var UnknownAssetKindError = class extends Error {
884
+ constructor(kind, ref, replacement) {
885
+ super(
886
+ replacement ? `unknown_asset_kind: asset kind "${kind}" (in "${ref}") no longer exists \u2014 use \`${ref.replace(`${kind}:`, `${replacement}:`)}\` (\`${replacement}:\`) instead` : `unknown_asset_kind: asset kind "${kind}" (in "${ref}") is not registered`
887
+ );
888
+ this.kind = kind;
889
+ this.ref = ref;
890
+ this.replacement = replacement;
891
+ this.name = "UnknownAssetKindError";
892
+ }
893
+ kind;
894
+ ref;
895
+ replacement;
896
+ code = "unknown_asset_kind";
897
+ };
898
+ function assertKnownKind(ref, refStr, knownKinds) {
899
+ const replacement = Object.hasOwn(REMOVED_KIND_REPLACEMENTS, ref.kind) ? REMOVED_KIND_REPLACEMENTS[ref.kind] : void 0;
900
+ if (replacement !== void 0) throw new UnknownAssetKindError(ref.kind, refStr, replacement);
901
+ if (knownKinds && !knownKinds.has(ref.kind)) throw new UnknownAssetKindError(ref.kind, refStr);
902
+ }
624
903
  var SHA_PIN_RE = /^[0-9a-f]{40}$/i;
625
904
  function qualifyPublisher(ref, fallback) {
626
905
  const hashIdx = ref.indexOf("#");
@@ -639,10 +918,19 @@ async function resolveAll(deps, opts) {
639
918
  const resolvedBy = /* @__PURE__ */ new Map();
640
919
  const overridesApplied = /* @__PURE__ */ new Set();
641
920
  const overridesByRef = new Map(opts.overrides.map((o) => [o.ref, o]));
642
- async function visit(refStr, parent, depChain) {
921
+ const presets = [];
922
+ async function visit(refStr, parent, depChain, presetChain) {
643
923
  const ref = parseAssetRef(refStr);
644
924
  if (!ref.publisher) throw new Error(`dep "${refStr}" missing publisher`);
925
+ assertKnownKind(ref, refStr, opts.knownKinds);
645
926
  const key = `${ref.publisher}/${ref.kind}:${ref.name}`;
927
+ if (ref.kind === "preset") {
928
+ if (presetChain.includes(key))
929
+ throw new PresetDepthError("cycle", refStr, [...depChain, refStr]);
930
+ if (presetChain.length >= MAX_PRESET_DEPTH) {
931
+ throw new PresetDepthError("depth", refStr, [...depChain, refStr]);
932
+ }
933
+ }
646
934
  if (seen.has(key)) return;
647
935
  seen.add(key);
648
936
  const sourceCandidates = opts.provenanceIndex.get(key) ?? [];
@@ -678,16 +966,32 @@ async function resolveAll(deps, opts) {
678
966
  opts,
679
967
  [...depChain, refStr]
680
968
  );
681
- resolved.push(chosen);
969
+ const isPreset = chosen.kind === "preset";
970
+ if (isPreset) {
971
+ const members = chosen.deps ?? [];
972
+ presets.push({
973
+ ref: canonicalRef,
974
+ assets: members.filter((m) => !m.startsWith("preset:")).length,
975
+ skipped: chosen.skippedItems ?? 0
976
+ });
977
+ } else {
978
+ resolved.push(chosen);
979
+ }
682
980
  resolvedBy.set(key, parent);
981
+ const childPresets = isPreset ? [...presetChain, key] : presetChain;
683
982
  for (const depRef of chosen.deps ?? []) {
684
- await visit(qualifyPublisher(depRef, chosen.publisher), key, [...depChain, refStr]);
983
+ await visit(
984
+ qualifyPublisher(depRef, chosen.publisher),
985
+ key,
986
+ [...depChain, refStr],
987
+ childPresets
988
+ );
685
989
  }
686
990
  }
687
991
  for (const dep of deps) {
688
- await visit(dep, "direct", []);
992
+ await visit(dep, "direct", [], []);
689
993
  }
690
- return { resolved, missing, resolvedBy, overridesApplied };
994
+ return { resolved, missing, resolvedBy, overridesApplied, presets };
691
995
  }
692
996
  async function gatherStoreCandidates(ref, publisher, sourceCandidates, opts) {
693
997
  const storeCandidates = [];
@@ -715,7 +1019,8 @@ async function gatherStoreCandidates(ref, publisher, sourceCandidates, opts) {
715
1019
  sourceUrl: m.sourceUrl,
716
1020
  commit: m.commit,
717
1021
  files: m.files,
718
- sha256: m.sha256
1022
+ sha256: m.sha256,
1023
+ deps: m.deps
719
1024
  });
720
1025
  }
721
1026
  }
@@ -1074,22 +1379,8 @@ function mergeAgentConfig(base, overlay) {
1074
1379
  context: overlay?.context ?? base?.context,
1075
1380
  // Whole-block overlay: a partial file list merged across scopes would change caps silently.
1076
1381
  ...overlay?.home ?? base?.home ? { home: overlay?.home ?? base?.home } : {},
1077
- permissions: {
1078
- ...base?.permissions,
1079
- ...stripUndefined(overlay?.permissions),
1080
- deny_write: dedupe([
1081
- ...base?.permissions?.deny_write ?? [],
1082
- ...overlay?.permissions?.deny_write ?? []
1083
- ]),
1084
- deny_read: dedupe([
1085
- ...base?.permissions?.deny_read ?? [],
1086
- ...overlay?.permissions?.deny_read ?? []
1087
- ])
1088
- },
1089
- subagents: {
1090
- ...base?.subagents ?? {},
1091
- ...overlay?.subagents ?? {}
1092
- },
1382
+ permissions: mergeAgentPermissions(base?.permissions, overlay?.permissions),
1383
+ ...base?.instances ?? overlay?.instances ? { instances: mergeAgentInstances(base?.instances, overlay?.instances) } : {},
1093
1384
  hooks: {
1094
1385
  pre_flow: [...base?.hooks?.pre_flow ?? [], ...overlay?.hooks?.pre_flow ?? []],
1095
1386
  post_flow: [...base?.hooks?.post_flow ?? [], ...overlay?.hooks?.post_flow ?? []],
@@ -1256,6 +1547,11 @@ function assertNoLegacyTopLevelKeys(raw) {
1256
1547
  );
1257
1548
  }
1258
1549
  }
1550
+ if (isRecord(raw.agent) && raw.agent.subagents !== void 0) {
1551
+ throw new Error(
1552
+ "skaile.yaml: `agent.subagents:` was removed \u2014 inline prompt-only subagents had no driver consumer. Declare each one as an agent asset (`.skaile/agents/<name>/agent.yaml`) and bind it under the root `agents:` map (`agents.<name>: { ref: ./.skaile/agents/<name>, lifecycle: role }`). See MIGRATION.md."
1553
+ );
1554
+ }
1259
1555
  }
1260
1556
  function normalizeOverrideEntry(item) {
1261
1557
  if (!item || typeof item !== "object" || Array.isArray(item)) return null;
@@ -1298,6 +1594,23 @@ function normalizeConsumptionSection(raw, config) {
1298
1594
  normalizeStoresSection(raw, config);
1299
1595
  normalizeOverridesSection(raw, config);
1300
1596
  }
1597
+ function normalizeAgentSection(raw, config, diagnostics) {
1598
+ if (raw.agent) {
1599
+ config.agent = isRecord(raw.agent) ? { ...raw.agent } : raw.agent;
1600
+ }
1601
+ if (config.agent?.instances !== void 0) {
1602
+ diagnostics.push({
1603
+ code: "misplaced_agent_instances",
1604
+ severity: "error",
1605
+ message: "`agent.instances` is not a skaile.yaml key \u2014 declare instances under root `agents:`.",
1606
+ path: "agent.instances"
1607
+ });
1608
+ delete config.agent.instances;
1609
+ }
1610
+ const instances = normalizeAgentInstances(raw.agents, diagnostics);
1611
+ if (instances) config.agent = { ...config.agent, instances };
1612
+ diagnostics.push(...agentInstanceDiagnostics(config));
1613
+ }
1301
1614
  function normalizeStructuralSections(raw, config, diagnostics) {
1302
1615
  if (Array.isArray(raw.mounts)) {
1303
1616
  config.mounts = raw.mounts;
@@ -1331,7 +1644,7 @@ function normalizeStructuralSections(raw, config, diagnostics) {
1331
1644
  if (d.config !== void 0) config.deploy.config = d.config;
1332
1645
  }
1333
1646
  }
1334
- if (raw.agent) config.agent = raw.agent;
1647
+ normalizeAgentSection(raw, config, diagnostics);
1335
1648
  if (raw.workspace) config.workspace = raw.workspace;
1336
1649
  if (raw.secrets && typeof raw.secrets === "object") {
1337
1650
  config.secrets = raw.secrets;
@@ -1508,14 +1821,23 @@ function validateConfigValues(config, diagnostics) {
1508
1821
  checkUnavailable(c, diagnostics);
1509
1822
  }
1510
1823
  for (const m of config.mounts ?? []) checkAccess(m.access, `mounts.${m.id}.access`);
1511
- const network = config.agent?.permissions?.network;
1512
- if (network) {
1824
+ const networks = [
1825
+ [config.agent?.permissions?.network, "agent.permissions.network"],
1826
+ ...Object.entries(config.agent?.instances ?? {}).map(
1827
+ ([id, instance]) => [
1828
+ instance.permissions?.network,
1829
+ `agents.${id}.permissions.network`
1830
+ ]
1831
+ )
1832
+ ];
1833
+ for (const [network, path] of networks) {
1834
+ if (!network) continue;
1513
1835
  if (network.mode && !KNOWN_NETWORK_MODES.includes(network.mode)) {
1514
1836
  diagnostics.push({
1515
1837
  code: "unknown_network_mode",
1516
1838
  severity: "warning",
1517
1839
  message: `Unknown network mode "${network.mode}" \u2014 expected one of: ${KNOWN_NETWORK_MODES.join(", ")}.`,
1518
- path: "agent.permissions.network.mode"
1840
+ path: `${path}.mode`
1519
1841
  });
1520
1842
  }
1521
1843
  if (network.allowlist && network.allowlist.length > 0 && network.mode !== "allowlist") {
@@ -1523,7 +1845,7 @@ function validateConfigValues(config, diagnostics) {
1523
1845
  code: "unexpected_network_allowlist",
1524
1846
  severity: "warning",
1525
1847
  message: `network.allowlist is set but mode is "${network.mode}" \u2014 the allowlist is ignored unless mode is "allowlist".`,
1526
- path: "agent.permissions.network.allowlist"
1848
+ path: `${path}.allowlist`
1527
1849
  });
1528
1850
  }
1529
1851
  }
@@ -1575,6 +1897,12 @@ function toCanonicalObject(config) {
1575
1897
  const emit = (key) => {
1576
1898
  const value = config[key];
1577
1899
  if (value === void 0) return;
1900
+ if (key === "agent") {
1901
+ const { instances, ...agent } = config.agent ?? {};
1902
+ if (Object.keys(agent).length > 0) out.agent = agent;
1903
+ if (instances) out.agents = instances;
1904
+ return;
1905
+ }
1578
1906
  out[CONFIG_KEY_TO_YAML[key] ?? key] = value;
1579
1907
  };
1580
1908
  for (const key of CANONICAL_KEY_ORDER) emit(key);
@@ -1617,14 +1945,6 @@ function mergeById(base, overlay) {
1617
1945
  for (const r of overlay) map.set(r.id, r);
1618
1946
  return [...map.values()];
1619
1947
  }
1620
- function stripUndefined(obj) {
1621
- if (!obj) return {};
1622
- const result = {};
1623
- for (const [k, v] of Object.entries(obj)) {
1624
- if (v !== void 0) result[k] = v;
1625
- }
1626
- return result;
1627
- }
1628
1948
  function mcpDeclFromCatalogEntry(entry) {
1629
1949
  const m = entry.metadata;
1630
1950
  if (!m) return null;
@@ -2026,8 +2346,12 @@ function collectMcpRefStrings(dependencies) {
2026
2346
  }
2027
2347
  return mcpRefStrings;
2028
2348
  }
2349
+ var MCP_LOOKUP_KINDS = /* @__PURE__ */ new Set(["mcp-server"]);
2029
2350
  async function buildMcpProvenanceIndex(sources, projectDir) {
2030
- return sources.length > 0 ? await buildProvenanceIndex(buildSourceClones(sources)) : /* @__PURE__ */ new Map();
2351
+ return sources.length > 0 ? await buildProvenanceIndex(buildSourceClones(sources), {
2352
+ // Only `mcp-server` refs are looked up in this index.
2353
+ knownKinds: MCP_LOOKUP_KINDS
2354
+ }) : /* @__PURE__ */ new Map();
2031
2355
  }
2032
2356
  function upsertCatalogMcpDecls(mcpRefStrings, provenanceIndex, upsert) {
2033
2357
  const seen = /* @__PURE__ */ new Set();
@@ -2204,6 +2528,9 @@ function resolveAgentDir(projectDir) {
2204
2528
  const config = resolveSkWorkspaceConfig(projectDir);
2205
2529
  const definition = config.agent?.definition;
2206
2530
  if (!definition) return void 0;
2531
+ return resolveAgentDefinitionDir(projectDir, definition);
2532
+ }
2533
+ function resolveAgentDefinitionDir(projectDir, definition) {
2207
2534
  if (definition.startsWith("ai-assets://")) {
2208
2535
  const relPath = definition.slice("ai-assets://".length);
2209
2536
  const aiAssetsDir = findAiAssetsDir(projectDir);
@@ -2216,6 +2543,6 @@ function resolveAgentDir(projectDir) {
2216
2543
  return resolve(projectDir, definition);
2217
2544
  }
2218
2545
 
2219
- export { AgentRefResolutionError, COMPACTION_DEFAULTS, CanonicalRefConflictError, DEFAULT_RECIPE_ATTR, SKAILE_YAML_DEFAULT, SKAILE_YAML_SUFFIX, SKILL_ALLOWLIST_FILE, SKILL_ALLOWLIST_VERSION, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, STAGED_SKILL_MARKER, buildProvenanceIndex, checkRepoStatus, checkoutPin, cloneRepo, coerceVersion, decodeSkaileYaml, deriveSingleMaterializedMcpDeclaration, encodeSkaileYaml, ensureRepo, findWorkspaceRoot, getGlobalCacheDir, getRepoCommit, isStagedSkillMarkerFor, isWorkspaceConfigFilename, linkRepo, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, matchPin, mergeSkWorkspaceConfigs, normalizeConfig, pullRepo, pullRepoResult, readLinks, readSkillAllowList, resolveAgentDir, resolveAll, resolveAsset, resolveCompactionThresholdPercent, resolveGlobalHarnesses, resolveGlobalSkWorkspaceConfig, resolveSkWorkspaceConfig, resolveSourcePublisher, saveSkWorkspaceConfig, scanRepo, sourceCacheKey, sourceShortName, stageMaterializedSkills, stagedSkillMarkerState, storeManifestSlug, unlinkRepo, unstageSkill, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, workspaceNameFromFilename, writeLinks };
2220
- //# sourceMappingURL=chunk-6IGFSUTE.js.map
2221
- //# sourceMappingURL=chunk-6IGFSUTE.js.map
2546
+ export { AGENT_INSTANCE_ID_PATTERN, AGENT_INSTANCE_LIFECYCLES, AGENT_INSTANCE_MEMORY_SCOPES, AGENT_INSTANCE_TRIGGER_KINDS, AgentRefResolutionError, COMPACTION_DEFAULTS, CanonicalRefConflictError, DEFAULT_AGENT_INSTANCE_ID, DEFAULT_RECIPE_ATTR, PresetDepthError, SKAILE_YAML_DEFAULT, SKAILE_YAML_SUFFIX, SKILL_ALLOWLIST_FILE, SKILL_ALLOWLIST_VERSION, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, STAGED_SKILL_MARKER, UnknownAssetKindError, agentInstanceDiagnostics, buildProvenanceIndex, checkRepoStatus, checkoutPin, cloneRepo, coerceVersion, decodeSkaileYaml, deriveSingleMaterializedMcpDeclaration, effectiveAgentInstances, encodeSkaileYaml, ensureRepo, findWorkspaceRoot, getGlobalCacheDir, getRepoCommit, isStagedSkillMarkerFor, isWorkspaceConfigFilename, linkRepo, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, matchPin, mergeAgentInstances, mergeAgentPermissions, mergeSkWorkspaceConfigs, normalizeAgentInstances, normalizeConfig, pullRepo, pullRepoResult, readLinks, readSkillAllowList, resolveAgentDefinitionDir, resolveAgentDir, resolveAll, resolveAsset, resolveCompactionThresholdPercent, resolveGlobalHarnesses, resolveGlobalSkWorkspaceConfig, resolveSkWorkspaceConfig, resolveSourcePublisher, saveSkWorkspaceConfig, scanRepo, sourceCacheKey, sourceShortName, stageMaterializedSkills, stagedSkillMarkerState, storeManifestSlug, unlinkRepo, unstageSkill, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, workspaceNameFromFilename, writeLinks };
2547
+ //# sourceMappingURL=chunk-2W4LBLIN.js.map
2548
+ //# sourceMappingURL=chunk-2W4LBLIN.js.map