@skaile/workspaces 5.19.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +8 -8
  3. package/dist/app-sdk/index.js +1 -1
  4. package/dist/{asset-feeds-QGLI3AXI.js → asset-feeds-HJFV7UPW.js} +32 -24
  5. package/dist/asset-feeds-HJFV7UPW.js.map +1 -0
  6. package/dist/asset-manager/catalog-deployer.js +12 -12
  7. package/dist/asset-manager/index.js +19 -19
  8. package/dist/asset-manager/installer.js +14 -14
  9. package/dist/asset-manager/renderers.js +13 -13
  10. package/dist/asset-manager/src/index.d.ts +214 -27
  11. package/dist/asset-manager/src/index.d.ts.map +1 -1
  12. package/dist/asset-manager/src/install-agent.d.ts +2 -2
  13. package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
  14. package/dist/asset-manager/src/install-instances.d.ts +8 -8
  15. package/dist/asset-manager/src/install-instances.d.ts.map +1 -1
  16. package/dist/asset-manager/src/installer.d.ts +34 -3
  17. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  18. package/dist/asset-manager/src/mcp-config.d.ts +35 -14
  19. package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
  20. package/dist/asset-manager/src/renderers.d.ts +12 -12
  21. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  22. package/dist/bridge/codex-app-server.js +2 -2
  23. package/dist/bridge/harnesses/claude-sdk.d.ts +2 -0
  24. package/dist/bridge/{drivers → harnesses}/claude-sdk.js +69 -73
  25. package/dist/bridge/harnesses/claude-sdk.js.map +1 -0
  26. package/dist/bridge/{drivers/gemini.d.ts → harnesses/codex.d.ts} +1 -1
  27. package/dist/bridge/{drivers → harnesses}/codex.js +53 -53
  28. package/dist/bridge/harnesses/codex.js.map +1 -0
  29. package/dist/bridge/{drivers/claude-sdk.d.ts → harnesses/continue.d.ts} +1 -1
  30. package/dist/bridge/{drivers → harnesses}/continue.js +30 -30
  31. package/dist/bridge/harnesses/continue.js.map +1 -0
  32. package/dist/bridge/{drivers → harnesses}/echo.d.ts +1 -1
  33. package/dist/bridge/{drivers → harnesses}/echo.js +27 -27
  34. package/dist/bridge/harnesses/echo.js.map +1 -0
  35. package/dist/bridge/{drivers/continue.d.ts → harnesses/gemini.d.ts} +1 -1
  36. package/dist/bridge/harnesses/gemini.js +18 -0
  37. package/dist/bridge/{drivers → harnesses}/goose.d.ts +1 -1
  38. package/dist/bridge/{drivers → harnesses}/goose.js +30 -30
  39. package/dist/bridge/harnesses/goose.js.map +1 -0
  40. package/dist/bridge/{drivers → harnesses}/omp.d.ts +1 -1
  41. package/dist/bridge/{drivers → harnesses}/omp.js +31 -31
  42. package/dist/bridge/harnesses/omp.js.map +1 -0
  43. package/dist/bridge/{drivers → harnesses}/opencode.d.ts +1 -1
  44. package/dist/bridge/{drivers → harnesses}/opencode.js +31 -31
  45. package/dist/bridge/harnesses/opencode.js.map +1 -0
  46. package/dist/bridge/{drivers → harnesses}/qwen.d.ts +1 -1
  47. package/dist/bridge/{drivers → harnesses}/qwen.js +20 -20
  48. package/dist/bridge/harnesses/qwen.js.map +1 -0
  49. package/dist/bridge/index.js +25 -25
  50. package/dist/bridge/src/agent-exec.d.ts +2 -2
  51. package/dist/bridge/src/agent-transcript.d.ts +1 -1
  52. package/dist/bridge/src/agent-transcript.d.ts.map +1 -1
  53. package/dist/bridge/src/approval-card.d.ts +3 -3
  54. package/dist/bridge/src/capability-dispatch.d.ts +5 -5
  55. package/dist/bridge/src/claude-sdk-surface.d.ts +17 -0
  56. package/dist/bridge/src/claude-sdk-surface.d.ts.map +1 -0
  57. package/dist/bridge/src/cloud.d.ts +4 -4
  58. package/dist/bridge/src/codex/config-toml.d.ts +3 -3
  59. package/dist/bridge/src/codex/friendly-error.d.ts +1 -1
  60. package/dist/bridge/src/codex/friendly-error.d.ts.map +1 -1
  61. package/dist/bridge/src/codex/{managed-driver.d.ts → managed-harness.d.ts} +5 -5
  62. package/dist/bridge/src/codex/managed-harness.d.ts.map +1 -0
  63. package/dist/bridge/src/codex/native-approvals.d.ts +1 -1
  64. package/dist/bridge/src/codex/native-approvals.d.ts.map +1 -1
  65. package/dist/bridge/src/error-classifier.d.ts +7 -7
  66. package/dist/bridge/src/{driver-capabilities.d.ts → harness-capabilities.d.ts} +18 -18
  67. package/dist/bridge/src/harness-capabilities.d.ts.map +1 -0
  68. package/dist/bridge/src/harness-model-check.d.ts +40 -0
  69. package/dist/bridge/src/harness-model-check.d.ts.map +1 -0
  70. package/dist/bridge/src/{drivers → harnesses}/_subprocess-cli.d.ts +8 -8
  71. package/dist/bridge/src/harnesses/_subprocess-cli.d.ts.map +1 -0
  72. package/dist/bridge/src/{drivers → harnesses}/claude-context-usage.d.ts +5 -5
  73. package/dist/bridge/src/harnesses/claude-context-usage.d.ts.map +1 -0
  74. package/dist/bridge/src/{drivers → harnesses}/claude-sdk.d.ts +27 -27
  75. package/dist/bridge/src/harnesses/claude-sdk.d.ts.map +1 -0
  76. package/dist/bridge/src/{drivers → harnesses}/claude-self-turns.d.ts +5 -5
  77. package/dist/bridge/src/harnesses/claude-self-turns.d.ts.map +1 -0
  78. package/dist/bridge/src/{drivers → harnesses}/claude-tool-allowlist.d.ts +4 -4
  79. package/dist/bridge/src/harnesses/claude-tool-allowlist.d.ts.map +1 -0
  80. package/dist/bridge/src/{drivers → harnesses}/codex.d.ts +14 -14
  81. package/dist/bridge/src/harnesses/codex.d.ts.map +1 -0
  82. package/dist/bridge/src/{drivers → harnesses}/continue.d.ts +12 -12
  83. package/dist/bridge/src/harnesses/continue.d.ts.map +1 -0
  84. package/dist/bridge/src/{drivers → harnesses}/echo.d.ts +16 -16
  85. package/dist/bridge/src/harnesses/echo.d.ts.map +1 -0
  86. package/dist/bridge/src/{drivers → harnesses}/flow-script.d.ts +9 -9
  87. package/dist/bridge/src/harnesses/flow-script.d.ts.map +1 -0
  88. package/dist/bridge/src/{drivers → harnesses}/gemini.d.ts +15 -15
  89. package/dist/bridge/src/harnesses/gemini.d.ts.map +1 -0
  90. package/dist/bridge/src/{drivers → harnesses}/goose.d.ts +10 -10
  91. package/dist/bridge/src/harnesses/goose.d.ts.map +1 -0
  92. package/dist/bridge/src/{drivers → harnesses}/omp-models-yml.d.ts +12 -12
  93. package/dist/bridge/src/harnesses/omp-models-yml.d.ts.map +1 -0
  94. package/dist/bridge/src/{drivers → harnesses}/omp.d.ts +23 -23
  95. package/dist/bridge/src/harnesses/omp.d.ts.map +1 -0
  96. package/dist/bridge/src/{drivers → harnesses}/opencode.d.ts +11 -11
  97. package/dist/bridge/src/harnesses/opencode.d.ts.map +1 -0
  98. package/dist/bridge/src/{drivers → harnesses}/qwen.d.ts +12 -12
  99. package/dist/bridge/src/harnesses/qwen.d.ts.map +1 -0
  100. package/dist/bridge/src/{drivers → harnesses}/recovery-policy.d.ts +4 -4
  101. package/dist/bridge/src/harnesses/recovery-policy.d.ts.map +1 -0
  102. package/dist/bridge/src/{drivers → harnesses}/resume-probe.d.ts +3 -3
  103. package/dist/bridge/src/harnesses/resume-probe.d.ts.map +1 -0
  104. package/dist/bridge/src/{drivers → harnesses}/sanitize-assistant-text.d.ts +1 -1
  105. package/dist/bridge/src/harnesses/sanitize-assistant-text.d.ts.map +1 -0
  106. package/dist/bridge/src/{drivers → harnesses}/scrub-transcript.d.ts +1 -1
  107. package/dist/bridge/src/harnesses/scrub-transcript.d.ts.map +1 -0
  108. package/dist/bridge/src/index.d.ts +5 -4
  109. package/dist/bridge/src/index.d.ts.map +1 -1
  110. package/dist/bridge/src/logger.d.ts +4 -4
  111. package/dist/bridge/src/models.d.ts +1 -1
  112. package/dist/bridge/src/normalizer.d.ts +5 -3
  113. package/dist/bridge/src/normalizer.d.ts.map +1 -1
  114. package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts +5 -5
  115. package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts.map +1 -1
  116. package/dist/bridge/src/provider-materialize/credential-env.d.ts +3 -3
  117. package/dist/bridge/src/provider-materialize/{env-drivers.d.ts → env-harnesses.d.ts} +19 -19
  118. package/dist/bridge/src/provider-materialize/env-harnesses.d.ts.map +1 -0
  119. package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts +5 -5
  120. package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts.map +1 -1
  121. package/dist/bridge/src/provider-materialize/opencode-config.d.ts +7 -7
  122. package/dist/bridge/src/provider-materialize/opencode-config.d.ts.map +1 -1
  123. package/dist/bridge/src/provider-materialize/session-config-home.d.ts +5 -5
  124. package/dist/bridge/src/provider-materialize/session-config-home.d.ts.map +1 -1
  125. package/dist/bridge/src/provider-registry-derive.d.ts +4 -4
  126. package/dist/bridge/src/provider-registry-derive.d.ts.map +1 -1
  127. package/dist/bridge/src/reconfigure-ledger.d.ts +8 -8
  128. package/dist/bridge/src/reconfigure-ledger.d.ts.map +1 -1
  129. package/dist/bridge/src/registry.d.ts +34 -41
  130. package/dist/bridge/src/registry.d.ts.map +1 -1
  131. package/dist/bridge/src/runner-private-env.d.ts +2 -2
  132. package/dist/bridge/src/runtime.d.ts +11 -11
  133. package/dist/bridge/src/runtime.d.ts.map +1 -1
  134. package/dist/bridge/src/types.d.ts +158 -158
  135. package/dist/bridge/src/types.d.ts.map +1 -1
  136. package/dist/{chunk-7NT4F6SR.js → chunk-2LAPHLDH.js} +587 -521
  137. package/dist/chunk-2LAPHLDH.js.map +1 -0
  138. package/dist/{chunk-25ZVWL2R.js → chunk-3GMOPFWH.js} +4 -4
  139. package/dist/{chunk-25ZVWL2R.js.map → chunk-3GMOPFWH.js.map} +1 -1
  140. package/dist/{chunk-X5YPJV4N.js → chunk-3MWQKQUB.js} +2 -2
  141. package/dist/{chunk-X5YPJV4N.js.map → chunk-3MWQKQUB.js.map} +1 -1
  142. package/dist/{chunk-EPBKISS5.js → chunk-3TG2NV2F.js} +2 -2
  143. package/dist/chunk-3TG2NV2F.js.map +1 -0
  144. package/dist/{chunk-L2AMXONH.js → chunk-3X7VTCPG.js} +2 -2
  145. package/dist/chunk-3X7VTCPG.js.map +1 -0
  146. package/dist/{chunk-VIM3PWZM.js → chunk-4FVIT5DI.js} +3 -3
  147. package/dist/{chunk-VIM3PWZM.js.map → chunk-4FVIT5DI.js.map} +1 -1
  148. package/dist/{chunk-IF6IA3PZ.js → chunk-4MUDQCBP.js} +4 -4
  149. package/dist/{chunk-IF6IA3PZ.js.map → chunk-4MUDQCBP.js.map} +1 -1
  150. package/dist/{chunk-MKRWN7XP.js → chunk-5J4NPGFM.js} +5 -5
  151. package/dist/chunk-5J4NPGFM.js.map +1 -0
  152. package/dist/{chunk-5TBFN46Z.js → chunk-5KRMNUL4.js} +4 -4
  153. package/dist/chunk-5KRMNUL4.js.map +1 -0
  154. package/dist/{chunk-7SCS64BG.js → chunk-5Y2KGB4H.js} +109 -74
  155. package/dist/chunk-5Y2KGB4H.js.map +1 -0
  156. package/dist/{chunk-YIF2IJUA.js → chunk-6GWSDPBP.js} +3 -3
  157. package/dist/{chunk-YIF2IJUA.js.map → chunk-6GWSDPBP.js.map} +1 -1
  158. package/dist/{chunk-WST6UITC.js → chunk-6YR4ALVX.js} +17 -17
  159. package/dist/chunk-6YR4ALVX.js.map +1 -0
  160. package/dist/{chunk-YROR332M.js → chunk-7DN6JKP2.js} +2 -2
  161. package/dist/chunk-7DN6JKP2.js.map +1 -0
  162. package/dist/{chunk-IZCR27MU.js → chunk-7EKQDY2T.js} +3 -3
  163. package/dist/chunk-7EKQDY2T.js.map +1 -0
  164. package/dist/chunk-7HX6FNKL.js +317 -0
  165. package/dist/chunk-7HX6FNKL.js.map +1 -0
  166. package/dist/{chunk-COJIL7G4.js → chunk-7LP7RCZI.js} +7 -7
  167. package/dist/chunk-7LP7RCZI.js.map +1 -0
  168. package/dist/{chunk-2PBSAH3Z.js → chunk-AATHJRKL.js} +4 -4
  169. package/dist/{chunk-2PBSAH3Z.js.map → chunk-AATHJRKL.js.map} +1 -1
  170. package/dist/{chunk-C7WBGSBV.js → chunk-ABFPSVIS.js} +10 -10
  171. package/dist/chunk-ABFPSVIS.js.map +1 -0
  172. package/dist/{chunk-ICSCSM5D.js → chunk-ADPM6AYF.js} +3 -3
  173. package/dist/{chunk-ICSCSM5D.js.map → chunk-ADPM6AYF.js.map} +1 -1
  174. package/dist/{chunk-WOIRYY5L.js → chunk-AITJ7ELM.js} +141 -27
  175. package/dist/chunk-AITJ7ELM.js.map +1 -0
  176. package/dist/{chunk-HU5HVKY7.js → chunk-ASWTQQ7E.js} +4 -4
  177. package/dist/{chunk-HU5HVKY7.js.map → chunk-ASWTQQ7E.js.map} +1 -1
  178. package/dist/{chunk-RO6VOM6Z.js → chunk-AZ2H6R5I.js} +51 -25
  179. package/dist/chunk-AZ2H6R5I.js.map +1 -0
  180. package/dist/{chunk-I7TWVK6N.js → chunk-BBBCJSSU.js} +4 -4
  181. package/dist/{chunk-I7TWVK6N.js.map → chunk-BBBCJSSU.js.map} +1 -1
  182. package/dist/{chunk-AJ7EGIFR.js → chunk-BIRW3HOG.js} +3 -3
  183. package/dist/chunk-BIRW3HOG.js.map +1 -0
  184. package/dist/{chunk-FPHNJE4M.js → chunk-CEKW3KXP.js} +91 -30
  185. package/dist/chunk-CEKW3KXP.js.map +1 -0
  186. package/dist/{chunk-F6AA42GW.js → chunk-COYF6IG2.js} +5 -5
  187. package/dist/{chunk-F6AA42GW.js.map → chunk-COYF6IG2.js.map} +1 -1
  188. package/dist/{chunk-HT35SQZD.js → chunk-DGTI65OC.js} +30 -30
  189. package/dist/chunk-DGTI65OC.js.map +1 -0
  190. package/dist/{chunk-W4Q6CKJ5.js → chunk-DIGFA7Z5.js} +11 -11
  191. package/dist/chunk-DIGFA7Z5.js.map +1 -0
  192. package/dist/{chunk-335ENCCS.js → chunk-E572OHGY.js} +2 -2
  193. package/dist/{chunk-335ENCCS.js.map → chunk-E572OHGY.js.map} +1 -1
  194. package/dist/{chunk-Y5MBW5EU.js → chunk-EJPMNDTP.js} +3 -3
  195. package/dist/{chunk-Y5MBW5EU.js.map → chunk-EJPMNDTP.js.map} +1 -1
  196. package/dist/chunk-EX3GLAL6.js +31 -0
  197. package/dist/chunk-EX3GLAL6.js.map +1 -0
  198. package/dist/{chunk-XWOPZW26.js → chunk-FKQNBCDW.js} +38 -38
  199. package/dist/chunk-FKQNBCDW.js.map +1 -0
  200. package/dist/{chunk-6E6PKKAD.js → chunk-G5SUWZEU.js} +18 -8
  201. package/dist/chunk-G5SUWZEU.js.map +1 -0
  202. package/dist/{chunk-2GXSSZAM.js → chunk-GNZBFSRB.js} +12 -12
  203. package/dist/chunk-GNZBFSRB.js.map +1 -0
  204. package/dist/{chunk-PYJS5K7V.js → chunk-HMISULVD.js} +5 -5
  205. package/dist/{chunk-PYJS5K7V.js.map → chunk-HMISULVD.js.map} +1 -1
  206. package/dist/{chunk-IP2IPMEH.js → chunk-HPMQRAIF.js} +18 -18
  207. package/dist/chunk-HPMQRAIF.js.map +1 -0
  208. package/dist/{chunk-MRHVPQNO.js → chunk-HWNK3F3X.js} +1015 -189
  209. package/dist/chunk-HWNK3F3X.js.map +1 -0
  210. package/dist/{chunk-ZQSOJH6I.js → chunk-IHFGPHCT.js} +141 -341
  211. package/dist/chunk-IHFGPHCT.js.map +1 -0
  212. package/dist/{chunk-CQJH4G2K.js → chunk-ILLTBKDJ.js} +101 -102
  213. package/dist/chunk-ILLTBKDJ.js.map +1 -0
  214. package/dist/{chunk-FKU57Q5Q.js → chunk-IRYKRKVQ.js} +3 -3
  215. package/dist/{chunk-FKU57Q5Q.js.map → chunk-IRYKRKVQ.js.map} +1 -1
  216. package/dist/{chunk-J24CY3PF.js → chunk-J72MO2WA.js} +39 -39
  217. package/dist/chunk-J72MO2WA.js.map +1 -0
  218. package/dist/{chunk-Y56YIT6J.js → chunk-JCPD4QRM.js} +4 -4
  219. package/dist/chunk-JCPD4QRM.js.map +1 -0
  220. package/dist/{chunk-X3RMRJNR.js → chunk-JRN5QF4C.js} +8 -3
  221. package/dist/chunk-JRN5QF4C.js.map +1 -0
  222. package/dist/{chunk-K4O6L3WH.js → chunk-KNY356I3.js} +3 -3
  223. package/dist/{chunk-K4O6L3WH.js.map → chunk-KNY356I3.js.map} +1 -1
  224. package/dist/{chunk-XJVBUDDJ.js → chunk-KUQAJVYT.js} +8 -8
  225. package/dist/chunk-KUQAJVYT.js.map +1 -0
  226. package/dist/{chunk-4ZTPYIBE.js → chunk-KW37WNXY.js} +12 -12
  227. package/dist/chunk-KW37WNXY.js.map +1 -0
  228. package/dist/{chunk-MJHSLODD.js → chunk-LSI2IVFT.js} +2 -2
  229. package/dist/chunk-LSI2IVFT.js.map +1 -0
  230. package/dist/{chunk-WDXZA7QW.js → chunk-LSSYC5IC.js} +2 -2
  231. package/dist/{chunk-WDXZA7QW.js.map → chunk-LSSYC5IC.js.map} +1 -1
  232. package/dist/{chunk-WG6V4ISA.js → chunk-NB7SYQYP.js} +7 -7
  233. package/dist/{chunk-WG6V4ISA.js.map → chunk-NB7SYQYP.js.map} +1 -1
  234. package/dist/{chunk-EAZECHPM.js → chunk-NBAGV6L2.js} +5 -5
  235. package/dist/chunk-NBAGV6L2.js.map +1 -0
  236. package/dist/{chunk-JTOWA6RS.js → chunk-NUA33BYO.js} +181 -64
  237. package/dist/chunk-NUA33BYO.js.map +1 -0
  238. package/dist/{chunk-A6SMCEEE.js → chunk-QAKUD6QN.js} +11 -11
  239. package/dist/{chunk-A6SMCEEE.js.map → chunk-QAKUD6QN.js.map} +1 -1
  240. package/dist/{chunk-QG6GHTRM.js → chunk-QEULL4Q3.js} +8 -8
  241. package/dist/chunk-QEULL4Q3.js.map +1 -0
  242. package/dist/{chunk-ZX4KRWRB.js → chunk-QSYQOTWN.js} +4 -4
  243. package/dist/{chunk-ZX4KRWRB.js.map → chunk-QSYQOTWN.js.map} +1 -1
  244. package/dist/{chunk-X4ZZTHU3.js → chunk-RDTLPOPD.js} +4 -4
  245. package/dist/{chunk-X4ZZTHU3.js.map → chunk-RDTLPOPD.js.map} +1 -1
  246. package/dist/{chunk-GOCWM7FN.js → chunk-RHN5MRQO.js} +21 -4
  247. package/dist/chunk-RHN5MRQO.js.map +1 -0
  248. package/dist/{chunk-XM6T2AZ2.js → chunk-S2XHGWQC.js} +162 -124
  249. package/dist/chunk-S2XHGWQC.js.map +1 -0
  250. package/dist/{chunk-VJ7NU7GD.js → chunk-SVTMNSPI.js} +23 -6
  251. package/dist/chunk-SVTMNSPI.js.map +1 -0
  252. package/dist/{chunk-I37INEWE.js → chunk-UI745XC3.js} +10 -23
  253. package/dist/chunk-UI745XC3.js.map +1 -0
  254. package/dist/{chunk-N46LQR46.js → chunk-VMVDAZLA.js} +53 -30
  255. package/dist/chunk-VMVDAZLA.js.map +1 -0
  256. package/dist/{chunk-IG5LZ3WU.js → chunk-VTETQCR6.js} +10 -10
  257. package/dist/chunk-VTETQCR6.js.map +1 -0
  258. package/dist/{chunk-EFLKSMCO.js → chunk-VUJXZDCY.js} +5 -5
  259. package/dist/{chunk-EFLKSMCO.js.map → chunk-VUJXZDCY.js.map} +1 -1
  260. package/dist/{chunk-H6UVIKQ2.js → chunk-VYVTEMAW.js} +3 -3
  261. package/dist/{chunk-H6UVIKQ2.js.map → chunk-VYVTEMAW.js.map} +1 -1
  262. package/dist/{chunk-M3WPBTGJ.js → chunk-WD3L5QSU.js} +2 -2
  263. package/dist/{chunk-M3WPBTGJ.js.map → chunk-WD3L5QSU.js.map} +1 -1
  264. package/dist/{chunk-R6O6YWU7.js → chunk-WYZXSJBK.js} +3 -3
  265. package/dist/{chunk-R6O6YWU7.js.map → chunk-WYZXSJBK.js.map} +1 -1
  266. package/dist/{chunk-R4I3VBSS.js → chunk-X3YGUKCG.js} +5 -5
  267. package/dist/{chunk-R4I3VBSS.js.map → chunk-X3YGUKCG.js.map} +1 -1
  268. package/dist/{chunk-RPZVHXQ3.js → chunk-XFIEVEU7.js} +4 -4
  269. package/dist/chunk-XFIEVEU7.js.map +1 -0
  270. package/dist/{chunk-VSZWNUZC.js → chunk-XGULGQA3.js} +4 -4
  271. package/dist/chunk-XGULGQA3.js.map +1 -0
  272. package/dist/{chunk-Q6E6FM7P.js → chunk-XKNXPLKR.js} +6 -6
  273. package/dist/{chunk-Q6E6FM7P.js.map → chunk-XKNXPLKR.js.map} +1 -1
  274. package/dist/{chunk-7XSAW5OC.js → chunk-YLLVSR2U.js} +4 -4
  275. package/dist/{chunk-7XSAW5OC.js.map → chunk-YLLVSR2U.js.map} +1 -1
  276. package/dist/{chunk-6Z5KTFJT.js → chunk-Z3VKUWAX.js} +3 -3
  277. package/dist/{chunk-6Z5KTFJT.js.map → chunk-Z3VKUWAX.js.map} +1 -1
  278. package/dist/{chunk-5BEFNLOR.js → chunk-Z7ZEZZB6.js} +8 -8
  279. package/dist/chunk-Z7ZEZZB6.js.map +1 -0
  280. package/dist/{chunk-2LSDMJI2.js → chunk-ZAELRYKS.js} +4 -4
  281. package/dist/{chunk-2LSDMJI2.js.map → chunk-ZAELRYKS.js.map} +1 -1
  282. package/dist/{chunk-UQ33Y4DM.js → chunk-ZBHZLWV3.js} +4 -4
  283. package/dist/{chunk-UQ33Y4DM.js.map → chunk-ZBHZLWV3.js.map} +1 -1
  284. package/dist/{chunk-TIIXG3PN.js → chunk-ZDLUQLI6.js} +4 -4
  285. package/dist/{chunk-TIIXG3PN.js.map → chunk-ZDLUQLI6.js.map} +1 -1
  286. package/dist/{chunk-PHRNUTSG.js → chunk-ZFUZ5AKM.js} +4 -4
  287. package/dist/{chunk-PHRNUTSG.js.map → chunk-ZFUZ5AKM.js.map} +1 -1
  288. package/dist/{chunk-V257LUBM.js → chunk-ZHGKAZJ7.js} +251 -26
  289. package/dist/chunk-ZHGKAZJ7.js.map +1 -0
  290. package/dist/claude-code-RE46FJXI.js +10 -0
  291. package/dist/{claude-code-2PU7TITZ.js.map → claude-code-RE46FJXI.js.map} +1 -1
  292. package/dist/cli/index.js +1066 -647
  293. package/dist/cli/index.js.map +1 -1
  294. package/dist/cli/src/agent-pins.d.ts +11 -0
  295. package/dist/cli/src/agent-pins.d.ts.map +1 -1
  296. package/dist/cli/src/commands/catalog.d.ts +4 -4
  297. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  298. package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
  299. package/dist/cli/src/commands/config.d.ts +2 -2
  300. package/dist/cli/src/commands/config.d.ts.map +1 -1
  301. package/dist/cli/src/commands/diff.d.ts.map +1 -1
  302. package/dist/cli/src/commands/harness.d.ts +24 -0
  303. package/dist/cli/src/commands/harness.d.ts.map +1 -0
  304. package/dist/cli/src/commands/integration.d.ts +1 -1
  305. package/dist/cli/src/commands/integration.d.ts.map +1 -1
  306. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  307. package/dist/cli/src/commands/library-index.d.ts +20 -2
  308. package/dist/cli/src/commands/library-index.d.ts.map +1 -1
  309. package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
  310. package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -1
  311. package/dist/cli/src/commands/migrate-files.d.ts +14 -0
  312. package/dist/cli/src/commands/migrate-files.d.ts.map +1 -1
  313. package/dist/cli/src/commands/migrate-harness.d.ts +49 -0
  314. package/dist/cli/src/commands/migrate-harness.d.ts.map +1 -0
  315. package/dist/cli/src/commands/migrate.d.ts +4 -2
  316. package/dist/cli/src/commands/migrate.d.ts.map +1 -1
  317. package/dist/cli/src/commands/plugin/types.d.ts +1 -6
  318. package/dist/cli/src/commands/plugin/types.d.ts.map +1 -1
  319. package/dist/cli/src/commands/plugin-registry-cmd.d.ts +1 -1
  320. package/dist/cli/src/commands/preset-export.d.ts +1 -1
  321. package/dist/cli/src/commands/project.d.ts +20 -2
  322. package/dist/cli/src/commands/project.d.ts.map +1 -1
  323. package/dist/cli/src/commands/run.d.ts +2 -2
  324. package/dist/cli/src/commands/run.d.ts.map +1 -1
  325. package/dist/cli/src/commands/serve-preflight.d.ts +11 -11
  326. package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
  327. package/dist/cli/src/commands/serve.d.ts +1 -1
  328. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  329. package/dist/cli/src/commands/session-logs/local-query.d.ts +2 -0
  330. package/dist/cli/src/commands/session-logs/local-query.d.ts.map +1 -1
  331. package/dist/cli/src/commands/source.d.ts +9 -2
  332. package/dist/cli/src/commands/source.d.ts.map +1 -1
  333. package/dist/cli/src/commands/store.d.ts.map +1 -1
  334. package/dist/cli/src/commands/update.d.ts.map +1 -1
  335. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  336. package/dist/cli/src/config-checks.d.ts +37 -0
  337. package/dist/cli/src/config-checks.d.ts.map +1 -0
  338. package/dist/cli/src/harness-error.d.ts +47 -0
  339. package/dist/cli/src/harness-error.d.ts.map +1 -0
  340. package/dist/cli/src/helpers.d.ts +5 -5
  341. package/dist/cli/src/helpers.d.ts.map +1 -1
  342. package/dist/cli/src/plugin-store/index.d.ts +2 -2
  343. package/dist/cli/src/setup.d.ts +3 -3
  344. package/dist/cli/src/setup.d.ts.map +1 -1
  345. package/dist/cli/src/skill-checks.d.ts +27 -0
  346. package/dist/cli/src/skill-checks.d.ts.map +1 -1
  347. package/dist/cli/src/store-addable.d.ts +11 -0
  348. package/dist/cli/src/store-addable.d.ts.map +1 -1
  349. package/dist/connectors/config.js +6 -6
  350. package/dist/connectors/index.js +31 -31
  351. package/dist/connectors/src/connector-prompt.d.ts +5 -5
  352. package/dist/connectors/src/connector-registry.d.ts +1 -1
  353. package/dist/connectors-7THEF7YA.js +48 -0
  354. package/dist/{connectors-RBGZ3M7G.js.map → connectors-7THEF7YA.js.map} +1 -1
  355. package/dist/connectors-shared/index.js +2 -2
  356. package/dist/core/framework.js +1 -1
  357. package/dist/{bridge/drivers/codex.d.ts → core/harness-targets.d.ts} +1 -1
  358. package/dist/core/harness-targets.js +4 -0
  359. package/dist/core/harness-targets.js.map +1 -0
  360. package/dist/core/index.js +11 -11
  361. package/dist/core/manifest.js +2 -2
  362. package/dist/core/models.js +1 -1
  363. package/dist/core/provider-registry-credentials.js +2 -2
  364. package/dist/core/provider-registry.js +1 -1
  365. package/dist/core/publish-manifest.js +3 -3
  366. package/dist/core/ref.js +1 -1
  367. package/dist/core/runtime-assets.js +6 -6
  368. package/dist/core/src/agent-instances.d.ts.map +1 -1
  369. package/dist/core/src/asset-roots.d.ts +2 -2
  370. package/dist/core/src/config-key-diagnostics.d.ts +9 -0
  371. package/dist/core/src/config-key-diagnostics.d.ts.map +1 -0
  372. package/dist/core/src/framework.d.ts +21 -21
  373. package/dist/core/src/framework.d.ts.map +1 -1
  374. package/dist/core/src/{driver-sdk.d.ts → harness-sdk.d.ts} +9 -9
  375. package/dist/core/src/harness-sdk.d.ts.map +1 -0
  376. package/dist/core/src/harness-targets.d.ts +71 -0
  377. package/dist/core/src/harness-targets.d.ts.map +1 -0
  378. package/dist/core/src/index.d.ts +8 -8
  379. package/dist/core/src/index.d.ts.map +1 -1
  380. package/dist/core/src/manifest.d.ts +10 -0
  381. package/dist/core/src/manifest.d.ts.map +1 -1
  382. package/dist/core/src/models.d.ts +8 -0
  383. package/dist/core/src/models.d.ts.map +1 -1
  384. package/dist/core/src/provider-registry.d.ts +2 -2
  385. package/dist/core/src/settings.d.ts +17 -16
  386. package/dist/core/src/settings.d.ts.map +1 -1
  387. package/dist/core/src/store.d.ts +12 -12
  388. package/dist/core/src/store.d.ts.map +1 -1
  389. package/dist/core/src/workspace-config.d.ts +39 -21
  390. package/dist/core/src/workspace-config.d.ts.map +1 -1
  391. package/dist/core/src/workspace-yaml-editor.d.ts +10 -3
  392. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  393. package/dist/core/store.js +2 -2
  394. package/dist/core/workspace-config.js +5 -5
  395. package/dist/deploy/index.js +12 -12
  396. package/dist/discovery/index.js +5 -5
  397. package/dist/discovery/src/builtin-providers.d.ts.map +1 -1
  398. package/dist/discovery/src/parse-manifest.d.ts.map +1 -1
  399. package/dist/{ensure-sources-GKVLE6L5.js → ensure-sources-IH7CHSJF.js} +22 -22
  400. package/dist/{ensure-sources-GKVLE6L5.js.map → ensure-sources-IH7CHSJF.js.map} +1 -1
  401. package/dist/factory-assets/connectors/box.js +31 -31
  402. package/dist/factory-assets/connectors/deploy.js +31 -31
  403. package/dist/factory-assets/connectors/devserver.js +31 -31
  404. package/dist/factory-assets/connectors/flow/CONNECTOR.md +5 -5
  405. package/dist/factory-assets/connectors/flow/adapter.d.ts +3 -3
  406. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  407. package/dist/factory-assets/connectors/flow/adapter.js +31 -31
  408. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
  409. package/dist/factory-assets/connectors/flow/contract.js +1 -1
  410. package/dist/factory-assets/connectors/flow/engine/types.d.ts +1 -1
  411. package/dist/factory-assets/connectors/flow/engine.js +13 -13
  412. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts +2 -2
  413. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -1
  414. package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts +4 -4
  415. package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts.map +1 -1
  416. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts +1 -1
  417. package/dist/factory-assets/connectors/flow/prompt-fragments.js +1 -1
  418. package/dist/factory-assets/connectors/flow/run-flow.d.ts +12 -12
  419. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  420. package/dist/factory-assets/connectors/flow/run-flow.js +33 -33
  421. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +1 -1
  422. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -1
  423. package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +22 -22
  424. package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
  425. package/dist/factory-assets/connectors/flow.js +31 -31
  426. package/dist/factory-assets/connectors/git.js +31 -31
  427. package/dist/factory-assets/connectors/gmail.js +31 -31
  428. package/dist/factory-assets/connectors/googledrive.js +31 -31
  429. package/dist/factory-assets/connectors/local.js +31 -31
  430. package/dist/factory-assets/connectors/mattermost.js +31 -31
  431. package/dist/factory-assets/connectors/memory.js +31 -31
  432. package/dist/factory-assets/connectors/minio.js +31 -31
  433. package/dist/factory-assets/connectors/postgres.js +31 -31
  434. package/dist/factory-assets/connectors/s3.js +31 -31
  435. package/dist/factory-assets/connectors/sharepoint.js +31 -31
  436. package/dist/factory-assets/connectors/sqlite.js +31 -31
  437. package/dist/factory-assets/connectors/static-server.js +31 -31
  438. package/dist/factory-assets/connectors/tunnel.js +31 -31
  439. package/dist/factory-assets/connectors/webdav.js +31 -31
  440. package/dist/factory-assets/connectors/xstate-store.js +31 -31
  441. package/dist/factory-assets/connectors/xstate.js +31 -31
  442. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +1 -1
  443. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +2 -2
  444. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +3 -3
  445. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +1 -1
  446. package/dist/flows-4JZQ3XFK.js +26 -0
  447. package/dist/{flows-W2FB7WIM.js.map → flows-4JZQ3XFK.js.map} +1 -1
  448. package/dist/{helpers-34QNVIGB.js → helpers-JNMK3FC2.js} +22 -22
  449. package/dist/{helpers-34QNVIGB.js.map → helpers-JNMK3FC2.js.map} +1 -1
  450. package/dist/library/index.js +15 -15
  451. package/dist/library/install.js +4 -4
  452. package/dist/library/src/index.d.ts +1 -1
  453. package/dist/library/src/index.d.ts.map +1 -1
  454. package/dist/library/src/local/library-dir.d.ts +22 -5
  455. package/dist/library/src/local/library-dir.d.ts.map +1 -1
  456. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  457. package/dist/library/src/remote/remote-catalog-source.d.ts +6 -0
  458. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  459. package/dist/{library-publish-RUQTKTJU.js → library-publish-I3UWXAHI.js} +69 -67
  460. package/dist/library-publish-I3UWXAHI.js.map +1 -0
  461. package/dist/model-endpoint/index.js +15 -15
  462. package/dist/model-endpoint/src/resolve.d.ts +1 -1
  463. package/dist/open-library-NKKUJLWA.js +42 -0
  464. package/dist/{open-library-PVTIUQUF.js.map → open-library-NKKUJLWA.js.map} +1 -1
  465. package/dist/open-registry-BYAXSHUI.js +32 -0
  466. package/dist/{open-registry-SOIS3TA2.js.map → open-registry-BYAXSHUI.js.map} +1 -1
  467. package/dist/paths-UKWE35XS.js +22 -0
  468. package/dist/{paths-JLNX7Y4X.js.map → paths-UKWE35XS.js.map} +1 -1
  469. package/dist/plugin-registry/index.js +1 -1
  470. package/dist/plugin-registry/src/context.d.ts +3 -3
  471. package/dist/plugin-registry/src/context.d.ts.map +1 -1
  472. package/dist/plugin-registry/src/deploy-handle.d.ts +1 -1
  473. package/dist/plugin-registry/src/index.d.ts +2 -2
  474. package/dist/plugin-registry/src/index.d.ts.map +1 -1
  475. package/dist/plugin-registry/src/internal.d.ts.map +1 -1
  476. package/dist/plugin-registry/src/registry.d.ts +3 -3
  477. package/dist/plugin-registry/src/registry.d.ts.map +1 -1
  478. package/dist/plugin-registry/src/targets.d.ts +9 -9
  479. package/dist/plugin-registry/src/targets.d.ts.map +1 -1
  480. package/dist/plugin-store-ABE35NRX.js +23 -0
  481. package/dist/{plugin-store-G2GWAHSD.js.map → plugin-store-ABE35NRX.js.map} +1 -1
  482. package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
  483. package/dist/project-BIPK47JK.js +86 -0
  484. package/dist/{project-EX47PUBN.js.map → project-BIPK47JK.js.map} +1 -1
  485. package/dist/resolver/index.js +12 -12
  486. package/dist/runner/index.js +50 -50
  487. package/dist/runner/src/agent.d.ts +3 -3
  488. package/dist/runner/src/agent.d.ts.map +1 -1
  489. package/dist/runner/src/agents/in-process-host.d.ts +1 -1
  490. package/dist/runner/src/agents/instances.d.ts +1 -1
  491. package/dist/runner/src/agents/instances.d.ts.map +1 -1
  492. package/dist/runner/src/agents/run-controller.d.ts +7 -7
  493. package/dist/runner/src/agents/run-controller.d.ts.map +1 -1
  494. package/dist/runner/src/agents/standalone-surface.d.ts +2 -2
  495. package/dist/runner/src/agents/standalone-surface.d.ts.map +1 -1
  496. package/dist/runner/src/ai-provider-switch.d.ts +7 -7
  497. package/dist/runner/src/assistant-home.d.ts +1 -1
  498. package/dist/runner/src/capability-registry.d.ts +2 -2
  499. package/dist/runner/src/coalesced-restart.d.ts +2 -2
  500. package/dist/runner/src/compaction/context-window.d.ts +8 -8
  501. package/dist/runner/src/compaction/context-window.d.ts.map +1 -1
  502. package/dist/runner/src/compaction/orchestrator.d.ts +24 -24
  503. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
  504. package/dist/runner/src/compaction-gate.d.ts +30 -30
  505. package/dist/runner/src/compaction-gate.d.ts.map +1 -1
  506. package/dist/runner/src/composition/content-source.d.ts.map +1 -1
  507. package/dist/runner/src/composition/dry-run.d.ts +2 -2
  508. package/dist/runner/src/composition/dry-run.d.ts.map +1 -1
  509. package/dist/runner/src/composition/errors.d.ts +16 -1
  510. package/dist/runner/src/composition/errors.d.ts.map +1 -1
  511. package/dist/runner/src/composition/resolve-instance.d.ts +2 -2
  512. package/dist/runner/src/composition/resolve.d.ts +1 -1
  513. package/dist/runner/src/config.d.ts +3 -3
  514. package/dist/runner/src/config.d.ts.map +1 -1
  515. package/dist/runner/src/context-usage/collector.d.ts +15 -15
  516. package/dist/runner/src/context-usage/collector.d.ts.map +1 -1
  517. package/dist/runner/src/context-usage/compose.d.ts +6 -6
  518. package/dist/runner/src/context-usage/compose.d.ts.map +1 -1
  519. package/dist/runner/src/context-usage/estimator.d.ts +1 -1
  520. package/dist/runner/src/context-usage/index.d.ts +1 -1
  521. package/dist/runner/src/context-usage/index.d.ts.map +1 -1
  522. package/dist/runner/src/context-usage/transcript-tracker.d.ts +2 -2
  523. package/dist/runner/src/context-usage/transcript-tracker.d.ts.map +1 -1
  524. package/dist/runner/src/credential-notice.d.ts +4 -4
  525. package/dist/runner/src/credential-notice.d.ts.map +1 -1
  526. package/dist/runner/src/credential-rotated.d.ts +1 -1
  527. package/dist/runner/src/final-text.d.ts +1 -1
  528. package/dist/runner/src/{driver-swap-gate.d.ts → harness-swap-gate.d.ts} +21 -21
  529. package/dist/runner/src/harness-swap-gate.d.ts.map +1 -0
  530. package/dist/runner/src/late-mcp-rebuild.d.ts +6 -6
  531. package/dist/runner/src/late-mcp-rebuild.d.ts.map +1 -1
  532. package/dist/runner/src/lifecycle-handler.d.ts +1 -1
  533. package/dist/runner/src/lifecycle-handler.d.ts.map +1 -1
  534. package/dist/runner/src/manifest.d.ts +1 -1
  535. package/dist/runner/src/mcp-runtime-handlers.d.ts +6 -6
  536. package/dist/runner/src/mcp-runtime-handlers.d.ts.map +1 -1
  537. package/dist/runner/src/model-endpoint-discovery.d.ts +1 -1
  538. package/dist/runner/src/pending-turns.d.ts +3 -3
  539. package/dist/runner/src/platform-blocks.d.ts +5 -5
  540. package/dist/runner/src/platform-blocks.d.ts.map +1 -1
  541. package/dist/runner/src/prompt-turn-queue.d.ts +1 -1
  542. package/dist/runner/src/provider-quota-forwarder.d.ts +1 -1
  543. package/dist/runner/src/provider-quota-forwarder.d.ts.map +1 -1
  544. package/dist/runner/src/reconfigure-handler.d.ts +14 -14
  545. package/dist/runner/src/reconfigure-handler.d.ts.map +1 -1
  546. package/dist/runner/src/resource-handler.d.ts +1 -1
  547. package/dist/runner/src/resources.d.ts +5 -5
  548. package/dist/runner/src/resources.d.ts.map +1 -1
  549. package/dist/runner/src/runner-capabilities.d.ts +7 -7
  550. package/dist/runner/src/runtime-session-emit.d.ts +5 -5
  551. package/dist/runner/src/runtime-session-emit.d.ts.map +1 -1
  552. package/dist/runner/src/s3-presign-client.d.ts +1 -1
  553. package/dist/runner/src/serve-credentials.d.ts +7 -7
  554. package/dist/runner/src/serve-credentials.d.ts.map +1 -1
  555. package/dist/runner/src/serve.d.ts +46 -34
  556. package/dist/runner/src/serve.d.ts.map +1 -1
  557. package/dist/runner/src/session-builder.d.ts +41 -41
  558. package/dist/runner/src/session-builder.d.ts.map +1 -1
  559. package/dist/runner/src/session-capability-wiring.d.ts +9 -9
  560. package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
  561. package/dist/runner/src/session-stimulus.d.ts +1 -1
  562. package/dist/runner/src/session.d.ts +5 -5
  563. package/dist/runner/src/session.d.ts.map +1 -1
  564. package/dist/runner/src/skill-staging.d.ts +16 -16
  565. package/dist/runner/src/skill-staging.d.ts.map +1 -1
  566. package/dist/runner/src/turn-end-contract.d.ts +5 -5
  567. package/dist/runner/src/turn-end-contract.d.ts.map +1 -1
  568. package/dist/runner/src/turn-scheduler.d.ts +22 -22
  569. package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
  570. package/dist/runner/src/turn-status-replay.d.ts +1 -1
  571. package/dist/runner/src/usage-limit-turn-hold.d.ts +1 -1
  572. package/dist/sdk/asset-manager.js +19 -19
  573. package/dist/sdk/bridge.js +25 -25
  574. package/dist/sdk/core.js +11 -11
  575. package/dist/sdk/flow.js +13 -13
  576. package/dist/sdk/index.js +54 -54
  577. package/dist/sdk/index.js.map +1 -1
  578. package/dist/sdk/resolver.js +12 -12
  579. package/dist/sdk/runner.js +50 -50
  580. package/dist/sdk/session.js +2 -2
  581. package/dist/sdk/src/agent-session.d.ts +1 -1
  582. package/dist/sdk/src/local-runtime.d.ts +1 -1
  583. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  584. package/dist/sdk/src/types.d.ts +1 -1
  585. package/dist/sdk/src/types.d.ts.map +1 -1
  586. package/dist/sdk/store.js +2 -2
  587. package/dist/sdk/transport/ws/server.js +12 -12
  588. package/dist/sdk/transport/ws.js +12 -12
  589. package/dist/sdk/transport.js +12 -12
  590. package/dist/sdk/types.js +1 -1
  591. package/dist/serve-preflight-FLTIBTEX.js +107 -0
  592. package/dist/serve-preflight-FLTIBTEX.js.map +1 -0
  593. package/dist/session/index.js +2 -2
  594. package/dist/session/src/dispatcher.d.ts +2 -2
  595. package/dist/sessions-2Q7SSYPT.js +5 -0
  596. package/dist/{sessions-DICDEONJ.js.map → sessions-2Q7SSYPT.js.map} +1 -1
  597. package/dist/{setup-AFZQNGKA.js → setup-AG6NFHSN.js} +52 -52
  598. package/dist/setup-AG6NFHSN.js.map +1 -0
  599. package/dist/skills-UQYUHVKO.js +26 -0
  600. package/dist/{skills-YYYC6D5X.js.map → skills-UQYUHVKO.js.map} +1 -1
  601. package/dist/source-ASEHI2XS.js +85 -0
  602. package/dist/{source-DGPCT5IC.js.map → source-ASEHI2XS.js.map} +1 -1
  603. package/dist/{source-manifest-publish-AGJ63JF2.js → source-manifest-publish-IEVV3W6J.js} +62 -62
  604. package/dist/{source-manifest-publish-AGJ63JF2.js.map → source-manifest-publish-IEVV3W6J.js.map} +1 -1
  605. package/dist/store/index.js +2 -2
  606. package/dist/store/src/store.d.ts +3 -3
  607. package/dist/store/src/store.d.ts.map +1 -1
  608. package/dist/transport/index.js +12 -12
  609. package/dist/transport/ws/server.js +12 -12
  610. package/dist/transport/ws.js +12 -12
  611. package/dist/tui/index.js +70 -70
  612. package/dist/tui/index.js.map +1 -1
  613. package/dist/tui/src/repl-session.d.ts +5 -5
  614. package/dist/tui/src/repl.d.ts +5 -5
  615. package/dist/tui/src/repl.d.ts.map +1 -1
  616. package/dist/types/index.js +1 -1
  617. package/dist/types/manifests.js +1 -1
  618. package/dist/types/src/agent-lifecycle.d.ts +1 -1
  619. package/dist/types/src/agent-lifecycle.d.ts.map +1 -1
  620. package/dist/types/src/ask-slots.d.ts +1 -1
  621. package/dist/types/src/capabilities.d.ts +1 -1
  622. package/dist/types/src/context-usage.d.ts +22 -22
  623. package/dist/types/src/context-usage.d.ts.map +1 -1
  624. package/dist/types/src/events.d.ts +49 -49
  625. package/dist/types/src/events.d.ts.map +1 -1
  626. package/dist/types/src/index.d.ts +2 -2
  627. package/dist/types/src/index.d.ts.map +1 -1
  628. package/dist/types/src/install-manifest.d.ts +1 -1
  629. package/dist/types/src/install-manifest.d.ts.map +1 -1
  630. package/dist/types/src/lifecycle.d.ts +6 -6
  631. package/dist/types/src/lifecycle.d.ts.map +1 -1
  632. package/dist/types/src/logging.d.ts +1 -1
  633. package/dist/types/src/manifests/agent.d.ts +3 -3
  634. package/dist/types/src/protocol.d.ts +4 -4
  635. package/dist/types/src/runtime.d.ts +38 -38
  636. package/dist/types/src/runtime.d.ts.map +1 -1
  637. package/dist/types/src/version.d.ts +22 -11
  638. package/dist/types/src/version.d.ts.map +1 -1
  639. package/dist/validator-DRHMJ457.js +5 -0
  640. package/dist/{validator-FA2PFW6N.js.map → validator-DRHMJ457.js.map} +1 -1
  641. package/dist/workspace-plugin/adapters/mcp.js +41 -41
  642. package/dist/workspace-plugin/adapters/omp.js +26 -26
  643. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  644. package/dist/workspace-plugin/index.js +3 -3
  645. package/dist/workspace-plugin/src/plugin.d.ts +5 -5
  646. package/dist/workspace-plugin/src/plugin.d.ts.map +1 -1
  647. package/dist/workspace-plugin/src/tools/flows.d.ts +1 -1
  648. package/dist/workspace-plugin/src/tools/validator.d.ts +6 -6
  649. package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
  650. package/dist/workspace-plugin/src/types.d.ts +2 -2
  651. package/dist/workspace-plugin/src/types.d.ts.map +1 -1
  652. package/package.json +59 -59
  653. package/dist/asset-feeds-QGLI3AXI.js.map +0 -1
  654. package/dist/bridge/drivers/claude-sdk.js.map +0 -1
  655. package/dist/bridge/drivers/codex.js.map +0 -1
  656. package/dist/bridge/drivers/continue.js.map +0 -1
  657. package/dist/bridge/drivers/echo.js.map +0 -1
  658. package/dist/bridge/drivers/gemini.js +0 -18
  659. package/dist/bridge/drivers/goose.js.map +0 -1
  660. package/dist/bridge/drivers/omp.js.map +0 -1
  661. package/dist/bridge/drivers/opencode.js.map +0 -1
  662. package/dist/bridge/drivers/qwen.js.map +0 -1
  663. package/dist/bridge/src/codex/managed-driver.d.ts.map +0 -1
  664. package/dist/bridge/src/driver-capabilities.d.ts.map +0 -1
  665. package/dist/bridge/src/driver-model-check.d.ts +0 -25
  666. package/dist/bridge/src/driver-model-check.d.ts.map +0 -1
  667. package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +0 -1
  668. package/dist/bridge/src/drivers/claude-context-usage.d.ts.map +0 -1
  669. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +0 -1
  670. package/dist/bridge/src/drivers/claude-self-turns.d.ts.map +0 -1
  671. package/dist/bridge/src/drivers/claude-tool-allowlist.d.ts.map +0 -1
  672. package/dist/bridge/src/drivers/codex.d.ts.map +0 -1
  673. package/dist/bridge/src/drivers/continue.d.ts.map +0 -1
  674. package/dist/bridge/src/drivers/echo.d.ts.map +0 -1
  675. package/dist/bridge/src/drivers/flow-script.d.ts.map +0 -1
  676. package/dist/bridge/src/drivers/gemini.d.ts.map +0 -1
  677. package/dist/bridge/src/drivers/goose.d.ts.map +0 -1
  678. package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +0 -1
  679. package/dist/bridge/src/drivers/omp.d.ts.map +0 -1
  680. package/dist/bridge/src/drivers/opencode.d.ts.map +0 -1
  681. package/dist/bridge/src/drivers/qwen.d.ts.map +0 -1
  682. package/dist/bridge/src/drivers/recovery-policy.d.ts.map +0 -1
  683. package/dist/bridge/src/drivers/resume-probe.d.ts.map +0 -1
  684. package/dist/bridge/src/drivers/sanitize-assistant-text.d.ts.map +0 -1
  685. package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +0 -1
  686. package/dist/bridge/src/provider-materialize/env-drivers.d.ts.map +0 -1
  687. package/dist/chunk-2GXSSZAM.js.map +0 -1
  688. package/dist/chunk-4ZTPYIBE.js.map +0 -1
  689. package/dist/chunk-5BEFNLOR.js.map +0 -1
  690. package/dist/chunk-5TBFN46Z.js.map +0 -1
  691. package/dist/chunk-6E6PKKAD.js.map +0 -1
  692. package/dist/chunk-7NT4F6SR.js.map +0 -1
  693. package/dist/chunk-7SCS64BG.js.map +0 -1
  694. package/dist/chunk-AJ7EGIFR.js.map +0 -1
  695. package/dist/chunk-C7WBGSBV.js.map +0 -1
  696. package/dist/chunk-COJIL7G4.js.map +0 -1
  697. package/dist/chunk-CQJH4G2K.js.map +0 -1
  698. package/dist/chunk-EAZECHPM.js.map +0 -1
  699. package/dist/chunk-EPBKISS5.js.map +0 -1
  700. package/dist/chunk-FPHNJE4M.js.map +0 -1
  701. package/dist/chunk-GOCWM7FN.js.map +0 -1
  702. package/dist/chunk-HT35SQZD.js.map +0 -1
  703. package/dist/chunk-I37INEWE.js.map +0 -1
  704. package/dist/chunk-IG5LZ3WU.js.map +0 -1
  705. package/dist/chunk-IP2IPMEH.js.map +0 -1
  706. package/dist/chunk-IZCR27MU.js.map +0 -1
  707. package/dist/chunk-J24CY3PF.js.map +0 -1
  708. package/dist/chunk-JTOWA6RS.js.map +0 -1
  709. package/dist/chunk-L2AMXONH.js.map +0 -1
  710. package/dist/chunk-MJHSLODD.js.map +0 -1
  711. package/dist/chunk-MKRWN7XP.js.map +0 -1
  712. package/dist/chunk-MRHVPQNO.js.map +0 -1
  713. package/dist/chunk-N46LQR46.js.map +0 -1
  714. package/dist/chunk-PUK7TQT4.js +0 -13
  715. package/dist/chunk-PUK7TQT4.js.map +0 -1
  716. package/dist/chunk-QG6GHTRM.js.map +0 -1
  717. package/dist/chunk-RO6VOM6Z.js.map +0 -1
  718. package/dist/chunk-RPZVHXQ3.js.map +0 -1
  719. package/dist/chunk-V257LUBM.js.map +0 -1
  720. package/dist/chunk-VJ7NU7GD.js.map +0 -1
  721. package/dist/chunk-VSZWNUZC.js.map +0 -1
  722. package/dist/chunk-W4Q6CKJ5.js.map +0 -1
  723. package/dist/chunk-WOIRYY5L.js.map +0 -1
  724. package/dist/chunk-WST6UITC.js.map +0 -1
  725. package/dist/chunk-X3RMRJNR.js.map +0 -1
  726. package/dist/chunk-XJVBUDDJ.js.map +0 -1
  727. package/dist/chunk-XM6T2AZ2.js.map +0 -1
  728. package/dist/chunk-XWOPZW26.js.map +0 -1
  729. package/dist/chunk-Y56YIT6J.js.map +0 -1
  730. package/dist/chunk-YROR332M.js.map +0 -1
  731. package/dist/chunk-ZQSOJH6I.js.map +0 -1
  732. package/dist/claude-code-2PU7TITZ.js +0 -10
  733. package/dist/cli/src/driver-error.d.ts +0 -28
  734. package/dist/cli/src/driver-error.d.ts.map +0 -1
  735. package/dist/connectors-RBGZ3M7G.js +0 -48
  736. package/dist/core/driver-targets.d.ts +0 -2
  737. package/dist/core/driver-targets.js +0 -4
  738. package/dist/core/driver-targets.js.map +0 -1
  739. package/dist/core/src/driver-sdk.d.ts.map +0 -1
  740. package/dist/core/src/driver-targets.d.ts +0 -71
  741. package/dist/core/src/driver-targets.d.ts.map +0 -1
  742. package/dist/flows-W2FB7WIM.js +0 -26
  743. package/dist/library-publish-RUQTKTJU.js.map +0 -1
  744. package/dist/open-library-PVTIUQUF.js +0 -42
  745. package/dist/open-registry-SOIS3TA2.js +0 -32
  746. package/dist/paths-JLNX7Y4X.js +0 -22
  747. package/dist/plugin-store-G2GWAHSD.js +0 -23
  748. package/dist/project-EX47PUBN.js +0 -84
  749. package/dist/runner/src/driver-swap-gate.d.ts.map +0 -1
  750. package/dist/serve-preflight-QXRKGOI5.js +0 -108
  751. package/dist/serve-preflight-QXRKGOI5.js.map +0 -1
  752. package/dist/sessions-DICDEONJ.js +0 -5
  753. package/dist/setup-AFZQNGKA.js.map +0 -1
  754. package/dist/skills-YYYC6D5X.js +0 -26
  755. package/dist/source-DGPCT5IC.js +0 -85
  756. package/dist/validator-FA2PFW6N.js +0 -5
  757. /package/dist/bridge/{drivers → harnesses}/gemini.js.map +0 -0
