@skaile/workspaces 5.11.0 → 5.12.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 (403) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +2 -2
  3. package/dist/{asset-feeds-CXGQIDFR.js → asset-feeds-AM6PSSGM.js} +24 -21
  4. package/dist/asset-feeds-AM6PSSGM.js.map +1 -0
  5. package/dist/asset-manager/catalog-deployer.js +8 -8
  6. package/dist/asset-manager/fragments.js +1 -1
  7. package/dist/asset-manager/index.js +16 -16
  8. package/dist/asset-manager/installer.js +11 -11
  9. package/dist/asset-manager/renderers.js +9 -9
  10. package/dist/asset-manager/src/fragments.d.ts +5 -0
  11. package/dist/asset-manager/src/fragments.d.ts.map +1 -1
  12. package/dist/asset-manager/src/index.d.ts +95 -10
  13. package/dist/asset-manager/src/index.d.ts.map +1 -1
  14. package/dist/asset-manager/src/install-agent.d.ts +9 -1
  15. package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
  16. package/dist/asset-manager/src/installer.d.ts +10 -0
  17. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  18. package/dist/asset-manager/src/renderers.d.ts +5 -0
  19. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  20. package/dist/bridge/drivers/claude-sdk.js +16 -13
  21. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  22. package/dist/bridge/drivers/codex.js +43 -16
  23. package/dist/bridge/drivers/codex.js.map +1 -1
  24. package/dist/bridge/drivers/continue.js +10 -10
  25. package/dist/bridge/drivers/echo.js +2 -2
  26. package/dist/bridge/drivers/gemini.js +7 -7
  27. package/dist/bridge/drivers/goose.js +10 -10
  28. package/dist/bridge/drivers/omp.js +37 -10
  29. package/dist/bridge/drivers/omp.js.map +1 -1
  30. package/dist/bridge/drivers/opencode.js +10 -10
  31. package/dist/bridge/drivers/qwen.js +7 -7
  32. package/dist/bridge/index.js +12 -12
  33. package/dist/bridge/src/codex/config-toml.d.ts +8 -3
  34. package/dist/bridge/src/codex/config-toml.d.ts.map +1 -1
  35. package/dist/bridge/src/codex/managed-driver.d.ts.map +1 -1
  36. package/dist/bridge/src/drivers/claude-sdk.d.ts +1 -1
  37. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  38. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  39. package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +1 -1
  40. package/dist/bridge/src/drivers/omp.d.ts +9 -0
  41. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  42. package/dist/bridge/src/provider-materialize/credential-env.d.ts +15 -0
  43. package/dist/bridge/src/provider-materialize/credential-env.d.ts.map +1 -1
  44. package/dist/{chunk-4A4OD24G.js → chunk-27L6BBAT.js} +9 -9
  45. package/dist/{chunk-4A4OD24G.js.map → chunk-27L6BBAT.js.map} +1 -1
  46. package/dist/{chunk-HCEVNYSH.js → chunk-2JFIFDDO.js} +3 -3
  47. package/dist/{chunk-HCEVNYSH.js.map → chunk-2JFIFDDO.js.map} +1 -1
  48. package/dist/{chunk-3SM2DL2T.js → chunk-2X3JBVGD.js} +11 -10
  49. package/dist/chunk-2X3JBVGD.js.map +1 -0
  50. package/dist/{chunk-G4FFOV3N.js → chunk-3HUV2LJF.js} +4 -4
  51. package/dist/{chunk-G4FFOV3N.js.map → chunk-3HUV2LJF.js.map} +1 -1
  52. package/dist/{chunk-QZNJOHN6.js → chunk-3LVB3HGH.js} +3 -3
  53. package/dist/{chunk-QZNJOHN6.js.map → chunk-3LVB3HGH.js.map} +1 -1
  54. package/dist/{chunk-ZCAJZ4B2.js → chunk-6VLHITAM.js} +145 -3
  55. package/dist/chunk-6VLHITAM.js.map +1 -0
  56. package/dist/{chunk-J4RBUFGM.js → chunk-7CR2OZPA.js} +6 -6
  57. package/dist/{chunk-J4RBUFGM.js.map → chunk-7CR2OZPA.js.map} +1 -1
  58. package/dist/{chunk-HZXUXHIV.js → chunk-7QWQTA5S.js} +89 -12
  59. package/dist/chunk-7QWQTA5S.js.map +1 -0
  60. package/dist/{chunk-TCHRMVTO.js → chunk-7XWUJC3A.js} +4 -4
  61. package/dist/{chunk-TCHRMVTO.js.map → chunk-7XWUJC3A.js.map} +1 -1
  62. package/dist/{chunk-2F5AWQX5.js → chunk-C3BMXXTN.js} +137 -31
  63. package/dist/chunk-C3BMXXTN.js.map +1 -0
  64. package/dist/{chunk-ZPWTOUTK.js → chunk-CTP3XBMF.js} +7 -4
  65. package/dist/chunk-CTP3XBMF.js.map +1 -0
  66. package/dist/{chunk-GCHPUTA3.js → chunk-DCHQ6BAZ.js} +3 -3
  67. package/dist/{chunk-GCHPUTA3.js.map → chunk-DCHQ6BAZ.js.map} +1 -1
  68. package/dist/{chunk-DALV4HHP.js → chunk-DKXNKFKP.js} +3 -2
  69. package/dist/{chunk-DALV4HHP.js.map → chunk-DKXNKFKP.js.map} +1 -1
  70. package/dist/{chunk-X77SUM4P.js → chunk-G3X4MLDB.js} +3 -3
  71. package/dist/{chunk-X77SUM4P.js.map → chunk-G3X4MLDB.js.map} +1 -1
  72. package/dist/{chunk-CAHB6MHA.js → chunk-GWD3QNVS.js} +5 -5
  73. package/dist/{chunk-CAHB6MHA.js.map → chunk-GWD3QNVS.js.map} +1 -1
  74. package/dist/chunk-H5U7LNTJ.js +122 -0
  75. package/dist/chunk-H5U7LNTJ.js.map +1 -0
  76. package/dist/{chunk-QVFAS5IO.js → chunk-HYMERG57.js} +3 -3
  77. package/dist/{chunk-QVFAS5IO.js.map → chunk-HYMERG57.js.map} +1 -1
  78. package/dist/{chunk-R7NHYEJF.js → chunk-ICIYSJBQ.js} +4 -4
  79. package/dist/{chunk-R7NHYEJF.js.map → chunk-ICIYSJBQ.js.map} +1 -1
  80. package/dist/{chunk-YOH2L76X.js → chunk-ID745F3R.js} +353 -233
  81. package/dist/chunk-ID745F3R.js.map +1 -0
  82. package/dist/{chunk-PQFHMQHQ.js → chunk-JQ3DXNQV.js} +4 -4
  83. package/dist/{chunk-PQFHMQHQ.js.map → chunk-JQ3DXNQV.js.map} +1 -1
  84. package/dist/chunk-K4VOEYOR.js +21 -0
  85. package/dist/chunk-K4VOEYOR.js.map +1 -0
  86. package/dist/{chunk-XDKH7XSA.js → chunk-KVSDRB35.js} +5 -5
  87. package/dist/{chunk-XDKH7XSA.js.map → chunk-KVSDRB35.js.map} +1 -1
  88. package/dist/{chunk-47U4GZ4M.js → chunk-MF54ZHWT.js} +20 -3
  89. package/dist/chunk-MF54ZHWT.js.map +1 -0
  90. package/dist/{chunk-VLTQGE2E.js → chunk-N5M2EISA.js} +197 -52
  91. package/dist/chunk-N5M2EISA.js.map +1 -0
  92. package/dist/{chunk-T7CTHHG7.js → chunk-NDF24LYP.js} +3 -3
  93. package/dist/{chunk-T7CTHHG7.js.map → chunk-NDF24LYP.js.map} +1 -1
  94. package/dist/{chunk-CPWLNZGJ.js → chunk-NGJIVDDD.js} +3 -3
  95. package/dist/{chunk-CPWLNZGJ.js.map → chunk-NGJIVDDD.js.map} +1 -1
  96. package/dist/{chunk-FH7W6TJ4.js → chunk-NJV5SLEK.js} +104 -23
  97. package/dist/chunk-NJV5SLEK.js.map +1 -0
  98. package/dist/{chunk-M3B6EIJD.js → chunk-NJXR5OAM.js} +4 -4
  99. package/dist/{chunk-M3B6EIJD.js.map → chunk-NJXR5OAM.js.map} +1 -1
  100. package/dist/{chunk-CGYEHQOX.js → chunk-NOA6EJXE.js} +11 -2
  101. package/dist/chunk-NOA6EJXE.js.map +1 -0
  102. package/dist/{chunk-RYYLMBA2.js → chunk-NR7H7ZJP.js} +14 -6
  103. package/dist/chunk-NR7H7ZJP.js.map +1 -0
  104. package/dist/{chunk-OBYKJB4U.js → chunk-O2SYFJWP.js} +79 -5
  105. package/dist/chunk-O2SYFJWP.js.map +1 -0
  106. package/dist/{chunk-5LKOAX7I.js → chunk-OQ5MKDS3.js} +21 -5
  107. package/dist/chunk-OQ5MKDS3.js.map +1 -0
  108. package/dist/{chunk-CJERAGFY.js → chunk-P23WJCH2.js} +37 -11
  109. package/dist/chunk-P23WJCH2.js.map +1 -0
  110. package/dist/{chunk-NWDSLXOX.js → chunk-PHRNUTSG.js} +118 -118
  111. package/dist/chunk-PHRNUTSG.js.map +1 -0
  112. package/dist/{chunk-ALEYHUC5.js → chunk-PNOGX36L.js} +104 -24
  113. package/dist/chunk-PNOGX36L.js.map +1 -0
  114. package/dist/{chunk-BNMZVPYA.js → chunk-PNTXHTBC.js} +2 -2
  115. package/dist/{chunk-BNMZVPYA.js.map → chunk-PNTXHTBC.js.map} +1 -1
  116. package/dist/{chunk-GV4DZ6MT.js → chunk-POQ6PGNE.js} +4 -4
  117. package/dist/{chunk-GV4DZ6MT.js.map → chunk-POQ6PGNE.js.map} +1 -1
  118. package/dist/{chunk-T42WRQ4O.js → chunk-QCEKGYHF.js} +3 -3
  119. package/dist/{chunk-T42WRQ4O.js.map → chunk-QCEKGYHF.js.map} +1 -1
  120. package/dist/{chunk-EDYHEMJA.js → chunk-SHQMPGOL.js} +4 -4
  121. package/dist/{chunk-EDYHEMJA.js.map → chunk-SHQMPGOL.js.map} +1 -1
  122. package/dist/{chunk-S3O3GKB7.js → chunk-SMT3LNAG.js} +4 -4
  123. package/dist/{chunk-S3O3GKB7.js.map → chunk-SMT3LNAG.js.map} +1 -1
  124. package/dist/{chunk-PBBPZYVG.js → chunk-T5TSLSRO.js} +110 -44
  125. package/dist/chunk-T5TSLSRO.js.map +1 -0
  126. package/dist/{chunk-DZMNFCWB.js → chunk-TVAR4JHA.js} +530 -126
  127. package/dist/chunk-TVAR4JHA.js.map +1 -0
  128. package/dist/{chunk-COH6FQAG.js → chunk-UTKENBB6.js} +5 -5
  129. package/dist/{chunk-COH6FQAG.js.map → chunk-UTKENBB6.js.map} +1 -1
  130. package/dist/{chunk-XUSALIEI.js → chunk-VRLKHL74.js} +6 -6
  131. package/dist/{chunk-XUSALIEI.js.map → chunk-VRLKHL74.js.map} +1 -1
  132. package/dist/{chunk-WSBKB4CJ.js → chunk-WI4T3KIS.js} +51 -16
  133. package/dist/chunk-WI4T3KIS.js.map +1 -0
  134. package/dist/{chunk-D3B36CYC.js → chunk-X3RMRJNR.js} +4 -3
  135. package/dist/chunk-X3RMRJNR.js.map +1 -0
  136. package/dist/{chunk-IER3KIPH.js → chunk-X6LKA3TJ.js} +5 -5
  137. package/dist/{chunk-IER3KIPH.js.map → chunk-X6LKA3TJ.js.map} +1 -1
  138. package/dist/{chunk-Y3HTGHJC.js → chunk-XMAJJPA4.js} +3 -3
  139. package/dist/{chunk-Y3HTGHJC.js.map → chunk-XMAJJPA4.js.map} +1 -1
  140. package/dist/{chunk-SBSA3IQA.js → chunk-XTVSNWLL.js} +19 -7
  141. package/dist/chunk-XTVSNWLL.js.map +1 -0
  142. package/dist/{chunk-MZG34MBZ.js → chunk-XZY6SBGU.js} +3 -3
  143. package/dist/{chunk-MZG34MBZ.js.map → chunk-XZY6SBGU.js.map} +1 -1
  144. package/dist/{chunk-6O2X3GPW.js → chunk-YQU2BPQD.js} +7 -5
  145. package/dist/chunk-YQU2BPQD.js.map +1 -0
  146. package/dist/cli/index.js +1077 -497
  147. package/dist/cli/index.js.map +1 -1
  148. package/dist/cli/src/agent-checks.d.ts +40 -0
  149. package/dist/cli/src/agent-checks.d.ts.map +1 -0
  150. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  151. package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
  152. package/dist/cli/src/commands/catalog.d.ts +24 -0
  153. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  154. package/dist/cli/src/commands/config.d.ts.map +1 -1
  155. package/dist/cli/src/commands/diff.d.ts.map +1 -1
  156. package/dist/cli/src/commands/integration.d.ts.map +1 -1
  157. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  158. package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
  159. package/dist/cli/src/commands/mcp-server.d.ts +1 -1
  160. package/dist/cli/src/commands/migrate-assets.d.ts +2 -1
  161. package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -1
  162. package/dist/cli/src/commands/migrate.d.ts.map +1 -1
  163. package/dist/cli/src/commands/plugin/claude-code.d.ts +1 -1
  164. package/dist/cli/src/commands/plugin/claude-code.d.ts.map +1 -1
  165. package/dist/cli/src/commands/plugin/types.d.ts +1 -1
  166. package/dist/cli/src/commands/plugin-registry-cmd.d.ts.map +1 -1
  167. package/dist/cli/src/commands/project.d.ts.map +1 -1
  168. package/dist/cli/src/commands/publish-core.d.ts +5 -0
  169. package/dist/cli/src/commands/publish-core.d.ts.map +1 -1
  170. package/dist/cli/src/commands/run.d.ts +2 -1
  171. package/dist/cli/src/commands/run.d.ts.map +1 -1
  172. package/dist/cli/src/commands/serve-preflight.d.ts +22 -0
  173. package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -0
  174. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  175. package/dist/cli/src/commands/source-manifest-publish.d.ts.map +1 -1
  176. package/dist/cli/src/commands/source-manifest.d.ts.map +1 -1
  177. package/dist/cli/src/commands/source.d.ts.map +1 -1
  178. package/dist/cli/src/commands/store.d.ts.map +1 -1
  179. package/dist/cli/src/commands/tree.d.ts.map +1 -1
  180. package/dist/cli/src/commands/update.d.ts.map +1 -1
  181. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  182. package/dist/cli/src/commands/why.d.ts.map +1 -1
  183. package/dist/cli/src/curated-manifests.d.ts +21 -0
  184. package/dist/cli/src/curated-manifests.d.ts.map +1 -0
  185. package/dist/cli/src/index-busy.d.ts +8 -0
  186. package/dist/cli/src/index-busy.d.ts.map +1 -0
  187. package/dist/cli/src/plugin-store/paths.d.ts +7 -3
  188. package/dist/cli/src/plugin-store/paths.d.ts.map +1 -1
  189. package/dist/cli/src/skill-checks.d.ts +15 -2
  190. package/dist/cli/src/skill-checks.d.ts.map +1 -1
  191. package/dist/cli/src/store-addable.d.ts +18 -0
  192. package/dist/cli/src/store-addable.d.ts.map +1 -0
  193. package/dist/connectors/config.js +5 -5
  194. package/dist/connectors/index.js +16 -16
  195. package/dist/{connectors-4QWAKPHB.js → connectors-UNKUKEPG.js} +19 -19
  196. package/dist/{connectors-4QWAKPHB.js.map → connectors-UNKUKEPG.js.map} +1 -1
  197. package/dist/core/index.js +7 -7
  198. package/dist/core/logging.js +1 -1
  199. package/dist/core/manifest.js +2 -2
  200. package/dist/core/models.js +1 -1
  201. package/dist/core/publish-manifest.js +2 -2
  202. package/dist/core/ref.js +1 -1
  203. package/dist/core/runtime-assets.js +5 -5
  204. package/dist/core/src/index.d.ts +5 -4
  205. package/dist/core/src/index.d.ts.map +1 -1
  206. package/dist/core/src/lock.d.ts +15 -5
  207. package/dist/core/src/lock.d.ts.map +1 -1
  208. package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -1
  209. package/dist/core/src/manifest.d.ts +5 -0
  210. package/dist/core/src/manifest.d.ts.map +1 -1
  211. package/dist/core/src/models.d.ts +3 -3
  212. package/dist/core/src/package-manager.d.ts +19 -0
  213. package/dist/core/src/package-manager.d.ts.map +1 -0
  214. package/dist/core/src/publish-manifest.d.ts.map +1 -1
  215. package/dist/core/src/repo-manager.d.ts +11 -0
  216. package/dist/core/src/repo-manager.d.ts.map +1 -1
  217. package/dist/core/src/settings.d.ts +26 -6
  218. package/dist/core/src/settings.d.ts.map +1 -1
  219. package/dist/core/src/walker.d.ts +6 -1
  220. package/dist/core/src/walker.d.ts.map +1 -1
  221. package/dist/core/src/workspace-config.d.ts.map +1 -1
  222. package/dist/core/workspace-config.js +4 -4
  223. package/dist/deploy/index.js +7 -7
  224. package/dist/discovery/index.js +5 -5
  225. package/dist/{ensure-sources-2RONZKCU.js → ensure-sources-POMEQSTM.js} +19 -19
  226. package/dist/{ensure-sources-2RONZKCU.js.map → ensure-sources-POMEQSTM.js.map} +1 -1
  227. package/dist/factory-assets/connectors/box.js +16 -16
  228. package/dist/factory-assets/connectors/deploy.js +16 -16
  229. package/dist/factory-assets/connectors/devserver.js +16 -16
  230. package/dist/factory-assets/connectors/flow/adapter.js +16 -16
  231. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
  232. package/dist/factory-assets/connectors/flow/contract.js +1 -1
  233. package/dist/factory-assets/connectors/flow/engine.js +9 -9
  234. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  235. package/dist/factory-assets/connectors/flow/run-flow.js +18 -18
  236. package/dist/factory-assets/connectors/flow.js +16 -16
  237. package/dist/factory-assets/connectors/git.js +16 -16
  238. package/dist/factory-assets/connectors/gmail.js +16 -16
  239. package/dist/factory-assets/connectors/googledrive.js +16 -16
  240. package/dist/factory-assets/connectors/local.js +16 -16
  241. package/dist/factory-assets/connectors/mattermost.js +16 -16
  242. package/dist/factory-assets/connectors/memory.js +16 -16
  243. package/dist/factory-assets/connectors/minio.js +16 -16
  244. package/dist/factory-assets/connectors/postgres.js +16 -16
  245. package/dist/factory-assets/connectors/s3.js +16 -16
  246. package/dist/factory-assets/connectors/sharepoint.js +16 -16
  247. package/dist/factory-assets/connectors/sqlite.js +16 -16
  248. package/dist/factory-assets/connectors/static-server.js +16 -16
  249. package/dist/factory-assets/connectors/tunnel.js +16 -16
  250. package/dist/factory-assets/connectors/webdav.js +16 -16
  251. package/dist/factory-assets/connectors/xstate-store.js +16 -16
  252. package/dist/factory-assets/connectors/xstate.js +16 -16
  253. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +10 -8
  254. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +15 -11
  255. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +12 -9
  256. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +2 -2
  257. package/dist/{flows-EQF2CH4U.js → flows-DVKMZKM4.js} +12 -12
  258. package/dist/{flows-EQF2CH4U.js.map → flows-DVKMZKM4.js.map} +1 -1
  259. package/dist/{helpers-CFK6YP6R.js → helpers-Y4OT7VIS.js} +19 -19
  260. package/dist/{helpers-CFK6YP6R.js.map → helpers-Y4OT7VIS.js.map} +1 -1
  261. package/dist/library/index.js +12 -12
  262. package/dist/library/install.js +4 -4
  263. package/dist/library/src/index.d.ts +2 -2
  264. package/dist/library/src/index.d.ts.map +1 -1
  265. package/dist/library/src/install/source-fetch-github.d.ts.map +1 -1
  266. package/dist/library/src/local/db.d.ts +2 -0
  267. package/dist/library/src/local/db.d.ts.map +1 -1
  268. package/dist/library/src/local/library-manager.d.ts +5 -0
  269. package/dist/library/src/local/library-manager.d.ts.map +1 -1
  270. package/dist/library/src/local/library.d.ts +5 -3
  271. package/dist/library/src/local/library.d.ts.map +1 -1
  272. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  273. package/dist/library/src/local/store-paths.d.ts +9 -0
  274. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  275. package/dist/library/src/manifest-writer.d.ts.map +1 -1
  276. package/dist/library/src/remote/index.d.ts +1 -1
  277. package/dist/library/src/remote/index.d.ts.map +1 -1
  278. package/dist/library/src/remote/remote-catalog-source.d.ts +17 -0
  279. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  280. package/dist/library/src/sync/git-driver.d.ts.map +1 -1
  281. package/dist/{library-publish-53UTB3MB.js → library-publish-DI4Q5UOG.js} +45 -37
  282. package/dist/library-publish-DI4Q5UOG.js.map +1 -0
  283. package/dist/open-library-N6ESO6IK.js +40 -0
  284. package/dist/{open-library-BOSPJVID.js.map → open-library-N6ESO6IK.js.map} +1 -1
  285. package/dist/open-registry-CBZ5MWTT.js +32 -0
  286. package/dist/{open-registry-4FI7HKET.js.map → open-registry-CBZ5MWTT.js.map} +1 -1
  287. package/dist/paths-U6W6MQNQ.js +22 -0
  288. package/dist/{paths-SUS4S4YT.js.map → paths-U6W6MQNQ.js.map} +1 -1
  289. package/dist/{plugin-store-AGQDMING.js → plugin-store-XMZSPVBF.js} +48 -12
  290. package/dist/plugin-store-XMZSPVBF.js.map +1 -0
  291. package/dist/project-UP52HEHC.js +79 -0
  292. package/dist/{project-I55A4O2T.js.map → project-UP52HEHC.js.map} +1 -1
  293. package/dist/resolver/index.js +8 -8
  294. package/dist/runner/index.js +33 -33
  295. package/dist/runner/src/agent.d.ts.map +1 -1
  296. package/dist/runner/src/agents/in-process-host.d.ts.map +1 -1
  297. package/dist/runner/src/composition/index.d.ts +1 -0
  298. package/dist/runner/src/composition/index.d.ts.map +1 -1
  299. package/dist/runner/src/composition/prompt-sections.d.ts +7 -4
  300. package/dist/runner/src/composition/prompt-sections.d.ts.map +1 -1
  301. package/dist/runner/src/composition/resolve.d.ts +10 -1
  302. package/dist/runner/src/composition/resolve.d.ts.map +1 -1
  303. package/dist/runner/src/composition/verify.d.ts +29 -0
  304. package/dist/runner/src/composition/verify.d.ts.map +1 -0
  305. package/dist/runner/src/credential-notice.d.ts +14 -0
  306. package/dist/runner/src/credential-notice.d.ts.map +1 -0
  307. package/dist/runner/src/environment.d.ts.map +1 -1
  308. package/dist/runner/src/final-text.d.ts +17 -0
  309. package/dist/runner/src/final-text.d.ts.map +1 -0
  310. package/dist/runner/src/index.d.ts +2 -0
  311. package/dist/runner/src/index.d.ts.map +1 -1
  312. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  313. package/dist/runner/src/serve.d.ts +13 -0
  314. package/dist/runner/src/serve.d.ts.map +1 -1
  315. package/dist/sdk/asset-manager.js +16 -16
  316. package/dist/sdk/bridge.js +12 -12
  317. package/dist/sdk/core.js +7 -7
  318. package/dist/sdk/flow.js +9 -9
  319. package/dist/sdk/index.js +36 -34
  320. package/dist/sdk/index.js.map +1 -1
  321. package/dist/sdk/resolver.js +8 -8
  322. package/dist/sdk/runner.js +33 -33
  323. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  324. package/dist/sdk/transport/ws/client.js +1 -1
  325. package/dist/sdk/transport/ws/server.js +1 -1
  326. package/dist/sdk/transport/ws.js +2 -2
  327. package/dist/sdk/transport.js +2 -2
  328. package/dist/serve-preflight-6P2JJEJ3.js +47 -0
  329. package/dist/serve-preflight-6P2JJEJ3.js.map +1 -0
  330. package/dist/{setup-7DQJKHUI.js → setup-5IRUH5OS.js} +24 -24
  331. package/dist/{setup-7DQJKHUI.js.map → setup-5IRUH5OS.js.map} +1 -1
  332. package/dist/{skills-NUEN5NDX.js → skills-HA36RFNM.js} +13 -13
  333. package/dist/{skills-NUEN5NDX.js.map → skills-HA36RFNM.js.map} +1 -1
  334. package/dist/source-DX5SGWEI.js +41 -0
  335. package/dist/{source-G2LV5LVD.js.map → source-DX5SGWEI.js.map} +1 -1
  336. package/dist/source-fetch-github-PIO6EMMF.js +4 -0
  337. package/dist/{source-fetch-github-QN4LLTL5.js.map → source-fetch-github-PIO6EMMF.js.map} +1 -1
  338. package/dist/{source-manifest-publish-6RM7SWLZ.js → source-manifest-publish-NMRLXWVW.js} +27 -26
  339. package/dist/source-manifest-publish-NMRLXWVW.js.map +1 -0
  340. package/dist/transport/index.js +2 -2
  341. package/dist/transport/src/ws/client.d.ts +6 -0
  342. package/dist/transport/src/ws/client.d.ts.map +1 -1
  343. package/dist/transport/src/ws/server.d.ts +4 -0
  344. package/dist/transport/src/ws/server.d.ts.map +1 -1
  345. package/dist/transport/ws/client.js +1 -1
  346. package/dist/transport/ws/server.js +1 -1
  347. package/dist/transport/ws.js +2 -2
  348. package/dist/tui/index.js +58 -41
  349. package/dist/tui/index.js.map +1 -1
  350. package/dist/tui/src/repl-session.d.ts +1 -1
  351. package/dist/tui/src/repl-session.d.ts.map +1 -1
  352. package/dist/tui/src/repl.d.ts +3 -0
  353. package/dist/tui/src/repl.d.ts.map +1 -1
  354. package/dist/types/manifests.js +1 -1
  355. package/dist/types/src/manifests/agent-composition.d.ts +20 -0
  356. package/dist/types/src/manifests/agent-composition.d.ts.map +1 -1
  357. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  358. package/dist/types/src/manifests/cron.d.ts +15 -0
  359. package/dist/types/src/manifests/cron.d.ts.map +1 -0
  360. package/dist/types/src/manifests/index.d.ts +3 -2
  361. package/dist/types/src/manifests/index.d.ts.map +1 -1
  362. package/dist/workspace-plugin/adapters/mcp.js +23 -23
  363. package/dist/workspace-plugin/adapters/omp.js +106 -51
  364. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  365. package/dist/workspace-plugin/index.js +2 -2
  366. package/dist/workspace-plugin/src/adapters/claude-code.d.ts.map +1 -1
  367. package/dist/workspace-plugin/src/adapters/omp.d.ts +11 -2
  368. package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -1
  369. package/package.json +1 -1
  370. package/dist/asset-feeds-CXGQIDFR.js.map +0 -1
  371. package/dist/chunk-2F5AWQX5.js.map +0 -1
  372. package/dist/chunk-3SM2DL2T.js.map +0 -1
  373. package/dist/chunk-47U4GZ4M.js.map +0 -1
  374. package/dist/chunk-5LKOAX7I.js.map +0 -1
  375. package/dist/chunk-6O2X3GPW.js.map +0 -1
  376. package/dist/chunk-ALEYHUC5.js.map +0 -1
  377. package/dist/chunk-CGYEHQOX.js.map +0 -1
  378. package/dist/chunk-CJERAGFY.js.map +0 -1
  379. package/dist/chunk-D3B36CYC.js.map +0 -1
  380. package/dist/chunk-DZMNFCWB.js.map +0 -1
  381. package/dist/chunk-FH7W6TJ4.js.map +0 -1
  382. package/dist/chunk-HZXUXHIV.js.map +0 -1
  383. package/dist/chunk-NWDSLXOX.js.map +0 -1
  384. package/dist/chunk-OBYKJB4U.js.map +0 -1
  385. package/dist/chunk-PBBPZYVG.js.map +0 -1
  386. package/dist/chunk-R7FOF242.js +0 -59
  387. package/dist/chunk-R7FOF242.js.map +0 -1
  388. package/dist/chunk-RYYLMBA2.js.map +0 -1
  389. package/dist/chunk-SBSA3IQA.js.map +0 -1
  390. package/dist/chunk-VLTQGE2E.js.map +0 -1
  391. package/dist/chunk-WSBKB4CJ.js.map +0 -1
  392. package/dist/chunk-YOH2L76X.js.map +0 -1
  393. package/dist/chunk-ZCAJZ4B2.js.map +0 -1
  394. package/dist/chunk-ZPWTOUTK.js.map +0 -1
  395. package/dist/library-publish-53UTB3MB.js.map +0 -1
  396. package/dist/open-library-BOSPJVID.js +0 -40
  397. package/dist/open-registry-4FI7HKET.js +0 -32
  398. package/dist/paths-SUS4S4YT.js +0 -22
  399. package/dist/plugin-store-AGQDMING.js.map +0 -1
  400. package/dist/project-I55A4O2T.js +0 -41
  401. package/dist/source-G2LV5LVD.js +0 -41
  402. package/dist/source-fetch-github-QN4LLTL5.js +0 -4
  403. package/dist/source-manifest-publish-6RM7SWLZ.js.map +0 -1