@@ -1,256 +1,24 @@
1
- import { registeredAssetKeys, unresolvedManifestDependencies, warnIgnoredDomainFiles, warnLegacyBundleFiles, removedDomainOption, rejectRemovedDomainOption, reportLibrarySymlinks, composeRefContext, assetEntryRef, manifestPublisherProblems, manifestRootProblems, manifestEntryNameProblems, manifestRequiresProblems, findEntryManifestFile, declaredVersion, manifestVersionMismatchMessage, checkAsset, invalidPublisherMessage, invalidSemverText } from './chunk-WOIRYY5L.js';
2
- import { AI_RESOURCES } from './chunk-2PBSAH3Z.js';
3
- import { logErr, logInfo, logWarn, logOk } from './chunk-QG6GHTRM.js';
4
- import { getKindRegistry } from './chunk-F6AA42GW.js';
5
- import { validateFlowVersions } from './chunk-FKU57Q5Q.js';
6
- import { loadFlow } from './chunk-IF6IA3PZ.js';
1
+ import { checkAgentInstances, unknownKeyWarnings, unknownHarnessErrors } from './chunk-7HX6FNKL.js';
2
+ import { registeredAssetKeys, unresolvedManifestDependencies, warnIgnoredDomainFiles, warnLegacyBundleFiles, removedDomainOption, rejectRemovedDomainOption, reportLibrarySymlinks, composeRefContext, assetEntryRef, manifestPublisherProblems, manifestRootProblems, manifestFilesProblems, manifestEntryNameProblems, manifestRequiresProblems, checkAssetFile, findEntryManifestFile, declaredVersion, manifestVersionMismatchMessage, MANIFEST_GLOBS, manifestParseErrorText, checkAsset, invalidPublisherMessage, invalidSemverText } from './chunk-AITJ7ELM.js';
3
+ import { AI_RESOURCES } from './chunk-AATHJRKL.js';
4
+ import { logErr, logInfo, logWarn, logOk } from './chunk-QEULL4Q3.js';
5
+ import { getKindRegistry } from './chunk-COYF6IG2.js';
6
+ import { validateFlowVersions } from './chunk-IRYKRKVQ.js';
7
+ import { loadFlow } from './chunk-4MUDQCBP.js';
7
8
  import { flowSkillVersionPins } from './chunk-7RGTAEG6.js';
8
- import { missingRootAssets, assertManifestEditable, scanUnlistedAssets, UNLISTED_SCAN_SKIP_DIRS } from './chunk-XM6T2AZ2.js';
9
- import { parseManifestFile } from './chunk-I37INEWE.js';
10
- import { resolveRuntimeAssets } from './chunk-TIIXG3PN.js';
11
- import { decodeSkaileYaml, normalizeAgentInstances, agentBlockKeyDiagnostics, agentInstanceDiagnostics, localConnectorMountDir, symlinkEscapeOfProject, isInsideProject, resolveAgentDefinitionDir, AgentRefResolutionError } from './chunk-V257LUBM.js';
12
- import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, expandManifestFiles, isNonAssetPath } from './chunk-UQ33Y4DM.js';
13
- import { readAssetBody } from './chunk-GOCWM7FN.js';
14
- import { parseAssetRef, isValidPublisher, isValidAssetName, ASSET_NAME_HINT } from './chunk-WDXZA7QW.js';
9
+ import { missingRootAssets, assertManifestEditable, scanUnlistedAssets, UNLISTED_SCAN_SKIP_DIRS } from './chunk-S2XHGWQC.js';
10
+ import { parseManifestFile } from './chunk-UI745XC3.js';
11
+ import { resolveRuntimeAssets } from './chunk-ZDLUQLI6.js';
12
+ import { decodeSkaileYaml, localConnectorMountDir, symlinkEscapeOfProject, isInsideProject } from './chunk-ZHGKAZJ7.js';
13
+ import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, isNonAssetPath } from './chunk-ZBHZLWV3.js';
14
+ import { readAssetBody } from './chunk-RHN5MRQO.js';
15
+ import { parseAssetRef, isValidPublisher, isValidAssetName, ASSET_NAME_HINT } from './chunk-LSSYC5IC.js';
15
16
  import { execFileSync } from 'child_process';