@@ -1,26 +1,344 @@
1
- import { getStoreIdentity, refFor } from './chunk-RYYLMBA2.js';
2
- import { openLibrary } from './chunk-PQFHMQHQ.js';
3
- import { logErr, logWarn } from './chunk-GV4DZ6MT.js';
4
- import { getKindRegistry } from './chunk-CAHB6MHA.js';
5
- import { parseFlowDefinition } from './chunk-D3B36CYC.js';
6
- import { stampManifestPublisher, upsertManifestAsset, resolveIndexPath, LocalIndex } from './chunk-2F5AWQX5.js';
7
- import { requiresSyntaxErrors, SEMVER_RE, parseManifestFile } from './chunk-J4RBUFGM.js';
8
- import { SKILL_DESCRIPTION_PLACEHOLDER_PREFIX, PRESET_DESCRIPTION_PLACEHOLDER, PRESET_ITEM_PLACEHOLDER_REF, SKILL_BODY_PLACEHOLDER, CONTRACT_BODY_PLACEHOLDER, PROMPT_BODY_PLACEHOLDER, AGENT_BODY_PLACEHOLDER } from './chunk-ZCAJZ4B2.js';
9
- import { checkAgentSkillConformance } from './chunk-PBBPZYVG.js';
10
- import { matchPin } from './chunk-ALEYHUC5.js';
11
- import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest } from './chunk-ZPWTOUTK.js';
12
- import { parseFrontmatter } from './chunk-SBSA3IQA.js';
13
- import { parseDep, isValidPublisher, slugifyAssetName, PUBLISHER_HINT, parseAssetRef, isValidAssetName, ASSET_NAME_HINT } from './chunk-BNMZVPYA.js';
14
- import * as fs from 'fs';
15
- import * as path from 'path';
1
+ import { getStoreIdentity, refFor } from './chunk-NR7H7ZJP.js';
2
+ import { openLibrary } from './chunk-JQ3DXNQV.js';
3
+ import { logErr, logWarn } from './chunk-POQ6PGNE.js';
4
+ import { getKindRegistry } from './chunk-GWD3QNVS.js';
5
+ import { parseFlowDefinition } from './chunk-X3RMRJNR.js';
6
+ import { stampManifestPublisher, upsertManifestAsset, resolveIndexPath, LocalIndex } from './chunk-C3BMXXTN.js';
7
+ import { SEMVER_RE, parseManifestFile, requiresSyntaxErrors } from './chunk-7CR2OZPA.js';
8
+ import { composeRefTarget, SKILL_DESCRIPTION_PLACEHOLDER_PREFIX, PRESET_DESCRIPTION_PLACEHOLDER, PRESET_ITEM_PLACEHOLDER_REF, SKILL_BODY_PLACEHOLDER, CONTRACT_BODY_PLACEHOLDER, PROMPT_BODY_PLACEHOLDER, AGENT_BODY_PLACEHOLDER } from './chunk-6VLHITAM.js';
9
+ import { checkAgentSkillConformance } from './chunk-T5TSLSRO.js';
10
+ import { matchPin } from './chunk-PNOGX36L.js';
11
+ import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest } from './chunk-CTP3XBMF.js';
12
+ import { parseFrontmatter } from './chunk-XTVSNWLL.js';
13
+ import { parseDep, isValidPublisher, slugifyAssetName, parseAssetRef, isValidAssetName, ASSET_NAME_HINT, PUBLISHER_HINT } from './chunk-PNTXHTBC.js';
14
+ import * as fs3 from 'fs';
15
+ import * as path3 from 'path';
16
16
  import { Option } from 'commander';