16
- import fs2 from 'fs';
17
- import path2 from 'path';
17
+ import fs from 'fs';
18
+ import path from 'path';
18
19
  import { Command } from 'commander';
19
20
  import { parse } from 'yaml';
20
21
 
21
- // cli/src/type-guards.ts
22
- function isRecord(value) {
23
- return value !== null && typeof value === "object" && !Array.isArray(value);
24
- }
25
-
26
- // cli/src/commands/validate-instances.ts
27
- var AGENT_MANIFEST_FILE = "agent.yaml";
28
- var TRIGGER_REQUIRED_FIELDS = {
29
- schedule: ["cron", "prompt"],
30
- webhook: ["prompt"],
31
- channel: ["when"],
32
- event: ["event"]
33
- };
34
- var err = (code, message, at) => ({
35
- code,
36
- severity: "error",
37
- message,
38
- path: at
39
- });
40
- function readAssetFacts(manifest) {
41
- const facts = {
42
- lifecycle: manifest.lifecycle,
43
- hasIo: manifest.io !== void 0 && manifest.io !== null,
44
- connectorSlots: [],
45
- otherSlots: [],
46
- triggerIds: []
47
- };
48
- for (const item of Array.isArray(manifest.composes) ? manifest.composes : []) {
49
- if (!isRecord(item) || typeof item.id !== "string") continue;
50
- (item.kind === "connector" ? facts.connectorSlots : facts.otherSlots).push(item.id);
51
- }
52
- for (const t of Array.isArray(manifest.triggers) ? manifest.triggers : []) {
53
- if (isRecord(t) && typeof t.id === "string") facts.triggerIds.push(t.id);
54
- }
55
- return facts;
56
- }
57
- function loadAsset(projectDir, id, ref) {
58
- const at = `agents.${id}.ref`;
59
- let dir;
60
- try {
61
- dir = resolveAgentDefinitionDir(projectDir, ref);
62
- } catch (e) {
63
- if (!(e instanceof AgentRefResolutionError)) throw e;
64
- return { diagnostic: err("agent_ref_unresolved", `agents.${id}: ${e.message}`, at) };
65
- }
66
- if (dir === void 0) {
67
- return {
68
- diagnostic: err(
69
- "agent_ref_unresolved",
70
- `agents.${id}: ref "${ref}" cannot be resolved \u2014 no ai-assets/ directory above the project`,
71
- at
72
- )
73
- };
74
- }
75
- const manifestPath = path2.join(dir, AGENT_MANIFEST_FILE);
76
- let text;
77
- try {
78
- text = fs2.readFileSync(manifestPath, "utf-8");
79
- } catch {
80
- return {
81
- diagnostic: err(
82
- "agent_ref_unresolved",
83
- `agents.${id}: ref "${ref}" resolves to ${dir}, which has no ${AGENT_MANIFEST_FILE}`,
84
- at
85
- )
86
- };
87
- }
88
- let manifest;
89
- try {
90
- manifest = parse(text);
91
- } catch (e) {
92
- return {
93
- diagnostic: err(
94
- "agent_manifest_invalid",
95
- `agents.${id}: ${manifestPath} is not valid YAML: ${e instanceof Error ? e.message : String(e)}`,
96
- at
97
- )
98
- };
99
- }
100
- if (!isRecord(manifest)) {
101
- return {
102
- diagnostic: err(
103
- "agent_manifest_invalid",
104
- `agents.${id}: ${manifestPath} is not a mapping`,
105
- at
106
- )
107
- };
108
- }
109
- return { facts: readAssetFacts(manifest) };
110
- }
111
- function checkTriggers(id, triggers, assetTriggerIds) {
112
- const out = [];
113
- const seen = /* @__PURE__ */ new Set();
114
- triggers.forEach((trigger, i) => {
115
- const at = `agents.${id}.triggers[${i}]`;
116
- if (seen.has(trigger.id)) {
117
- out.push(
118
- err(
119
- "agent_trigger_duplicate",
120
- `agents.${id}: trigger id "${trigger.id}" is declared twice`,
121
- `${at}.id`
122
- )
123
- );
124
- return;
125
- }
126
- seen.add(trigger.id);
127
- if (!assetTriggerIds || assetTriggerIds.includes(trigger.id)) return;
128
- if (!trigger.kind) {
129
- out.push(
130
- err(
131
- "agent_trigger_unknown",
132
- `agents.${id}: trigger "${trigger.id}" is not declared by the agent asset (${assetTriggerIds.length > 0 ? `has: ${assetTriggerIds.join(", ")}` : "it declares no triggers"}) \u2014 add \`kind\` and the trigger's fields to declare a new one`,
133
- `${at}.id`
134
- )
135
- );
136
- return;
137
- }
138
- const missing = TRIGGER_REQUIRED_FIELDS[trigger.kind].filter(
139
- (field) => trigger[field] === void 0
140
- );
141
- if (missing.length > 0) {
142
- out.push(
143
- err(
144
- "agent_trigger_incomplete",
145
- `agents.${id}: trigger "${trigger.id}" (kind ${trigger.kind}) is not in the asset, so it must declare ${missing.join(", ")}`,
146
- at
147
- )
148
- );
149
- }
150
- });
151
- return out;
152
- }
153
- function checkConnectors(id, instance, facts, connectorIds) {
154
- const out = [];
155
- for (const [slot, connectorId] of Object.entries(instance.connectors ?? {})) {
156
- const at = `agents.${id}.connectors.${slot}`;
157
- if (!facts.connectorSlots.includes(slot)) {
158
- const hint = facts.otherSlots.includes(slot) ? `"${slot}" is a slot of a non-connector item` : facts.connectorSlots.length > 0 ? `the asset's connector slots are: ${facts.connectorSlots.join(", ")}` : "the asset declares no connector slots";
159
- out.push(
160
- err(
161
- "agent_connector_slot_unknown",
162
- `agents.${id}: connectors.${slot} is not a connector slot id of the agent asset (${hint})`,
163
- at
164
- )
165
- );
166
- }
167
- if (!connectorIds.includes(connectorId)) {
168
- out.push(
169
- err(
170
- "agent_connector_unknown",
171
- `agents.${id}: connectors.${slot} points at "${connectorId}", which is not in skaile.yaml connectors[]${connectorIds.length > 0 ? ` (has: ${connectorIds.join(", ")})` : ""}`,
172
- at
173
- )
174
- );
175
- }
176
- }
177
- return out;
178
- }
179
- function checkAgentInstances(projectDir, parsed) {
180
- const diagnostics = [];
181
- const instances = normalizeAgentInstances(parsed.agents, diagnostics);
182
- const agent = isRecord(parsed.agent) ? parsed.agent : void 0;
183
- diagnostics.push(...agentBlockKeyDiagnostics(parsed.agent));
184
- if (agent?.subagents !== void 0) {
185
- diagnostics.push(
186
- err(
187
- "agent_subagents_removed",
188
- "`agent.subagents` was removed \u2014 declare each subagent as an agent asset and bind it under `agents:` with `lifecycle: role`",
189
- "agent.subagents"
190
- )
191
- );
192
- }
193
- if (agent?.instances !== void 0) {
194
- diagnostics.push(
195
- err(
196
- "misplaced_agent_instances",
197
- "`agent.instances` is not a skaile.yaml key \u2014 declare instances under root `agents:`",
198
- "agent.instances"
199
- )
200
- );
201
- }
202
- diagnostics.push(
203
- ...agentInstanceDiagnostics({
204
- agent: {
205
- definition: typeof agent?.definition === "string" ? agent.definition : void 0,
206
- instances
207
- }
208
- })
209
- );
210
- if (!instances) return diagnostics;
211
- const connectorIds = (Array.isArray(parsed.connectors) ? parsed.connectors : []).flatMap(
212
- (c) => isRecord(c) && typeof c.id === "string" ? [c.id] : []
213
- );
214
- for (const [id, instance] of Object.entries(instances)) {
215
- const loaded = loadAsset(projectDir, id, instance.ref);
216
- if ("diagnostic" in loaded) {
217
- diagnostics.push(loaded.diagnostic, ...checkTriggers(id, instance.triggers ?? [], void 0));
218
- continue;
219
- }
220
- const { facts } = loaded;
221
- const lifecycle = instance.lifecycle ?? facts.lifecycle ?? "standing";
222
- if (lifecycle === "role" && !facts.hasIo) {
223
- diagnostics.push(
224
- err(
225
- "agent_role_missing_io",
226
- `agents.${id}: lifecycle "role" needs the agent asset to declare \`io\` ({ input, output } JSON Schemas)`,
227
- `agents.${id}.lifecycle`
228
- )
229
- );
230
- }
231
- diagnostics.push(...checkConnectors(id, instance, facts, connectorIds));
232
- diagnostics.push(...checkTriggers(id, instance.triggers ?? [], facts.triggerIds));
233
- }
234
- return diagnostics;
235
- }
236
-
237
- // cli/src/commands/validate.ts
238
- var MANIFEST_GLOBS = [
239
- { pattern: /\/SKILL\.md$/, kind: "skill" },
240
- { pattern: /\/agent\.yaml$/, kind: "agent" },
241
- { pattern: /\/AGENT\.md$/, kind: "agent" },
242
- { pattern: /\/CONTRACT\.md$/, kind: "contract" },
243
- { pattern: /\/PERSONA\.md$/, kind: "persona" },
244
- { pattern: /\/RULESET\.md$/, kind: "ruleset" },
245
- { pattern: /\.flow\.yaml$/, kind: "flow" },
246
- { pattern: /\.flow\.json$/, kind: "flow" },
247
- { pattern: /\/CONNECTOR\.md$/, kind: "connector" },
248
- { pattern: /\.prompt\.md$/, kind: "prompt" },
249
- { pattern: /\/MCP\.md$/, kind: "mcp-server" },
250
- { pattern: /\/knowledge\.yaml$/, kind: "knowledge" },
251
- { pattern: /\/knowledge\/index\.yaml$/, kind: "knowledge" },
252
- { pattern: /\.preset\.yaml$/, kind: "preset" }
253
- ];
254
22
  var HARNESS_DIRS = /* @__PURE__ */ new Set([".claude", ".codex", ".omp"]);