17
17
  import { parse, stringify } from 'yaml';
18
18
 
19
+ var error = (text) => ({ tag: "agent", text, conformance: false });
20
+ function isInside(parent, child) {
21
+ const rel = path3.relative(parent, child);
22
+ return rel === "" || !rel.startsWith("..") && !path3.isAbsolute(rel);
23
+ }
24
+ function records(value) {
25
+ return Array.isArray(value) ? value.filter((v) => v !== null && typeof v === "object") : [];
26
+ }
27
+ function checkAgentFiles(parsed, agentDir, libraryRoot) {
28
+ const out = [];
29
+ records(parsed.composes).forEach((item, i) => {
30
+ if (typeof item.kind !== "string" || typeof item.ref !== "string") return;
31
+ const target = composeRefTarget({ kind: item.kind, ref: item.ref });
32
+ if (target?.type !== "local") return;
33
+ const where = `composes[${i}].ref`;
34
+ const resolved = path3.resolve(agentDir, target.path);
35
+ if (!fs3.existsSync(resolved)) {
36
+ out.push(
37
+ error(`${where}: local path "${item.ref}" does not exist (resolved from ${agentDir})`)
38
+ );
39
+ return;
40
+ }
41
+ if (!isInside(libraryRoot, resolved)) {
42
+ out.push(
43
+ error(`${where}: local path "${item.ref}" leaves the library and cannot be published`)
44
+ );
45
+ return;
46
+ }
47
+ const ownManifests = [
48
+ agentDir,
49
+ path3.join(agentDir, "agent.yaml"),
50
+ path3.join(agentDir, "AGENT.md")
51
+ ];
52
+ if (item.kind === "agent" && ownManifests.includes(resolved)) {
53
+ out.push(
54
+ error(
55
+ `${where}: agent composes itself (${item.ref}); an agent cannot be its own sub-agent`
56
+ )
57
+ );
58
+ }
59
+ });
60
+ const blocks = records(
61
+ parsed.memory !== null && typeof parsed.memory === "object" ? parsed.memory.blocks : void 0
62
+ );
63
+ blocks.forEach((block, i) => {
64
+ if (typeof block.source !== "string" || block.source === "") return;
65
+ const where = `memory.blocks[${i}].source`;
66
+ const resolved = path3.resolve(agentDir, block.source);
67
+ if (!isInside(agentDir, resolved)) {
68
+ out.push(error(`${where}: "${block.source}" leaves the agent directory`));
69
+ return;
70
+ }
71
+ let stat;
72
+ try {
73
+ stat = fs3.statSync(resolved);
74
+ } catch {
75
+ out.push(error(`${where}: file "${block.source}" does not exist in ${agentDir}`));
76
+ return;
77
+ }
78
+ if (!stat.isFile()) {
79
+ out.push(error(`${where}: "${block.source}" is not a file`));
80
+ return;
81
+ }
82
+ const max = block.max_chars;
83
+ if (typeof max !== "number") return;
84
+ const length = [...fs3.readFileSync(resolved, "utf-8").trim()].length;
85
+ if (length > max) {
86
+ out.push(
87
+ error(
88
+ `${where}: "${block.source}" holds ${length} characters, more than memory block "${String(block.name)}" max_chars ${max}`
89
+ )
90
+ );
91
+ }
92
+ });
93
+ return out;
94
+ }
95
+ function agentComposeRefAdvisories(parsed, hasAsset, libraryPublisher) {
96
+ const out = [];
97
+ records(parsed.composes).forEach((item, i) => {
98
+ if (typeof item.kind !== "string" || typeof item.ref !== "string") return;
99
+ const target = composeRefTarget({ kind: item.kind, ref: item.ref });
100
+ if (target?.type !== "asset" || target.kind === "soul") return;
101
+ if (target.publisher !== void 0 && libraryPublisher !== void 0 && target.publisher !== libraryPublisher) {
102
+ return;
103
+ }
104
+ if (target.publisher !== void 0 && libraryPublisher === void 0) return;
105
+ if (hasAsset(target.kind, target.name)) return;
106
+ out.push({
107
+ tag: "agent",
108
+ text: `composes[${i}].ref: ${item.ref} is not in this library; \`skaile add\` fails with "requires \u2026 not found" unless the asset is published elsewhere`,
109
+ conformance: false
110
+ });
111
+ });
112
+ return out;
113
+ }
114
+ var BODY_PLACEHOLDER_BY_KIND = {
115
+ skill: SKILL_BODY_PLACEHOLDER,
116
+ agent: AGENT_BODY_PLACEHOLDER,
117
+ prompt: PROMPT_BODY_PLACEHOLDER,
118
+ contract: CONTRACT_BODY_PLACEHOLDER
119
+ };
120
+ var MARKDOWN_SCAFFOLD_KINDS = {
121
+ skill: true,
122
+ agent: true,
123
+ prompt: true,
124
+ contract: true
125
+ };
126
+ var FLOW_DESCRIPTION_PLACEHOLDER = "Flow description";
127
+ function checkAssetManifest(kind, parsed, body, dirName) {
128
+ const out = [];
129
+ if (kind === "skill") {
130
+ for (const f of checkAgentSkillConformance(parsed, { dirName })) {
131
+ out.push({ tag: "skill conformance", text: `${f.field}: ${f.message}`, conformance: true });
132
+ }
133
+ }
134
+ if (MARKDOWN_SCAFFOLD_KINDS[kind]) {
135
+ const bodyText = body?.replace(/^#[^\n]*\n+/, "");
136
+ const isPlaceholder = bodyText === SKILL_BODY_PLACEHOLDER || bodyText === BODY_PLACEHOLDER_BY_KIND[kind];
137
+ if (isPlaceholder) {
138
+ const noun = kind === "skill" ? "skill prompt" : kind;
139
+ out.push({
140
+ tag: kind,
141
+ text: `body is still the scaffold placeholder; write the ${noun}`,
142
+ conformance: false,
143
+ scaffoldBody: true
144
+ });
145
+ }
146
+ }
147
+ return out;
148
+ }
149
+ function declaredVersion(parsed) {
150
+ const scalar = (v) => typeof v === "string" ? v : typeof v === "number" ? String(v) : void 0;
151
+ const meta = parsed.metadata;
152
+ const nested = meta !== null && typeof meta === "object" ? scalar(meta.version) : void 0;
153
+ return scalar(parsed.version) ?? nested;
154
+ }
155
+ function invalidSemverText(version) {
156
+ return SEMVER_RE.test(version) ? void 0 : `version "${version}" is not valid semver`;
157
+ }
158
+ function rawVersionScalar(text) {
159
+ const front = text.startsWith("---") ? text.split(/\n---/, 1)[0] ?? text : text;
160
+ const m = /^[ \t]*version:[ \t]*([^\s#][^#\n]*?)[ \t]*(?:#.*)?$/m.exec(front);
161
+ return m?.[1];
162
+ }
163
+ function versionProblemText(parsed, rawText) {
164
+ const version = declaredVersion(parsed);
165
+ const text = version === void 0 ? void 0 : invalidSemverText(version);
166
+ if (text === void 0) return void 0;
167
+ const meta = parsed.metadata;
168
+ const nested = meta !== null && typeof meta === "object" ? meta.version : void 0;
169
+ const key = parsed.version === void 0 || parsed.version === null ? "metadata.version" : "version";
170
+ const written = key === "version" ? parsed.version : nested;
171
+ if (typeof written !== "number") return text;
172
+ const raw = (rawText === void 0 ? void 0 : rawVersionScalar(rawText)) ?? String(written);
173
+ const fix = /^\d+(\.\d+)?$/.test(raw) ? `${raw}${raw.includes(".") ? "" : ".0"}.0` : DEFAULT_VERSION;
174
+ return `version ${raw} is not valid semver: yaml reads an unquoted number as a number, not a string. Write it quoted with three parts: ${key}: "${fix}"`;
175
+ }
176
+ function duplicateAssetMessage(kind, name, dir, detail, library) {
177
+ return `${kind}:${name} found in ${dir} but ${detail}. Rename or delete one of the two directories, then re-run \`skaile library index ${library}\`.`;
178
+ }
179
+ var DEFAULT_VERSION = "0.1.0";
180
+ var SCAFFOLD_KINDS = {
181
+ skill: true,
182
+ agent: true,
183
+ prompt: true,
184
+ contract: true,
185
+ flow: true,
186
+ preset: true
187
+ };
188
+ function withManifestDefaults(kind, parsed) {
189
+ if (!SCAFFOLD_KINDS[kind]) return parsed;
190
+ const out = { ...parsed };
191
+ if (out.metadata === null) delete out.metadata;
192
+ const meta = out.metadata;
193
+ const nested = typeof meta === "object" && meta !== null && "version" in meta ? meta.version : void 0;
194
+ if (out.version == null && nested == null) out.version = DEFAULT_VERSION;
195
+ return out;
196
+ }
197
+ function manifestIdentityError(kind, parsed) {
198
+ const identity = kind === "flow" ? parsed.id : parsed.name;
199
+ if (typeof identity !== "string" || identity.length === 0) return void 0;
200
+ const publisher = typeof parsed.publisher === "string" ? parsed.publisher : void 0;
201
+ if (publisher !== void 0) {
202
+ try {
203
+ parseAssetRef(`${kind}:@${publisher}/${identity}`);
204
+ return void 0;
205
+ } catch (e) {
206
+ return e instanceof Error ? e.message : String(e);
207
+ }
208
+ }
209
+ if (!isValidAssetName(identity)) {
210
+ return `invalid asset ${kind === "flow" ? "id" : "name"} "${identity}" \u2014 ${ASSET_NAME_HINT}`;
211
+ }
212
+ return void 0;
213
+ }
214
+ function scaffoldDefinitionErrors(kind, parsed) {
215
+ const out = [];
216
+ if (kind === "flow") {
217
+ if (parsed.description === FLOW_DESCRIPTION_PLACEHOLDER) {
218
+ out.push("description is still the scaffold placeholder; say what the flow does");
219
+ }
220
+ if (parsed.nodes === void 0) {
221
+ out.push("nodes is missing; a flow needs at least one node");
222
+ } else if (Array.isArray(parsed.nodes) && parsed.nodes.length === 0) {
223
+ out.push("nodes is still the scaffold placeholder (nodes: []); add the flow's nodes");
224
+ }
225
+ }
226
+ if (kind === "preset") {
227
+ if (parsed.description === PRESET_DESCRIPTION_PLACEHOLDER) {
228
+ out.push(
229
+ `description is still the scaffold placeholder ("${PRESET_DESCRIPTION_PLACEHOLDER}"); say what the preset does`
230
+ );
231
+ }
232
+ const items = Array.isArray(parsed.items) ? parsed.items : [];
233
+ const placeholderItem = items.some((item) => {
234
+ const ref = typeof item === "string" ? item : item?.ref;
235
+ return typeof ref === "string" && ref.trim() === PRESET_ITEM_PLACEHOLDER_REF;
236
+ });
237
+ if (placeholderItem) {
238
+ out.push(
239
+ `item ${PRESET_ITEM_PLACEHOLDER_REF} is still the scaffold placeholder; replace it with the preset's real items`
240
+ );
241
+ }
242
+ }
243
+ return out;
244
+ }
245
+ function checkAsset(kind, parsed, body, dirName, registry, rawText) {
246
+ const errors = [];
247
+ const error2 = (text) => {
248
+ errors.push({ tag: kind, text, conformance: false });
249
+ };
250
+ const identity = manifestIdentityError(kind, parsed);
251
+ if (identity) error2(identity);
252
+ const semver = versionProblemText(parsed, rawText);
253
+ if (semver) error2(semver);
254
+ const effective = withManifestDefaults(kind, parsed);
255
+ const versionKey = ["skill", "prompt", "contract"].includes(kind) ? "metadata.version" : "version";
256
+ const provider = registry.getProvider(kind);
257
+ if (!provider) {
258
+ error2(`unknown_asset_kind: kind "${kind}" is not registered`);
259
+ } else {
260
+ const result = provider.validateManifest(effective);
261
+ if (!result.ok) {
262
+ for (const e of result.errors) {
263
+ if (e.path === "version" || e.path === "metadata.version") {
264
+ if (!semver) {
265
+ error2(`${e.path}: must be a semver string \u2014 set ${versionKey}: ${DEFAULT_VERSION}`);
266
+ }
267
+ continue;
268
+ }
269
+ error2(`${e.path ? `${e.path}: ` : ""}${e.message}`);
270
+ }
271
+ }
272
+ }
273
+ const description = parsed.description;
274
+ if (kind !== "skill" && typeof description === "string" && description.trim().startsWith(SKILL_DESCRIPTION_PLACEHOLDER_PREFIX)) {
275
+ error2(
276
+ `description: description is still the scaffold placeholder (${SKILL_DESCRIPTION_PLACEHOLDER_PREFIX} \u2026) \u2014 say what the ${kind} does and when to use it`
277
+ );
278
+ }
279
+ for (const text of scaffoldDefinitionErrors(kind, parsed)) error2(text);
280
+ if (kind === "flow") {
281
+ const flow = parseFlowDefinition(effective);
282
+ if (!flow.ok) {
283
+ for (const e of flow.errors) {
284
+ error2(`invalid flow definition: ${e.path || "<root>"}: ${e.message}`);
285
+ }
286
+ }
287
+ }
288
+ return { errors, advisories: checkAssetManifest(kind, parsed, body, dirName) };
289
+ }
290
+ function findAssetManifestFile(dir, kind, name) {
291
+ const candidates = [];
292
+ if (kind === "skill") candidates.push("SKILL.md");
293
+ else if (kind === "agent") candidates.push("agent.yaml", "AGENT.md");
294
+ else if (kind === "contract") candidates.push("CONTRACT.md");
295
+ else if (kind === "prompt") candidates.push(`${name}.prompt.md`);
296
+ else if (kind === "flow") candidates.push(`${name}.flow.yaml`, `${name}.flow.json`);
297
+ else if (kind === "preset") candidates.push(`${name}.preset.yaml`);
298
+ for (const c of candidates) {
299
+ const file = path3.join(dir, c);
300
+ if (fs3.existsSync(file)) return file;
301
+ }
302
+ const suffix = kind === "prompt" ? ".prompt.md" : kind === "flow" ? ".flow.yaml" : kind === "preset" ? ".preset.yaml" : null;
303
+ if (suffix && fs3.existsSync(dir)) {
304
+ const matches = fs3.readdirSync(dir).filter((f) => f.endsWith(suffix));
305
+ if (matches.length === 1) return path3.join(dir, matches[0]);
306
+ }
307
+ return null;
308
+ }
309
+ function readAssetBody(file, text) {
310
+ if (file.endsWith(".md")) return parseFrontmatter(text).body;
311
+ if (path3.basename(file) !== "agent.yaml") return void 0;
312
+ const soul = path3.join(path3.dirname(file), "SOUL.md");
313
+ return fs3.existsSync(soul) ? fs3.readFileSync(soul, "utf8").trim() : void 0;
314
+ }
315
+ function checkAssetFile(file, kind, registry, libraryRoot) {
316
+ let text;
317
+ try {
318
+ text = fs3.readFileSync(file, "utf8");
319
+ } catch {
320
+ return [];
321
+ }
322
+ const res = parseManifestFile(file, text);
323
+ if (!res.ok) return [];
324
+ const errors = checkAsset(
325
+ kind,
326
+ res.data,
327
+ readAssetBody(file, text),
328
+ path3.basename(path3.dirname(file)),
329
+ registry,
330
+ text
331
+ ).errors;
332
+ if (kind === "agent" && libraryRoot !== void 0) {
333
+ errors.push(...checkAgentFiles(res.data, path3.dirname(file), libraryRoot));
334
+ }
335
+ return errors;
336
+ }
19
337
  function manifestRequiresProblems(dir) {
20
- const file = path.join(dir, "skaile.manifest.yaml");
338
+ const file = path3.join(dir, "skaile.manifest.yaml");
21
339
  let doc;
22
340
  try {
23
- doc = parse(fs.readFileSync(file, "utf-8"));
341
+ doc = parse(fs3.readFileSync(file, "utf-8"));
24
342
  } catch {
25
343
  return [];
26
344
  }
@@ -58,13 +376,13 @@ async function knownAssetVersions(dir) {
58
376
  };
59
377
  addManifest(dir);
60
378
  const indexPath = resolveIndexPath();
61
- if (!fs.existsSync(indexPath)) return known;
379
+ if (!fs3.existsSync(indexPath)) return known;
62
380
  const index = new LocalIndex({ indexPath, kindRegistry: getKindRegistry() });
63
381
  try {
64
382
  for (const def of await index.listAssetDefs())
65
383
  add(def.publisher, def.kind, def.name, def.version);
66
384
  for (const lib of await index.listSources()) {
67
- if (path.resolve(lib.path) !== path.resolve(dir) && fs.existsSync(lib.path)) {
385
+ if (path3.resolve(lib.path) !== path3.resolve(dir) && fs3.existsSync(lib.path)) {
68
386
  addManifest(lib.path);
69
387
  }
70
388
  }
@@ -77,7 +395,7 @@ async function knownAssetVersions(dir) {
77
395
  async function unresolvedManifestDependencies(dir) {
78
396
  let doc;
79
397
  try {
80
- doc = parse(fs.readFileSync(path.join(dir, SKAILE_MANIFEST_FILENAME), "utf-8"));
398
+ doc = parse(fs3.readFileSync(path3.join(dir, SKAILE_MANIFEST_FILENAME), "utf-8"));
81
399
  } catch {
82
400
  return [];
83
401
  }
@@ -129,7 +447,7 @@ function requireValidPublisherOrExit(raw) {
129
447
  function manifestPublisherProblems(dir) {
130
448
  let doc;
131
449
  try {
132
- doc = parse(fs.readFileSync(path.join(dir, SKAILE_MANIFEST_FILENAME), "utf-8"));
450
+ doc = parse(fs3.readFileSync(path3.join(dir, SKAILE_MANIFEST_FILENAME), "utf-8"));
133
451
  } catch {
134
452
  return [];
135
453
  }
@@ -171,7 +489,7 @@ async function indexLibrary(lib, index, opts = {}) {
171
489
  const lost = new Set(res.pruned);
172
490
  for (const other of await own.listSources()) {
173
491
  if (other.id === lib.id || other.backend !== "local" || !other.path) continue;
174
- if (!fs.existsSync(other.path)) continue;
492
+ if (!fs3.existsSync(other.path)) continue;
175
493
  await new LocalCatalogSource(own, other.id, other.path, getKindRegistry()).sync({
176
494
  only: lost
177
495
  });
@@ -208,16 +526,16 @@ function warnLibraryNameFallback(libName, resolved, hasPublisherFlag = false) {
208
526
  );
209
527
  }
210
528
  function normalizeAssetFrontmatter(assetDir) {
211
- let markerFile = ["SKILL.md", "AGENT.md", "CONTRACT.md"].map((m) => path.join(assetDir, m)).find((f) => fs.existsSync(f));
529
+ let markerFile = ["SKILL.md", "AGENT.md", "CONTRACT.md"].map((m) => path3.join(assetDir, m)).find((f) => fs3.existsSync(f));
212
530
  if (!markerFile) {
213
- const promptMd = fs.readdirSync(assetDir).find((f) => f.endsWith(".prompt.md"));
214
- if (promptMd) markerFile = path.join(assetDir, promptMd);
531
+ const promptMd = fs3.readdirSync(assetDir).find((f) => f.endsWith(".prompt.md"));
532
+ if (promptMd) markerFile = path3.join(assetDir, promptMd);
215
533
  }
216
534
  if (!markerFile) return;
217
535
  try {
218
- const { data, body } = parseFrontmatter(fs.readFileSync(markerFile, "utf8"));
536
+ const { data, body } = parseFrontmatter(fs3.readFileSync(markerFile, "utf8"));
219
537
  const fm = stringify(data).trimEnd();
220
- fs.writeFileSync(markerFile, `---
538
+ fs3.writeFileSync(markerFile, `---
221
539
  ${fm}
222
540
  ---
223
541
 
@@ -238,7 +556,7 @@ async function registerLibraryAsset(lib, index, input) {
238
556
  upsertManifestAsset(lib.path, {
239
557
  kind: input.kind,
240
558
  name: input.name,
241
- root: path.relative(lib.path, input.assetDir) || input.name,
559
+ root: path3.relative(lib.path, input.assetDir) || input.name,
242
560
  version: input.version,
243
561
  publisher
244
562
  });
@@ -261,17 +579,17 @@ function findFiles(root, match) {
261
579
  const walk = (dir) => {
262
580
  let entries;
263
581
  try {
264
- entries = fs.readdirSync(dir, { withFileTypes: true });
582
+ entries = fs3.readdirSync(dir, { withFileTypes: true });
265
583
  } catch {
266
584
  return;
267
585
  }
268
586
  for (const entry of entries) {
269
587
  if (entry.isDirectory()) {
270
588
  if (!entry.name.startsWith(".") && entry.name !== "node_modules") {
271
- walk(path.join(dir, entry.name));
589
+ walk(path3.join(dir, entry.name));
272
590
  }
273
591
  } else if (match(entry.name)) {
274
- found.push(path.join(dir, entry.name));
592
+ found.push(path3.join(dir, entry.name));
275
593
  }
276
594
  }
277
595
  };
@@ -293,7 +611,7 @@ function warnIgnoredDomainFiles(root) {
293
611
  function warnLegacyBundleFiles(root) {
294
612
  const files = findFiles(root, (name) => name.endsWith(".bundle.yaml"));
295
613
  if (files.length > 0) {
296
- const shown = files.slice(0, 5).map((f) => path.relative(root, f) || f);
614
+ const shown = files.slice(0, 5).map((f) => path3.relative(root, f) || f);
297
615
  const more = files.length > shown.length ? `, +${files.length - shown.length} more` : "";
298
616
  logWarn(
299
617
  `${files.length} *.bundle.yaml file(s) are not scanned (the bundle kind became preset): ${shown.join(", ")}${more}. Run \`skaile migrate assets ${root} --write\` to rename them to *.preset.yaml. See ${LIBRARY_UPGRADE_DOCS}`
@@ -301,205 +619,7 @@ function warnLegacyBundleFiles(root) {
301
619
  }
302
620
  return files.length;
303
621
  }
304
- var BODY_PLACEHOLDER_BY_KIND = {
305
- skill: SKILL_BODY_PLACEHOLDER,
306
- agent: AGENT_BODY_PLACEHOLDER,
307
- prompt: PROMPT_BODY_PLACEHOLDER,
308
- contract: CONTRACT_BODY_PLACEHOLDER
309
- };
310
- var MARKDOWN_SCAFFOLD_KINDS = {
311
- skill: true,
312
- agent: true,
313
- prompt: true,
314
- contract: true
315
- };
316
- var FLOW_DESCRIPTION_PLACEHOLDER = "Flow description";
317
- function checkAssetManifest(kind, parsed, body, dirName) {
318
- const out = [];
319
- if (kind === "skill") {
320
- for (const f of checkAgentSkillConformance(parsed, { dirName })) {
321
- out.push({ tag: "skill conformance", text: `${f.field}: ${f.message}`, conformance: true });
322
- }
323
- }
324
- if (MARKDOWN_SCAFFOLD_KINDS[kind]) {
325
- const bodyText = body?.replace(/^#[^\n]*\n+/, "");
326
- const isPlaceholder = bodyText === SKILL_BODY_PLACEHOLDER || bodyText === BODY_PLACEHOLDER_BY_KIND[kind];
327
- if (isPlaceholder) {
328
- const noun = kind === "skill" ? "skill prompt" : kind;
329
- out.push({
330
- tag: kind,
331
- text: `body is still the scaffold placeholder; write the ${noun}`,
332
- conformance: false
333
- });
334
- }
335
- }
336
- return out;
337
- }
338
- function declaredVersion(parsed) {
339
- const scalar = (v) => typeof v === "string" ? v : typeof v === "number" ? String(v) : void 0;
340
- const meta = parsed.metadata;
341
- const nested = meta !== null && typeof meta === "object" ? scalar(meta.version) : void 0;
342
- return scalar(parsed.version) ?? nested;
343
- }
344
- function invalidSemverText(version) {
345
- return SEMVER_RE.test(version) ? void 0 : `version "${version}" is not valid semver`;
346
- }
347
- function duplicateAssetMessage(kind, name, dir, detail, library) {
348
- return `${kind}:${name} found in ${dir} but ${detail}. Rename or delete one of the two directories, then re-run \`skaile library index ${library}\`.`;
349
- }
350
- var DEFAULT_VERSION = "0.1.0";
351
- var SCAFFOLD_KINDS = {
352
- skill: true,
353
- agent: true,
354
- prompt: true,
355
- contract: true,
356
- flow: true,
357
- preset: true
358
- };
359
- function withManifestDefaults(kind, parsed) {
360
- if (!SCAFFOLD_KINDS[kind]) return parsed;
361
- const out = { ...parsed };
362
- if (out.metadata === null) delete out.metadata;
363
- const meta = out.metadata;
364
- const nested = typeof meta === "object" && meta !== null && "version" in meta ? meta.version : void 0;
365
- if (out.version == null && nested == null) out.version = DEFAULT_VERSION;
366
- return out;
367
- }
368
- function manifestIdentityError(kind, parsed) {
369
- const identity = kind === "flow" ? parsed.id : parsed.name;
370
- if (typeof identity !== "string" || identity.length === 0) return void 0;
371
- const publisher = typeof parsed.publisher === "string" ? parsed.publisher : void 0;
372
- if (publisher !== void 0) {
373
- try {
374
- parseAssetRef(`${kind}:@${publisher}/${identity}`);
375
- return void 0;
376
- } catch (e) {
377
- return e instanceof Error ? e.message : String(e);
378
- }
379
- }
380
- if (!isValidAssetName(identity)) {
381
- return `invalid asset ${kind === "flow" ? "id" : "name"} "${identity}" \u2014 ${ASSET_NAME_HINT}`;
382
- }
383
- return void 0;
384
- }
385
- function scaffoldDefinitionErrors(kind, parsed) {
386
- const out = [];
387
- if (kind === "flow") {
388
- if (parsed.description === FLOW_DESCRIPTION_PLACEHOLDER) {
389
- out.push("description is still the scaffold placeholder; say what the flow does");
390
- }
391
- if (Array.isArray(parsed.nodes) && parsed.nodes.length === 0) {
392
- out.push("nodes is still the scaffold placeholder (nodes: []); add the flow's nodes");
393
- }
394
- }
395
- if (kind === "preset") {
396
- if (parsed.description === PRESET_DESCRIPTION_PLACEHOLDER) {
397
- out.push(
398
- `description is still the scaffold placeholder ("${PRESET_DESCRIPTION_PLACEHOLDER}"); say what the preset does`
399
- );
400
- }
401
- const items = Array.isArray(parsed.items) ? parsed.items : [];
402
- const placeholderItem = items.some((item) => {
403
- const ref = typeof item === "string" ? item : item?.ref;
404
- return typeof ref === "string" && ref.trim() === PRESET_ITEM_PLACEHOLDER_REF;
405
- });
406
- if (placeholderItem) {
407
- out.push(
408
- `item ${PRESET_ITEM_PLACEHOLDER_REF} is still the scaffold placeholder; replace it with the preset's real items`
409
- );
410
- }
411
- }
412
- return out;
413
- }
414
- function checkAsset(kind, parsed, body, dirName, registry) {
415
- const errors = [];
416
- const error = (text) => {
417
- errors.push({ tag: kind, text, conformance: false });
418
- };
419
- const identity = manifestIdentityError(kind, parsed);
420
- if (identity) error(identity);
421
- const version = declaredVersion(parsed);
422
- const semver = version === void 0 ? void 0 : invalidSemverText(version);
423
- if (semver) error(semver);
424
- const effective = withManifestDefaults(kind, parsed);
425
- const versionKey = ["skill", "prompt", "contract"].includes(kind) ? "metadata.version" : "version";
426
- const provider = registry.getProvider(kind);
427
- if (!provider) {
428
- error(`unknown_asset_kind: kind "${kind}" is not registered`);
429
- } else {
430
- const result = provider.validateManifest(effective);
431
- if (!result.ok) {
432
- for (const e of result.errors) {
433
- if (e.path === "version" || e.path === "metadata.version") {
434
- if (!semver) {
435
- error(`${e.path}: must be a semver string \u2014 set ${versionKey}: ${DEFAULT_VERSION}`);
436
- }
437
- continue;
438
- }
439
- error(`${e.path ? `${e.path}: ` : ""}${e.message}`);
440
- }
441
- }
442
- }
443
- const description = parsed.description;
444
- if (kind !== "skill" && typeof description === "string" && description.trim().startsWith(SKILL_DESCRIPTION_PLACEHOLDER_PREFIX)) {
445
- error(
446
- `description: description is still the scaffold placeholder (${SKILL_DESCRIPTION_PLACEHOLDER_PREFIX} \u2026) \u2014 say what the ${kind} does and when to use it`
447
- );
448
- }
449
- for (const text of scaffoldDefinitionErrors(kind, parsed)) error(text);
450
- if (kind === "flow") {
451
- const flow = parseFlowDefinition(effective);
452
- if (!flow.ok) {
453
- for (const e of flow.errors) {
454
- error(`invalid flow definition: ${e.path || "<root>"}: ${e.message}`);
455
- }
456
- }
457
- }
458
- return { errors, advisories: checkAssetManifest(kind, parsed, body, dirName) };
459
- }
460
- function findAssetManifestFile(dir, kind, name) {
461
- const candidates = [];
462
- if (kind === "skill") candidates.push("SKILL.md");
463
- else if (kind === "agent") candidates.push("agent.yaml", "AGENT.md");
464
- else if (kind === "contract") candidates.push("CONTRACT.md");
465
- else if (kind === "prompt") candidates.push(`${name}.prompt.md`);
466
- else if (kind === "flow") candidates.push(`${name}.flow.yaml`, `${name}.flow.json`);
467
- else if (kind === "preset") candidates.push(`${name}.preset.yaml`);
468
- for (const c of candidates) {
469
- const file = path.join(dir, c);
470
- if (fs.existsSync(file)) return file;
471
- }
472
- const suffix = kind === "prompt" ? ".prompt.md" : kind === "flow" ? ".flow.yaml" : kind === "preset" ? ".preset.yaml" : null;
473
- if (suffix && fs.existsSync(dir)) {
474
- const matches = fs.readdirSync(dir).filter((f) => f.endsWith(suffix));
475
- if (matches.length === 1) return path.join(dir, matches[0]);
476
- }
477
- return null;
478
- }
479
- function readAssetBody(file, text) {
480
- if (file.endsWith(".md")) return parseFrontmatter(text).body;
481
- if (path.basename(file) !== "agent.yaml") return void 0;
482
- const soul = path.join(path.dirname(file), "SOUL.md");
483
- return fs.existsSync(soul) ? fs.readFileSync(soul, "utf8").trim() : void 0;
484
- }
485
- function checkAssetFile(file, kind, registry) {
486
- let text;
487
- try {
488
- text = fs.readFileSync(file, "utf8");
489
- } catch {
490
- return [];
491
- }
492
- const res = parseManifestFile(file, text);
493
- if (!res.ok) return [];
494
- return checkAsset(
495
- kind,
496
- res.data,
497
- readAssetBody(file, text),
498
- path.basename(path.dirname(file)),
499
- registry
500
- ).errors;
501
- }
502
622
 
503
- export { DOMAIN_REMOVED_HINT, checkAsset, checkAssetFile, declaredVersion, duplicateAssetMessage, exitOnManifestPublisherProblems, findAssetManifestFile, indexLibrary, invalidSemverText, manifestPublisherProblems, manifestRequiresProblems, readAssetBody, registerLibraryAsset, rejectRemovedDomainOption, removedDomainOption, requireValidPublisherOrExit, resolveLibraryPublisherDetailed, unresolvedManifestDependencies, warnIgnoredDomainFiles, warnLegacyBundleFiles, warnLibraryNameFallback };
504
- //# sourceMappingURL=chunk-YOH2L76X.js.map
505
- //# sourceMappingURL=chunk-YOH2L76X.js.map
623
+ export { DOMAIN_REMOVED_HINT, agentComposeRefAdvisories, checkAgentFiles, checkAsset, checkAssetFile, declaredVersion, duplicateAssetMessage, exitOnManifestPublisherProblems, findAssetManifestFile, indexLibrary, invalidSemverText, manifestPublisherProblems, manifestRequiresProblems, readAssetBody, registerLibraryAsset, rejectRemovedDomainOption, removedDomainOption, requireValidPublisherOrExit, resolveLibraryPublisherDetailed, unresolvedManifestDependencies, warnIgnoredDomainFiles, warnLegacyBundleFiles, warnLibraryNameFallback };
624
+ //# sourceMappingURL=chunk-ID745F3R.js.map
625
+ //# sourceMappingURL=chunk-ID745F3R.js.map