255
23
  var SKIP_DIRS = /* @__PURE__ */ new Set([
256
24
  "node_modules",
@@ -265,12 +33,12 @@ function findManifestCandidates(rootPath) {
265
33
  function walk(dir) {
266
34
  let entries;
267
35
  try {
268
- entries = fs2.readdirSync(dir, { withFileTypes: true });
36
+ entries = fs.readdirSync(dir, { withFileTypes: true });
269
37
  } catch {
270
38
  return;
271
39
  }
272
40
  for (const entry of entries) {
273
- const fullPath = path2.join(dir, entry.name);
41
+ const fullPath = path.join(dir, entry.name);
274
42
  if (entry.isDirectory()) {
275
43
  if (!SKIP_DIRS.has(entry.name)) walk(fullPath);
276
44
  } else if (entry.isFile()) {
@@ -287,10 +55,12 @@ function findManifestCandidates(rootPath) {
287
55
  return candidates;
288
56
  }
289
57
  function parseManifestCandidate(c, absRoot) {
290
- const content = fs2.readFileSync(c.filePath, "utf-8");
58
+ const content = fs.readFileSync(c.filePath, "utf-8");
291
59
  const res = parseManifestFile(c.filePath, content);
292
60
  if (!res.ok) {
293
- logErr(`${path2.relative(absRoot, c.filePath)} [${c.kind}] \u2014 parse error: ${res.reason}`);
61
+ logErr(
62
+ `${path.relative(absRoot, c.filePath)} [${c.kind}] \u2014 ${manifestParseErrorText(res.reason)}`
63
+ );
294
64
  return { kind: "error" };
295
65
  }
296
66
  return {
@@ -300,25 +70,25 @@ function parseManifestCandidate(c, absRoot) {
300
70
  };
301
71
  }
302
72
  function libraryRootOf(absRoot) {
303
- for (let dir = absRoot; ; dir = path2.dirname(dir)) {
304
- if (fs2.existsSync(path2.join(dir, SKAILE_MANIFEST_FILENAME))) return dir;
305
- if (path2.dirname(dir) === dir) return absRoot;
73
+ for (let dir = absRoot; ; dir = path.dirname(dir)) {
74
+ if (fs.existsSync(path.join(dir, SKAILE_MANIFEST_FILENAME))) return dir;
75
+ if (path.dirname(dir) === dir) return absRoot;
306
76
  }
307
77
  }
308
78
  function validateManifestCandidate(c, parsed, body, absRoot, registry, strictConformance, composeRefs) {
309
- const relPath = path2.relative(absRoot, c.filePath);
79
+ const relPath = path.relative(absRoot, c.filePath);
310
80
  let errors = 0;
311
81
  let warnings = 0;
312
- const dirName = path2.basename(path2.dirname(c.filePath));
82
+ const dirName = path.basename(path.dirname(c.filePath));
313
83
  const checked = checkAsset(
314
84
  c.kind,
315
85
  parsed ?? {},
316
86
  body,
317
87
  dirName,
318
88
  registry,
319
- fs2.readFileSync(c.filePath, "utf-8"),
320
- path2.basename(c.filePath),
321
- { dir: path2.dirname(c.filePath), libraryRoot: libraryRootOf(absRoot), composeRefs }
89
+ fs.readFileSync(c.filePath, "utf-8"),
90
+ path.basename(c.filePath),
91
+ { dir: path.dirname(c.filePath), libraryRoot: libraryRootOf(absRoot), composeRefs }
322
92
  );
323
93
  for (const f of checked.errors) {
324
94
  logErr(`${relPath} [${f.tag}] \u2014 ${f.text}`);
@@ -341,7 +111,7 @@ function scanIdentities(root) {
341
111
  for (const c of findManifestCandidates(root)) {
342
112
  let parsed;
343
113
  try {
344
- const res = parseManifestFile(c.filePath, fs2.readFileSync(c.filePath, "utf-8"));
114
+ const res = parseManifestFile(c.filePath, fs.readFileSync(c.filePath, "utf-8"));
345
115
  if (!res.ok) continue;
346
116
  parsed = res.data;
347
117
  } catch {
@@ -355,14 +125,14 @@ function scanIdentities(root) {
355
125
  return identities;
356
126
  }
357
127
  function validateManifests(rootPath, strictConformance, registeredAssets = /* @__PURE__ */ new Set()) {
358
- const absRoot = path2.resolve(rootPath);
359
- if (!fs2.existsSync(absRoot)) {
128
+ const absRoot = path.resolve(rootPath);
129
+ if (!fs.existsSync(absRoot)) {
360
130
  logErr(`Path does not exist: ${absRoot}`);
361
131
  return { total: 0, errors: 1, warnings: 0 };
362
132
  }
363
133
  const registry = getKindRegistry();
364
134
  const candidates = findManifestCandidates(absRoot);
365
- const isLibrary = fs2.existsSync(path2.join(absRoot, SKAILE_MANIFEST_FILENAME));
135
+ const isLibrary = fs.existsSync(path.join(absRoot, SKAILE_MANIFEST_FILENAME));
366
136
  let errors = reportLibrarySymlinks(absRoot, {
367
137
  wholeTree: isLibrary,
368
138
  skipDirs: isLibrary ? void 0 : HARNESS_DIRS
@@ -395,14 +165,14 @@ function validateManifests(rootPath, strictConformance, registeredAssets = /* @_
395
165
  const obj = parseResult.parsed;
396
166
  const identity = obj && typeof obj === "object" ? obj[c.kind === "flow" ? "id" : "name"] : null;
397
167
  if (typeof identity === "string" && identity.length > 0) {
398
- const dir = path2.dirname(c.filePath);
168
+ const dir = path.dirname(c.filePath);
399
169
  const key = `${c.kind}:${identity}`;
400
170
  const first = seenIdentity.get(key);
401
171
  if (first === void 0) {
402
172
  seenIdentity.set(key, dir);
403
173
  } else if (first !== dir) {
404
174
  logErr(
405
- `${path2.relative(absRoot, c.filePath)} [${c.kind}] \u2014 ${key} is also defined in ${path2.relative(absRoot, first) || "."}; two directories cannot share a kind and name (\`skaile library index\` keeps only the first).`
175
+ `${path.relative(absRoot, c.filePath)} [${c.kind}] \u2014 ${key} is also defined in ${path.relative(absRoot, first) || "."}; two directories cannot share a kind and name (\`skaile library index\` keeps only the first).`
406
176
  );
407
177
  errors++;
408
178
  }
@@ -415,12 +185,12 @@ function findWorkspaceManifests(rootPath) {
415
185
  function walk(dir) {
416
186
  let entries;
417
187
  try {
418
- entries = fs2.readdirSync(dir, { withFileTypes: true });
188
+ entries = fs.readdirSync(dir, { withFileTypes: true });
419
189
  } catch {
420
190
  return;
421
191
  }
422
192
  for (const entry of entries) {
423
- const full = path2.join(dir, entry.name);
193
+ const full = path.join(dir, entry.name);
424
194
  if (entry.isDirectory()) {
425
195
  if (!SKIP_DIRS.has(entry.name)) walk(full);
426
196
  } else if (entry.isFile() && /(^|\.)skaile\.yaml$/.test(entry.name)) {
@@ -500,7 +270,7 @@ function validateLocalConnectorMountPaths(projectDir, relPath, connectors) {
500
270
  const dir = localConnectorMountDir(c, projectDir);
501
271
  if (!dir) continue;
502
272
  const escapesTo = symlinkEscapeOfProject(dir, projectDir);
503
- if (!fs2.existsSync(dir)) {
273
+ if (!fs.existsSync(dir)) {
504
274
  logErr(
505
275
  `${relPath} [connectors] \u2014 connector_mount_path_missing: connectors.${c.id}.mountPath: ${dir} does not exist; create the directory or fix the path`
506
276
  );
@@ -519,14 +289,14 @@ function validateLocalConnectorMountPaths(projectDir, relPath, connectors) {
519
289
  return errors;
520
290
  }
521
291
  async function validateWorkspaceManifests(rootPath) {
522
- const absRoot = path2.resolve(rootPath);
292
+ const absRoot = path.resolve(rootPath);
523
293
  const files = findWorkspaceManifests(absRoot);
524
294
  let errors = 0;
525
295
  for (const file of files) {
526
- const relPath = path2.relative(absRoot, file);
296
+ const relPath = path.relative(absRoot, file);
527
297
  let parsed;
528
298
  try {
529
- parsed = parse(fs2.readFileSync(file, "utf-8")) ?? {};
299
+ parsed = parse(fs.readFileSync(file, "utf-8")) ?? {};
530
300
  } catch (e) {
531
301
  logErr(`${relPath} \u2014 parse error: ${e instanceof Error ? e.message : String(e)}`);
532
302
  errors++;
@@ -534,7 +304,7 @@ async function validateWorkspaceManifests(rootPath) {
534
304
  }
535
305
  errors += validateWorkspaceRefs(collectWorkspaceRefFields(parsed), relPath);
536
306
  errors += validateWorkspaceAssets(parsed, relPath);
537
- for (const d of checkAgentInstances(path2.dirname(file), parsed)) {
307
+ for (const d of checkAgentInstances(path.dirname(file), parsed)) {
538
308
  const line = `${relPath} [agents] \u2014 ${d.code}: ${d.path ? `${d.path}: ` : ""}${d.message}`;
539
309
  if (d.severity === "error") {
540
310
  logErr(line);
@@ -543,7 +313,7 @@ async function validateWorkspaceManifests(rootPath) {
543
313
  logWarn(line);
544
314
  }
545
315
  }
546
- const decoded = decodeSkaileYaml(fs2.readFileSync(file, "utf-8"));
316
+ const decoded = decodeSkaileYaml(fs.readFileSync(file, "utf-8"));
547
317
  for (const d of decoded.diagnostics) {
548
318
  if (!CONNECTOR_ERROR_CODES.includes(d.code)) continue;
549
319
  logErr(`${relPath} [connectors] \u2014 ${d.code}: ${d.path ? `${d.path}: ` : ""}${d.message}`);
@@ -554,13 +324,28 @@ async function validateWorkspaceManifests(rootPath) {
554
324
  logErr(relPath === "skaile.yaml" ? d.message : `${relPath} \u2014 ${d.message}`);
555
325
  errors++;
556
326
  }
327
+ for (const d of decoded.diagnostics) {
328
+ if (d.code !== "deprecated_harness_key" && d.code !== "harness_key_conflict") continue;
329
+ const line = `${relPath} [agent-config] \u2014 ${d.code}: ${d.message}`;
330
+ if (d.severity === "error") {
331
+ logErr(line);
332
+ errors++;
333
+ } else {
334
+ logWarn(line);
335
+ }
336
+ }
337
+ for (const line of unknownKeyWarnings(decoded.diagnostics, relPath)) logWarn(line);
338
+ for (const line of await unknownHarnessErrors(path.dirname(file), decoded.config, relPath)) {
339
+ logErr(line);
340
+ errors++;
341
+ }
557
342
  errors += validateLocalConnectorMountPaths(
558
- path2.dirname(file),
343
+ path.dirname(file),
559
344
  relPath,
560
345
  decoded.config?.connectors ?? []
561
346
  );
562
347
  if ((decoded.config?.connectors ?? []).length > 0) {
563
- const assets = await resolveRuntimeAssets(path2.dirname(file));
348
+ const assets = await resolveRuntimeAssets(path.dirname(file));
564
349
  if (!assets.warnings.some((w) => w.code === "repo_unavailable")) {
565
350
  for (const w of assets.warnings) {
566
351
  if (w.code !== "missing_driver" || !w.name) continue;
@@ -573,7 +358,7 @@ async function validateWorkspaceManifests(rootPath) {
573
358
  return { total: files.length, errors };
574
359
  }
575
360
  function validatePublishManifestRoots(rootPath) {
576
- const absRoot = path2.resolve(rootPath);
361
+ const absRoot = path.resolve(rootPath);
577
362
  const manifest = loadSkPublishManifest(absRoot);
578
363
  if (!manifest) return 0;
579
364
  const missing = missingRootAssets(absRoot, manifest);
@@ -582,40 +367,37 @@ function validatePublishManifestRoots(rootPath) {
582
367
  `${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${assetEntryRef(a, manifest)}: root "${a.root}" does not exist. Run \`skaile library index <library>\` to drop the entry, or restore the directory.`
583
368
  );
584
369
  }
585
- let unmatchedEntries = 0;
586
- if (!manifest.source) {
587
- for (const a of manifest.assets ?? []) {
588
- if (a.root || a.source || !Array.isArray(a.files) || a.files.length === 0) continue;
589
- const patterns = a.files.map((f) => typeof f === "string" ? f : f.path).filter(Boolean);
590
- const { unmatched } = expandManifestFiles(absRoot, patterns);
591
- if (unmatched.length === 0) continue;
592
- unmatchedEntries++;
593
- logErr(
594
- `${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${assetEntryRef(a, manifest)}: files: ${unmatched.join(", ")} not found. Fix the \`files:\` list or drop the entry.`
595
- );
596
- }
597
- }
598
- return missing.length + unmatchedEntries;
370
+ return missing.length;
599
371
  }
600
372
  async function validatePublishManifestUnlisted(rootPath) {
601
- const absRoot = path2.resolve(rootPath);
373
+ const absRoot = path.resolve(rootPath);
602
374
  const manifest = loadSkPublishManifest(absRoot);
603
375
  if (!manifest) return 0;
376
+ const registry = getKindRegistry();
377
+ const libraryRoot = libraryRootOf(absRoot);
378
+ const composeRefs = composeRefContext(
379
+ scanIdentities(libraryRoot),
380
+ await registeredAssetKeys(libraryRoot),
381
+ manifest.publisher
382
+ );
604
383
  const unlisted = (await scanUnlistedAssets(
605
384
  absRoot,
606
- manifest.publisher ?? path2.basename(absRoot),
607
- getKindRegistry(),
385
+ manifest.publisher ?? path.basename(absRoot),
386
+ registry,
608
387
  UNLISTED_SCAN_SKIP_DIRS
609
- )).filter((u) => !u.registeredAt && !u.parseFailure);
388
+ )).filter(
389
+ (u) => !u.registeredAt && !u.parseFailure && // a file that does not parse has its own parse error
390
+ checkAssetFile(u.entry.source, u.entry.kind, registry, absRoot, composeRefs).length === 0
391
+ );
610
392
  for (const u of unlisted) {
611
393
  logErr(
612
- `${path2.relative(absRoot, u.entry.source)} [${u.entry.kind}] \u2014 ${u.entry.kind}:${u.entry.name} is on disk but not in ${SKAILE_MANIFEST_FILENAME}, so it is not published. Run \`skaile library index <library>\` to list it, or delete the directory.`
394
+ `${path.relative(absRoot, u.entry.source)} [${u.entry.kind}] \u2014 ${u.entry.kind}:${u.entry.name} is on disk but not in ${SKAILE_MANIFEST_FILENAME}, so it is not published. Run \`skaile library index <library>\` to list it, or delete the directory.`
613
395
  );
614
396
  }
615
397
  return unlisted.length;
616
398
  }
617
399
  function validatePublishManifestRequires(rootPath) {
618
- const problems = manifestRequiresProblems(path2.resolve(rootPath));
400
+ const problems = manifestRequiresProblems(path.resolve(rootPath));
619
401
  for (const p of problems) {
620
402
  logErr(
621
403
  `${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${p.asset}: ${p.message}. Use the \`kind:@<publisher>/name[#version]\` form.`
@@ -624,29 +406,30 @@ function validatePublishManifestRequires(rootPath) {
624
406
  return problems.length;
625
407
  }
626
408
  function validatePublishManifestPublisherSlugs(rootPath) {
627
- const problems = manifestPublisherProblems(path2.resolve(rootPath));
409
+ const problems = manifestPublisherProblems(path.resolve(rootPath));
628
410
  for (const message of problems) logErr(message);
629
411
  return problems.length;
630
412
  }
631
413
  function validatePublishManifestRootPaths(rootPath) {
632
414
  const problems = [
633
- ...manifestRootProblems(path2.resolve(rootPath)),
634
- ...manifestEntryNameProblems(path2.resolve(rootPath))
415
+ ...manifestRootProblems(path.resolve(rootPath)),
416
+ ...manifestFilesProblems(path.resolve(rootPath)),
417
+ ...manifestEntryNameProblems(path.resolve(rootPath))
635
418
  ];
636
419
  for (const message of problems) logErr(message);
637
420
  return problems.length;
638
421
  }
639
422
  function validatePublishManifestParses(rootPath) {
640
423
  try {
641
- assertManifestEditable(path2.resolve(rootPath));
424
+ assertManifestEditable(path.resolve(rootPath));
642
425
  return 0;
643
- } catch (err2) {
644
- logErr(err2 instanceof Error ? err2.message : String(err2));
426
+ } catch (err) {
427
+ logErr(err instanceof Error ? err.message : String(err));
645
428
  return 1;
646
429
  }
647
430
  }
648
431
  function validatePublishManifestVersions(rootPath) {
649
- const absRoot = path2.resolve(rootPath);
432
+ const absRoot = path.resolve(rootPath);
650
433
  const manifest = loadSkPublishManifest(absRoot);
651
434
  if (!manifest || manifest.source) return 0;
652
435
  let warnings = 0;
@@ -654,7 +437,7 @@ function validatePublishManifestVersions(rootPath) {
654
437
  if (a.source || !a.version) continue;
655
438
  const file = findEntryManifestFile(absRoot, a);
656
439
  if (!file) continue;
657
- const res = parseManifestFile(file, fs2.readFileSync(file, "utf-8"));
440
+ const res = parseManifestFile(file, fs.readFileSync(file, "utf-8"));
658
441
  if (!res.ok) continue;
659
442
  const fileVersion = declaredVersion(res.data);
660
443
  if (fileVersion === void 0 || fileVersion === a.version) continue;
@@ -662,7 +445,7 @@ function validatePublishManifestVersions(rootPath) {
662
445
  manifestVersionMismatchMessage(
663
446
  assetEntryRef(a, manifest),
664
447
  a.version,
665
- toPosix(path2.relative(absRoot, file)),
448
+ toPosix(path.relative(absRoot, file)),
666
449
  fileVersion
667
450
  )
668
451
  );
@@ -671,7 +454,7 @@ function validatePublishManifestVersions(rootPath) {
671
454
  return warnings;
672
455
  }
673
456
  function validatePublishManifestPublishers(rootPath) {
674
- const absRoot = path2.resolve(rootPath);
457
+ const absRoot = path.resolve(rootPath);
675
458
  const manifest = loadSkPublishManifest(absRoot);
676
459
  if (!manifest || manifest.source) return 0;
677
460
  const bare = (p) => p.trim().replace(/^@/, "");
@@ -681,13 +464,13 @@ function validatePublishManifestPublishers(rootPath) {
681
464
  if (a.source || !resolved) continue;
682
465
  const file = findEntryManifestFile(absRoot, a);
683
466
  if (!file) continue;
684
- const res = parseManifestFile(file, fs2.readFileSync(file, "utf-8"));
467
+ const res = parseManifestFile(file, fs.readFileSync(file, "utf-8"));
685
468
  if (!res.ok) continue;
686
469
  const meta = res.data.metadata;
687
470
  const declared = meta !== null && typeof meta === "object" ? meta.publisher : null;
688
471
  if (typeof declared !== "string" || bare(declared) === bare(resolved)) continue;
689
472
  logWarn(
690
- `${toPosix(path2.relative(absRoot, file))} [publisher] \u2014 metadata.publisher "${bare(declared)}" differs from the manifest publisher "${bare(resolved)}" for ${assetEntryRef(a, manifest)}. The manifest wins and the file value is ignored: delete \`metadata.publisher\` from the file, or set the publisher in ${SKAILE_MANIFEST_FILENAME}.`
473
+ `${toPosix(path.relative(absRoot, file))} [publisher] \u2014 metadata.publisher "${bare(declared)}" differs from the manifest publisher "${bare(resolved)}" for ${assetEntryRef(a, manifest)}. The manifest wins and the file value is ignored: delete \`metadata.publisher\` from the file, or set the publisher in ${SKAILE_MANIFEST_FILENAME}.`
691
474
  );
692
475
  warnings++;
693
476
  }
@@ -695,7 +478,7 @@ function validatePublishManifestPublishers(rootPath) {
695
478
  }
696
479
  var EXCLUDED_PATHS = ["skaileup-shared/", "external/", "docs/"];
697
480
  function toPosix(p) {
698
- return p.split(path2.sep).join("/");
481
+ return p.split(path.sep).join("/");
699
482
  }
700
483
  function isExcludedPath(relPath) {
701
484
  const rel = toPosix(relPath);
@@ -711,9 +494,9 @@ var VERSIONED_KINDS = {
711
494
  };
712
495
  function readAssetVersion(c) {
713
496
  const kind = c.kind;
714
- const fileName = path2.basename(c.filePath);
715
- const dirName = path2.basename(path2.dirname(c.filePath));
716
- const content = fs2.readFileSync(c.filePath, "utf-8");
497
+ const fileName = path.basename(c.filePath);
498
+ const dirName = path.basename(path.dirname(c.filePath));
499
+ const content = fs.readFileSync(c.filePath, "utf-8");
717
500
  if (c.filePath.endsWith(".md")) {
718
501
  const res = parseManifestFile(c.filePath, content);
719
502
  const data = res.ok ? res.data : {};
@@ -746,26 +529,26 @@ function readAssetVersion(c) {
746
529
  };
747
530
  }
748
531
  function collectAssetVersions(root) {
749
- if (!fs2.existsSync(root)) return [];
532
+ if (!fs.existsSync(root)) return [];
750
533
  const assets = [];
751
534
  for (const c of findManifestCandidates(root)) {
752
535
  if (!VERSIONED_KINDS[c.kind]) continue;
753
536
  if (c.filePath.endsWith(".flow.json")) continue;
754
- if (isExcludedPath(path2.relative(root, c.filePath))) continue;
537
+ if (isExcludedPath(path.relative(root, c.filePath))) continue;
755
538
  assets.push(readAssetVersion(c));
756
539
  }
757
540
  return assets;
758
541
  }
759
542
  function assetLocation(a, root) {
760
- return toPosix(path2.relative(root, a.filePath));
543
+ return toPosix(path.relative(root, a.filePath));
761
544
  }
762
545
  function findChangelogUnit(assetRelPath, root) {
763
- let dir = path2.posix.dirname(toPosix(assetRelPath));
546
+ let dir = path.posix.dirname(toPosix(assetRelPath));
764
547
  for (; ; ) {
765
548
  const candidate = dir === "." ? "CHANGELOG.md" : `${dir}/CHANGELOG.md`;
766
- if (fs2.existsSync(path2.join(root, candidate))) return candidate;
549
+ if (fs.existsSync(path.join(root, candidate))) return candidate;
767
550
  if (dir === ".") return null;
768
- dir = path2.posix.dirname(dir);
551
+ dir = path.posix.dirname(dir);
769
552
  }
770
553
  }
771
554
  function checkChangelogUnits(modifiedFiles, root) {
@@ -815,7 +598,7 @@ function checkVersionBumps(assets, root) {
815
598
  let warnings = 0;
816
599
  for (const a of assets) {
817
600
  if (!a.version) continue;
818
- const relPath = toPosix(path2.relative(root, a.filePath));
601
+ const relPath = toPosix(path.relative(root, a.filePath));
819
602
  try {
820
603
  const headContent = execFileSync("git", ["show", `HEAD:./${relPath}`], {
821
604
  cwd: root,
@@ -846,9 +629,9 @@ function checkFlowVersionPins(assets, root) {
846
629
  let pins;
847
630
  try {
848
631
  pins = flowSkillVersionPins(loadFlow(f.filePath));
849
- } catch (err2) {
632
+ } catch (err) {
850
633
  logWarn(
851
- `flow:${f.name} (${path2.relative(root, f.filePath)}) \u2014 could not be read: ${err2 instanceof Error ? err2.message : err2}`
634
+ `flow:${f.name} (${path.relative(root, f.filePath)}) \u2014 could not be read: ${err instanceof Error ? err.message : err}`
852
635
  );
853
636
  warnings++;
854
637
  continue;
@@ -866,16 +649,16 @@ function checkFlowVersionPins(assets, root) {
866
649
  }
867
650
  function resolveCheckRoot(pathArg) {
868
651
  if (pathArg) {
869
- const abs = path2.resolve(pathArg);
870
- if (!fs2.existsSync(abs)) {
652
+ const abs = path.resolve(pathArg);
653
+ if (!fs.existsSync(abs)) {
871
654
  logErr(`Path does not exist: ${abs}`);
872
655
  return null;
873
656
  }
874
657
  return abs;
875
658
  }
876
- for (let dir = process.cwd(); ; dir = path2.dirname(dir)) {
877
- if (fs2.existsSync(path2.join(dir, SKAILE_MANIFEST_FILENAME))) return dir;
878
- if (path2.dirname(dir) === dir) return AI_RESOURCES;
659
+ for (let dir = process.cwd(); ; dir = path.dirname(dir)) {
660
+ if (fs.existsSync(path.join(dir, SKAILE_MANIFEST_FILENAME))) return dir;
661
+ if (path.dirname(dir) === dir) return AI_RESOURCES;
879
662
  }
880
663
  }
881
664
  function isInGitWorkTree(root) {
@@ -889,11 +672,28 @@ function isInGitWorkTree(root) {
889
672
  return false;
890
673
  }
891
674
  }
675
+ function hasCommit(root) {
676
+ try {
677
+ execFileSync("git", ["rev-parse", "--verify", "--quiet", "HEAD"], {
678
+ cwd: root,
679
+ stdio: ["ignore", "ignore", "ignore"]
680
+ });
681
+ return true;
682
+ } catch {
683
+ return false;
684
+ }
685
+ }
892
686
  function changedFiles(root, ref, what, opts = {}) {
893
687
  if (!isInGitWorkTree(root)) {
894
688
  logErr(`${what} needs a git repository: ${root} is not inside a git work tree.`);
895
689
  return null;
896
690
  }
691
+ if (ref === "HEAD" && !hasCommit(root)) {
692
+ logErr(
693
+ `${what} compares with the last commit, and ${root} has no commit yet. Commit the library first (\`skaile library commit <name>\`), then run it again.`
694
+ );
695
+ return null;
696
+ }
897
697
  try {
898
698
  const out = execFileSync(
899
699
  "git",
@@ -914,16 +714,16 @@ function changedFiles(root, ref, what, opts = {}) {
914
714
  changed.push(...fresh.trim().split("\n").filter(Boolean));
915
715
  }
916
716
  return changed;
917
- } catch (err2) {
918
- const stderr = err2 instanceof Error && "stderr" in err2 ? String(err2.stderr).trim() : "";
919
- const reason = (stderr || (err2 instanceof Error ? err2.message : String(err2))).split("\n")[0];
717
+ } catch (err) {
718
+ const stderr = err instanceof Error && "stderr" in err ? String(err.stderr).trim() : "";
719
+ const reason = (stderr || (err instanceof Error ? err.message : String(err))).split("\n")[0];
920
720
  logErr(`git diff failed in ${root}: ${reason}`);
921
721
  return null;
922
722
  }
923
723
  }
924
724
  function assetOwnDir(a) {
925
- const dir = path2.dirname(a.filePath);
926
- if (["skill", "agent", "contract"].includes(a.kind) || path2.basename(dir) === a.name) return dir;
725
+ const dir = path.dirname(a.filePath);
726
+ if (["skill", "agent", "contract"].includes(a.kind) || path.basename(dir) === a.name) return dir;
927
727
  return null;
928
728
  }
929
729
  function assetChanged(a, changedAbs) {
@@ -931,8 +731,8 @@ function assetChanged(a, changedAbs) {
931
731
  const dir = assetOwnDir(a);
932
732
  if (dir === null) return false;
933
733
  for (const f of changedAbs) {
934
- const rel = path2.relative(dir, f);
935
- if (rel.startsWith("..") || path2.isAbsolute(rel)) continue;
734
+ const rel = path.relative(dir, f);
735
+ if (rel.startsWith("..") || path.isAbsolute(rel)) continue;
936
736
  if (!isNonAssetPath(toPosix(rel))) return true;
937
737
  }
938
738
  return false;
@@ -957,7 +757,7 @@ function runVersionsCheck(pathArg, opts) {
957
757
  process.exit(1);
958
758
  return;
959
759
  }
960
- const changedAbs = new Set(changed.map((f) => path2.resolve(root, f)));
760
+ const changedAbs = new Set(changed.map((f) => path.resolve(root, f)));
961
761
  assets = assets.filter((a) => assetChanged(a, changedAbs));
962
762
  }
963
763
  logInfo(`Checking versions in ${root}`);
@@ -990,8 +790,8 @@ function makeValidateCommand() {
990
790
  "--strict-conformance",
991
791
  "Treat Agent Skills (agentskills.io) standard findings as errors"
992
792
  ).action(async (targetPath, opts) => {
993
- const absPath = path2.resolve(targetPath);
994
- if (fs2.existsSync(absPath) && !fs2.statSync(absPath).isDirectory()) {
793
+ const absPath = path.resolve(targetPath);
794
+ if (fs.existsSync(absPath) && !fs.statSync(absPath).isDirectory()) {
995
795
  logErr(`${absPath} is not a directory: nothing to validate. Pass the library directory.`);
996
796
  process.exit(1);
997
797
  return;
@@ -1019,7 +819,7 @@ function makeValidateCommand() {
1019
819
  warnIgnoredDomainFiles(absPath);
1020
820
  warnLegacyBundleFiles(absPath);
1021
821
  logInfo(`Scanned ${total} asset manifest(s) and ${ws.total} skaile.yaml file(s)`);
1022
- if (total === 0 && ws.total === 0 && totalErrors === 0 && !fs2.existsSync(path2.join(absPath, SKAILE_MANIFEST_FILENAME))) {
822
+ if (total === 0 && ws.total === 0 && totalErrors === 0 && !fs.existsSync(path.join(absPath, SKAILE_MANIFEST_FILENAME))) {
1023
823
  logErr(
1024
824
  `Nothing to validate in ${absPath}: no asset manifest, skaile.yaml or ${SKAILE_MANIFEST_FILENAME} found.`
1025
825
  );
@@ -1067,6 +867,6 @@ function makeValidateCommand() {
1067
867
  return cmd;
1068
868
  }
1069
869
 
1070
- export { isRecord, makeValidateCommand, scanIdentities };
1071
- //# sourceMappingURL=chunk-ZQSOJH6I.js.map
1072
- //# sourceMappingURL=chunk-ZQSOJH6I.js.map
870
+ export { makeValidateCommand, scanIdentities };
871
+ //# sourceMappingURL=chunk-IHFGPHCT.js.map
872
+ //# sourceMappingURL=chunk-IHFGPHCT.js.map