@skaile/workspaces 5.10.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 (425) hide show
  1. package/CHANGELOG.md +146 -0
  2. package/README.md +14 -2
  3. package/dist/{asset-feeds-ELEBTNUS.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 +197 -11
  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/install-instances.d.ts.map +1 -1
  17. package/dist/asset-manager/src/installer.d.ts +33 -3
  18. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  19. package/dist/asset-manager/src/renderers.d.ts +5 -0
  20. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  21. package/dist/bridge/drivers/claude-sdk.js +16 -13
  22. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  23. package/dist/bridge/drivers/codex.js +43 -16
  24. package/dist/bridge/drivers/codex.js.map +1 -1
  25. package/dist/bridge/drivers/continue.js +10 -10
  26. package/dist/bridge/drivers/echo.js +2 -2
  27. package/dist/bridge/drivers/gemini.js +7 -7
  28. package/dist/bridge/drivers/goose.js +10 -10
  29. package/dist/bridge/drivers/omp.js +52 -9
  30. package/dist/bridge/drivers/omp.js.map +1 -1
  31. package/dist/bridge/drivers/opencode.js +10 -10
  32. package/dist/bridge/drivers/qwen.js +7 -7
  33. package/dist/bridge/index.js +12 -12
  34. package/dist/bridge/src/codex/config-toml.d.ts +8 -3
  35. package/dist/bridge/src/codex/config-toml.d.ts.map +1 -1
  36. package/dist/bridge/src/codex/managed-driver.d.ts.map +1 -1
  37. package/dist/bridge/src/drivers/claude-sdk.d.ts +1 -1
  38. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  39. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  40. package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +1 -1
  41. package/dist/bridge/src/drivers/omp.d.ts +9 -0
  42. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  43. package/dist/bridge/src/provider-materialize/credential-env.d.ts +15 -0
  44. package/dist/bridge/src/provider-materialize/credential-env.d.ts.map +1 -1
  45. package/dist/{chunk-7CR6HT2X.js → chunk-27L6BBAT.js} +9 -9
  46. package/dist/{chunk-7CR6HT2X.js.map → chunk-27L6BBAT.js.map} +1 -1
  47. package/dist/{chunk-QG3HOJEK.js → chunk-2JFIFDDO.js} +3 -3
  48. package/dist/{chunk-QG3HOJEK.js.map → chunk-2JFIFDDO.js.map} +1 -1
  49. package/dist/{chunk-IJHH4DSW.js → chunk-2X3JBVGD.js} +11 -10
  50. package/dist/chunk-2X3JBVGD.js.map +1 -0
  51. package/dist/{chunk-G54USEUP.js → chunk-3HUV2LJF.js} +4 -4
  52. package/dist/{chunk-G54USEUP.js.map → chunk-3HUV2LJF.js.map} +1 -1
  53. package/dist/{chunk-JFXQEVLF.js → chunk-3LVB3HGH.js} +3 -3
  54. package/dist/{chunk-JFXQEVLF.js.map → chunk-3LVB3HGH.js.map} +1 -1
  55. package/dist/{chunk-32XKCNCL.js → chunk-6VLHITAM.js} +146 -4
  56. package/dist/chunk-6VLHITAM.js.map +1 -0
  57. package/dist/{chunk-GEWAIQZ5.js → chunk-7CR2OZPA.js} +10 -12
  58. package/dist/chunk-7CR2OZPA.js.map +1 -0
  59. package/dist/{chunk-6HHE63CO.js → chunk-7QWQTA5S.js} +89 -12
  60. package/dist/chunk-7QWQTA5S.js.map +1 -0
  61. package/dist/{chunk-7I5VRVDP.js → chunk-7XWUJC3A.js} +4 -4
  62. package/dist/{chunk-7I5VRVDP.js.map → chunk-7XWUJC3A.js.map} +1 -1
  63. package/dist/{chunk-3BEY4WK3.js → chunk-C3BMXXTN.js} +203 -31
  64. package/dist/chunk-C3BMXXTN.js.map +1 -0
  65. package/dist/{chunk-IXWODEED.js → chunk-CTP3XBMF.js} +47 -8
  66. package/dist/chunk-CTP3XBMF.js.map +1 -0
  67. package/dist/{chunk-HOHUEKES.js → chunk-DCHQ6BAZ.js} +3 -3
  68. package/dist/{chunk-HOHUEKES.js.map → chunk-DCHQ6BAZ.js.map} +1 -1
  69. package/dist/{chunk-DALV4HHP.js → chunk-DKXNKFKP.js} +3 -2
  70. package/dist/{chunk-DALV4HHP.js.map → chunk-DKXNKFKP.js.map} +1 -1
  71. package/dist/{chunk-3MKPZZRE.js → chunk-G3X4MLDB.js} +3 -3
  72. package/dist/{chunk-3MKPZZRE.js.map → chunk-G3X4MLDB.js.map} +1 -1
  73. package/dist/{chunk-SBFW3CJH.js → chunk-GWD3QNVS.js} +5 -5
  74. package/dist/{chunk-SBFW3CJH.js.map → chunk-GWD3QNVS.js.map} +1 -1
  75. package/dist/chunk-H5U7LNTJ.js +122 -0
  76. package/dist/chunk-H5U7LNTJ.js.map +1 -0
  77. package/dist/{chunk-SX5U422E.js → chunk-HYMERG57.js} +3 -3
  78. package/dist/{chunk-SX5U422E.js.map → chunk-HYMERG57.js.map} +1 -1
  79. package/dist/{chunk-V5TZH4GF.js → chunk-ICIYSJBQ.js} +4 -4
  80. package/dist/{chunk-V5TZH4GF.js.map → chunk-ICIYSJBQ.js.map} +1 -1
  81. package/dist/{chunk-YBQONMH2.js → chunk-ID745F3R.js} +353 -193
  82. package/dist/chunk-ID745F3R.js.map +1 -0
  83. package/dist/{chunk-CLTHEKHR.js → chunk-JQ3DXNQV.js} +4 -4
  84. package/dist/{chunk-CLTHEKHR.js.map → chunk-JQ3DXNQV.js.map} +1 -1
  85. package/dist/chunk-K4VOEYOR.js +21 -0
  86. package/dist/chunk-K4VOEYOR.js.map +1 -0
  87. package/dist/{chunk-XCNK4UE5.js → chunk-KVSDRB35.js} +5 -5
  88. package/dist/{chunk-XCNK4UE5.js.map → chunk-KVSDRB35.js.map} +1 -1
  89. package/dist/{chunk-HJ5MCB3L.js → chunk-MF54ZHWT.js} +20 -3
  90. package/dist/chunk-MF54ZHWT.js.map +1 -0
  91. package/dist/{chunk-NRDSGLCQ.js → chunk-N5M2EISA.js} +240 -52
  92. package/dist/chunk-N5M2EISA.js.map +1 -0
  93. package/dist/{chunk-OBVJ7RPW.js → chunk-NDF24LYP.js} +3 -3
  94. package/dist/{chunk-OBVJ7RPW.js.map → chunk-NDF24LYP.js.map} +1 -1
  95. package/dist/{chunk-ZGQTS3Y4.js → chunk-NGJIVDDD.js} +3 -3
  96. package/dist/{chunk-ZGQTS3Y4.js.map → chunk-NGJIVDDD.js.map} +1 -1
  97. package/dist/{chunk-PE36IF2D.js → chunk-NJV5SLEK.js} +159 -44
  98. package/dist/chunk-NJV5SLEK.js.map +1 -0
  99. package/dist/{chunk-OOWHXOK6.js → chunk-NJXR5OAM.js} +4 -4
  100. package/dist/{chunk-OOWHXOK6.js.map → chunk-NJXR5OAM.js.map} +1 -1
  101. package/dist/{chunk-CGYEHQOX.js → chunk-NOA6EJXE.js} +11 -2
  102. package/dist/chunk-NOA6EJXE.js.map +1 -0
  103. package/dist/{chunk-V7PQZOBR.js → chunk-NR7H7ZJP.js} +14 -6
  104. package/dist/chunk-NR7H7ZJP.js.map +1 -0
  105. package/dist/{chunk-OBYKJB4U.js → chunk-O2SYFJWP.js} +79 -5
  106. package/dist/chunk-O2SYFJWP.js.map +1 -0
  107. package/dist/{chunk-5LKOAX7I.js → chunk-OQ5MKDS3.js} +21 -5
  108. package/dist/chunk-OQ5MKDS3.js.map +1 -0
  109. package/dist/{chunk-4P3KTUZH.js → chunk-P23WJCH2.js} +51 -14
  110. package/dist/chunk-P23WJCH2.js.map +1 -0
  111. package/dist/{chunk-NWDSLXOX.js → chunk-PHRNUTSG.js} +118 -118
  112. package/dist/chunk-PHRNUTSG.js.map +1 -0
  113. package/dist/{chunk-JZCSNEHK.js → chunk-PNOGX36L.js} +141 -39
  114. package/dist/chunk-PNOGX36L.js.map +1 -0
  115. package/dist/{chunk-4OV5DSBB.js → chunk-PNTXHTBC.js} +5 -5
  116. package/dist/chunk-PNTXHTBC.js.map +1 -0
  117. package/dist/{chunk-TRSQP3JD.js → chunk-POQ6PGNE.js} +20 -4
  118. package/dist/chunk-POQ6PGNE.js.map +1 -0
  119. package/dist/{chunk-Y63UQZ7P.js → chunk-QCEKGYHF.js} +3 -3
  120. package/dist/{chunk-Y63UQZ7P.js.map → chunk-QCEKGYHF.js.map} +1 -1
  121. package/dist/{chunk-GFCXNFTW.js → chunk-SHQMPGOL.js} +4 -4
  122. package/dist/{chunk-GFCXNFTW.js.map → chunk-SHQMPGOL.js.map} +1 -1
  123. package/dist/{chunk-WBYDAL6X.js → chunk-SMT3LNAG.js} +4 -4
  124. package/dist/{chunk-WBYDAL6X.js.map → chunk-SMT3LNAG.js.map} +1 -1
  125. package/dist/{chunk-2FMEGSBN.js → chunk-T5TSLSRO.js} +135 -47
  126. package/dist/chunk-T5TSLSRO.js.map +1 -0
  127. package/dist/{chunk-2JMLDZLP.js → chunk-TVAR4JHA.js} +903 -138
  128. package/dist/chunk-TVAR4JHA.js.map +1 -0
  129. package/dist/{chunk-MVQ3Q2HM.js → chunk-UTKENBB6.js} +5 -5
  130. package/dist/{chunk-MVQ3Q2HM.js.map → chunk-UTKENBB6.js.map} +1 -1
  131. package/dist/{chunk-TH4CTXHX.js → chunk-VRLKHL74.js} +6 -6
  132. package/dist/{chunk-TH4CTXHX.js.map → chunk-VRLKHL74.js.map} +1 -1
  133. package/dist/{chunk-Z2K6BGUR.js → chunk-WI4T3KIS.js} +51 -16
  134. package/dist/chunk-WI4T3KIS.js.map +1 -0
  135. package/dist/{chunk-MGGFBZWA.js → chunk-X3RMRJNR.js} +6 -4
  136. package/dist/chunk-X3RMRJNR.js.map +1 -0
  137. package/dist/{chunk-FRPBSUFH.js → chunk-X6LKA3TJ.js} +5 -5
  138. package/dist/{chunk-FRPBSUFH.js.map → chunk-X6LKA3TJ.js.map} +1 -1
  139. package/dist/{chunk-3KHYGOEY.js → chunk-XMAJJPA4.js} +3 -3
  140. package/dist/{chunk-3KHYGOEY.js.map → chunk-XMAJJPA4.js.map} +1 -1
  141. package/dist/{chunk-Y34MSWEZ.js → chunk-XTVSNWLL.js} +19 -7
  142. package/dist/chunk-XTVSNWLL.js.map +1 -0
  143. package/dist/{chunk-VLXDXRRX.js → chunk-XZY6SBGU.js} +3 -3
  144. package/dist/{chunk-VLXDXRRX.js.map → chunk-XZY6SBGU.js.map} +1 -1
  145. package/dist/{chunk-5QI2JYJC.js → chunk-YQU2BPQD.js} +7 -5
  146. package/dist/chunk-YQU2BPQD.js.map +1 -0
  147. package/dist/cli/index.js +1207 -580
  148. package/dist/cli/index.js.map +1 -1
  149. package/dist/cli/src/agent-checks.d.ts +40 -0
  150. package/dist/cli/src/agent-checks.d.ts.map +1 -0
  151. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  152. package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
  153. package/dist/cli/src/commands/catalog.d.ts +24 -0
  154. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  155. package/dist/cli/src/commands/config.d.ts.map +1 -1
  156. package/dist/cli/src/commands/diff.d.ts +1 -1
  157. package/dist/cli/src/commands/diff.d.ts.map +1 -1
  158. package/dist/cli/src/commands/integration.d.ts.map +1 -1
  159. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  160. package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
  161. package/dist/cli/src/commands/manage.d.ts +6 -0
  162. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  163. package/dist/cli/src/commands/mcp-server.d.ts +1 -1
  164. package/dist/cli/src/commands/migrate-assets.d.ts +2 -1
  165. package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -1
  166. package/dist/cli/src/commands/migrate.d.ts.map +1 -1
  167. package/dist/cli/src/commands/outdated.d.ts.map +1 -1
  168. package/dist/cli/src/commands/plugin/claude-code.d.ts +1 -1
  169. package/dist/cli/src/commands/plugin/claude-code.d.ts.map +1 -1
  170. package/dist/cli/src/commands/plugin/types.d.ts +1 -1
  171. package/dist/cli/src/commands/plugin-registry-cmd.d.ts.map +1 -1
  172. package/dist/cli/src/commands/project.d.ts +3 -1
  173. package/dist/cli/src/commands/project.d.ts.map +1 -1
  174. package/dist/cli/src/commands/publish-core.d.ts +5 -0
  175. package/dist/cli/src/commands/publish-core.d.ts.map +1 -1
  176. package/dist/cli/src/commands/run.d.ts +2 -1
  177. package/dist/cli/src/commands/run.d.ts.map +1 -1
  178. package/dist/cli/src/commands/serve-preflight.d.ts +22 -0
  179. package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -0
  180. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  181. package/dist/cli/src/commands/source-manifest-publish.d.ts.map +1 -1
  182. package/dist/cli/src/commands/source-manifest.d.ts.map +1 -1
  183. package/dist/cli/src/commands/source.d.ts.map +1 -1
  184. package/dist/cli/src/commands/store.d.ts.map +1 -1
  185. package/dist/cli/src/commands/tree.d.ts.map +1 -1
  186. package/dist/cli/src/commands/update.d.ts.map +1 -1
  187. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  188. package/dist/cli/src/commands/why.d.ts +1 -0
  189. package/dist/cli/src/commands/why.d.ts.map +1 -1
  190. package/dist/cli/src/curated-manifests.d.ts +21 -0
  191. package/dist/cli/src/curated-manifests.d.ts.map +1 -0
  192. package/dist/cli/src/helpers.d.ts +12 -0
  193. package/dist/cli/src/helpers.d.ts.map +1 -1
  194. package/dist/cli/src/index-busy.d.ts +8 -0
  195. package/dist/cli/src/index-busy.d.ts.map +1 -0
  196. package/dist/cli/src/plugin-store/paths.d.ts +7 -3
  197. package/dist/cli/src/plugin-store/paths.d.ts.map +1 -1
  198. package/dist/cli/src/skill-checks.d.ts +29 -8
  199. package/dist/cli/src/skill-checks.d.ts.map +1 -1
  200. package/dist/cli/src/store-addable.d.ts +18 -0
  201. package/dist/cli/src/store-addable.d.ts.map +1 -0
  202. package/dist/connectors/config.js +5 -5
  203. package/dist/connectors/index.js +16 -16
  204. package/dist/{connectors-OXP2JBGI.js → connectors-UNKUKEPG.js} +19 -19
  205. package/dist/{connectors-OXP2JBGI.js.map → connectors-UNKUKEPG.js.map} +1 -1
  206. package/dist/core/index.js +7 -7
  207. package/dist/core/logging.js +1 -1
  208. package/dist/core/manifest.js +2 -2
  209. package/dist/core/models.js +1 -1
  210. package/dist/core/publish-manifest.js +2 -2
  211. package/dist/core/ref.js +1 -1
  212. package/dist/core/runtime-assets.js +5 -5
  213. package/dist/core/src/index.d.ts +5 -4
  214. package/dist/core/src/index.d.ts.map +1 -1
  215. package/dist/core/src/lock.d.ts +19 -8
  216. package/dist/core/src/lock.d.ts.map +1 -1
  217. package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -1
  218. package/dist/core/src/manifest.d.ts +5 -0
  219. package/dist/core/src/manifest.d.ts.map +1 -1
  220. package/dist/core/src/models.d.ts +4 -4
  221. package/dist/core/src/models.d.ts.map +1 -1
  222. package/dist/core/src/package-manager.d.ts +19 -0
  223. package/dist/core/src/package-manager.d.ts.map +1 -0
  224. package/dist/core/src/publish-manifest.d.ts +11 -1
  225. package/dist/core/src/publish-manifest.d.ts.map +1 -1
  226. package/dist/core/src/repo-manager.d.ts +11 -0
  227. package/dist/core/src/repo-manager.d.ts.map +1 -1
  228. package/dist/core/src/settings.d.ts +26 -6
  229. package/dist/core/src/settings.d.ts.map +1 -1
  230. package/dist/core/src/walker.d.ts +6 -1
  231. package/dist/core/src/walker.d.ts.map +1 -1
  232. package/dist/core/src/workspace-config.d.ts +4 -1
  233. package/dist/core/src/workspace-config.d.ts.map +1 -1
  234. package/dist/core/workspace-config.js +4 -4
  235. package/dist/deploy/index.js +7 -7
  236. package/dist/discovery/index.js +5 -5
  237. package/dist/discovery/src/source-config.d.ts.map +1 -1
  238. package/dist/{ensure-sources-5ISVIA4T.js → ensure-sources-POMEQSTM.js} +19 -19
  239. package/dist/{ensure-sources-5ISVIA4T.js.map → ensure-sources-POMEQSTM.js.map} +1 -1
  240. package/dist/factory-assets/connectors/box.js +16 -16
  241. package/dist/factory-assets/connectors/deploy.js +16 -16
  242. package/dist/factory-assets/connectors/devserver.js +16 -16
  243. package/dist/factory-assets/connectors/flow/adapter.js +16 -16
  244. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
  245. package/dist/factory-assets/connectors/flow/contract.js +1 -1
  246. package/dist/factory-assets/connectors/flow/engine.js +9 -9
  247. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  248. package/dist/factory-assets/connectors/flow/run-flow.js +18 -18
  249. package/dist/factory-assets/connectors/flow.js +16 -16
  250. package/dist/factory-assets/connectors/git.js +16 -16
  251. package/dist/factory-assets/connectors/gmail.js +16 -16
  252. package/dist/factory-assets/connectors/googledrive.js +16 -16
  253. package/dist/factory-assets/connectors/local.js +16 -16
  254. package/dist/factory-assets/connectors/mattermost.js +16 -16
  255. package/dist/factory-assets/connectors/memory.js +16 -16
  256. package/dist/factory-assets/connectors/minio.js +16 -16
  257. package/dist/factory-assets/connectors/postgres.js +16 -16
  258. package/dist/factory-assets/connectors/s3.js +16 -16
  259. package/dist/factory-assets/connectors/sharepoint.js +16 -16
  260. package/dist/factory-assets/connectors/sqlite.js +16 -16
  261. package/dist/factory-assets/connectors/static-server.js +16 -16
  262. package/dist/factory-assets/connectors/tunnel.js +16 -16
  263. package/dist/factory-assets/connectors/webdav.js +16 -16
  264. package/dist/factory-assets/connectors/xstate-store.js +16 -16
  265. package/dist/factory-assets/connectors/xstate.js +16 -16
  266. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +10 -8
  267. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +15 -11
  268. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +16 -11
  269. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +2 -2
  270. package/dist/{flows-HMSE76PO.js → flows-DVKMZKM4.js} +12 -12
  271. package/dist/{flows-HMSE76PO.js.map → flows-DVKMZKM4.js.map} +1 -1
  272. package/dist/{helpers-X6URBGSF.js → helpers-Y4OT7VIS.js} +19 -19
  273. package/dist/{helpers-X6URBGSF.js.map → helpers-Y4OT7VIS.js.map} +1 -1
  274. package/dist/library/index.js +12 -12
  275. package/dist/library/install.js +4 -4
  276. package/dist/library/src/index.d.ts +3 -3
  277. package/dist/library/src/index.d.ts.map +1 -1
  278. package/dist/library/src/install/source-fetch-github.d.ts.map +1 -1
  279. package/dist/library/src/local/db.d.ts +2 -0
  280. package/dist/library/src/local/db.d.ts.map +1 -1
  281. package/dist/library/src/local/library-dir.d.ts +26 -0
  282. package/dist/library/src/local/library-dir.d.ts.map +1 -1
  283. package/dist/library/src/local/library-manager.d.ts +5 -0
  284. package/dist/library/src/local/library-manager.d.ts.map +1 -1
  285. package/dist/library/src/local/library.d.ts +5 -3
  286. package/dist/library/src/local/library.d.ts.map +1 -1
  287. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  288. package/dist/library/src/local/store-paths.d.ts +9 -0
  289. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  290. package/dist/library/src/manifest-writer.d.ts.map +1 -1
  291. package/dist/library/src/remote/index.d.ts +1 -1
  292. package/dist/library/src/remote/index.d.ts.map +1 -1
  293. package/dist/library/src/remote/remote-catalog-source.d.ts +17 -0
  294. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  295. package/dist/library/src/sync/git-driver.d.ts +2 -0
  296. package/dist/library/src/sync/git-driver.d.ts.map +1 -1
  297. package/dist/{library-publish-OS3JDW4S.js → library-publish-DI4Q5UOG.js} +73 -38
  298. package/dist/library-publish-DI4Q5UOG.js.map +1 -0
  299. package/dist/open-library-N6ESO6IK.js +40 -0
  300. package/dist/{open-library-4QSUORI6.js.map → open-library-N6ESO6IK.js.map} +1 -1
  301. package/dist/open-registry-CBZ5MWTT.js +32 -0
  302. package/dist/{open-registry-VCKS3MP5.js.map → open-registry-CBZ5MWTT.js.map} +1 -1
  303. package/dist/paths-U6W6MQNQ.js +22 -0
  304. package/dist/{paths-BVO56A25.js.map → paths-U6W6MQNQ.js.map} +1 -1
  305. package/dist/{plugin-store-X7GPWGBG.js → plugin-store-XMZSPVBF.js} +48 -12
  306. package/dist/plugin-store-XMZSPVBF.js.map +1 -0
  307. package/dist/project-UP52HEHC.js +79 -0
  308. package/dist/{project-PAXP46RD.js.map → project-UP52HEHC.js.map} +1 -1
  309. package/dist/resolver/index.js +8 -8
  310. package/dist/runner/index.js +33 -33
  311. package/dist/runner/src/agent.d.ts.map +1 -1
  312. package/dist/runner/src/agents/in-process-host.d.ts.map +1 -1
  313. package/dist/runner/src/composition/index.d.ts +1 -0
  314. package/dist/runner/src/composition/index.d.ts.map +1 -1
  315. package/dist/runner/src/composition/prompt-sections.d.ts +7 -4
  316. package/dist/runner/src/composition/prompt-sections.d.ts.map +1 -1
  317. package/dist/runner/src/composition/resolve.d.ts +10 -1
  318. package/dist/runner/src/composition/resolve.d.ts.map +1 -1
  319. package/dist/runner/src/composition/verify.d.ts +29 -0
  320. package/dist/runner/src/composition/verify.d.ts.map +1 -0
  321. package/dist/runner/src/credential-notice.d.ts +14 -0
  322. package/dist/runner/src/credential-notice.d.ts.map +1 -0
  323. package/dist/runner/src/environment.d.ts.map +1 -1
  324. package/dist/runner/src/final-text.d.ts +17 -0
  325. package/dist/runner/src/final-text.d.ts.map +1 -0
  326. package/dist/runner/src/index.d.ts +2 -0
  327. package/dist/runner/src/index.d.ts.map +1 -1
  328. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  329. package/dist/runner/src/serve.d.ts +13 -0
  330. package/dist/runner/src/serve.d.ts.map +1 -1
  331. package/dist/runner/src/usage-limit-turn-hold.d.ts +51 -0
  332. package/dist/runner/src/usage-limit-turn-hold.d.ts.map +1 -0
  333. package/dist/sdk/asset-manager.js +16 -16
  334. package/dist/sdk/bridge.js +12 -12
  335. package/dist/sdk/core.js +7 -7
  336. package/dist/sdk/flow.js +9 -9
  337. package/dist/sdk/index.js +36 -34
  338. package/dist/sdk/index.js.map +1 -1
  339. package/dist/sdk/resolver.js +8 -8
  340. package/dist/sdk/runner.js +33 -33
  341. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  342. package/dist/sdk/transport/ws/client.js +1 -1
  343. package/dist/sdk/transport/ws/server.js +1 -1
  344. package/dist/sdk/transport/ws.js +2 -2
  345. package/dist/sdk/transport.js +2 -2
  346. package/dist/serve-preflight-6P2JJEJ3.js +47 -0
  347. package/dist/serve-preflight-6P2JJEJ3.js.map +1 -0
  348. package/dist/{setup-BV55VHWC.js → setup-5IRUH5OS.js} +24 -24
  349. package/dist/{setup-BV55VHWC.js.map → setup-5IRUH5OS.js.map} +1 -1
  350. package/dist/{skills-EDFUCJPX.js → skills-HA36RFNM.js} +13 -13
  351. package/dist/{skills-EDFUCJPX.js.map → skills-HA36RFNM.js.map} +1 -1
  352. package/dist/source-DX5SGWEI.js +41 -0
  353. package/dist/{source-E4VAT5RZ.js.map → source-DX5SGWEI.js.map} +1 -1
  354. package/dist/source-fetch-github-PIO6EMMF.js +4 -0
  355. package/dist/{source-fetch-github-QN4LLTL5.js.map → source-fetch-github-PIO6EMMF.js.map} +1 -1
  356. package/dist/{source-manifest-publish-CLEE6TNH.js → source-manifest-publish-NMRLXWVW.js} +27 -26
  357. package/dist/source-manifest-publish-NMRLXWVW.js.map +1 -0
  358. package/dist/transport/index.js +2 -2
  359. package/dist/transport/src/ws/client.d.ts +6 -0
  360. package/dist/transport/src/ws/client.d.ts.map +1 -1
  361. package/dist/transport/src/ws/server.d.ts +4 -0
  362. package/dist/transport/src/ws/server.d.ts.map +1 -1
  363. package/dist/transport/ws/client.js +1 -1
  364. package/dist/transport/ws/server.js +1 -1
  365. package/dist/transport/ws.js +2 -2
  366. package/dist/tui/index.js +89 -52
  367. package/dist/tui/index.js.map +1 -1
  368. package/dist/tui/src/repl-session.d.ts +1 -1
  369. package/dist/tui/src/repl-session.d.ts.map +1 -1
  370. package/dist/tui/src/repl.d.ts +3 -0
  371. package/dist/tui/src/repl.d.ts.map +1 -1
  372. package/dist/types/manifests.js +1 -1
  373. package/dist/types/src/manifests/agent-composition.d.ts +20 -0
  374. package/dist/types/src/manifests/agent-composition.d.ts.map +1 -1
  375. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  376. package/dist/types/src/manifests/cron.d.ts +15 -0
  377. package/dist/types/src/manifests/cron.d.ts.map +1 -0
  378. package/dist/types/src/manifests/index.d.ts +3 -2
  379. package/dist/types/src/manifests/index.d.ts.map +1 -1
  380. package/dist/types/src/manifests/preset.d.ts +1 -1
  381. package/dist/workspace-plugin/adapters/mcp.js +23 -23
  382. package/dist/workspace-plugin/adapters/omp.js +106 -51
  383. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  384. package/dist/workspace-plugin/index.js +2 -2
  385. package/dist/workspace-plugin/src/adapters/claude-code.d.ts.map +1 -1
  386. package/dist/workspace-plugin/src/adapters/omp.d.ts +11 -2
  387. package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -1
  388. package/package.json +1 -1
  389. package/dist/asset-feeds-ELEBTNUS.js.map +0 -1
  390. package/dist/chunk-2FMEGSBN.js.map +0 -1
  391. package/dist/chunk-2JMLDZLP.js.map +0 -1
  392. package/dist/chunk-32XKCNCL.js.map +0 -1
  393. package/dist/chunk-3BEY4WK3.js.map +0 -1
  394. package/dist/chunk-4OV5DSBB.js.map +0 -1
  395. package/dist/chunk-4P3KTUZH.js.map +0 -1
  396. package/dist/chunk-5LKOAX7I.js.map +0 -1
  397. package/dist/chunk-5QI2JYJC.js.map +0 -1
  398. package/dist/chunk-6HHE63CO.js.map +0 -1
  399. package/dist/chunk-CGYEHQOX.js.map +0 -1
  400. package/dist/chunk-GEWAIQZ5.js.map +0 -1
  401. package/dist/chunk-HJ5MCB3L.js.map +0 -1
  402. package/dist/chunk-IJHH4DSW.js.map +0 -1
  403. package/dist/chunk-IXWODEED.js.map +0 -1
  404. package/dist/chunk-JZCSNEHK.js.map +0 -1
  405. package/dist/chunk-MGGFBZWA.js.map +0 -1
  406. package/dist/chunk-NRDSGLCQ.js.map +0 -1
  407. package/dist/chunk-NWDSLXOX.js.map +0 -1
  408. package/dist/chunk-OBYKJB4U.js.map +0 -1
  409. package/dist/chunk-PE36IF2D.js.map +0 -1
  410. package/dist/chunk-R7FOF242.js +0 -59
  411. package/dist/chunk-R7FOF242.js.map +0 -1
  412. package/dist/chunk-TRSQP3JD.js.map +0 -1
  413. package/dist/chunk-V7PQZOBR.js.map +0 -1
  414. package/dist/chunk-Y34MSWEZ.js.map +0 -1
  415. package/dist/chunk-YBQONMH2.js.map +0 -1
  416. package/dist/chunk-Z2K6BGUR.js.map +0 -1
  417. package/dist/library-publish-OS3JDW4S.js.map +0 -1
  418. package/dist/open-library-4QSUORI6.js +0 -40
  419. package/dist/open-registry-VCKS3MP5.js +0 -32
  420. package/dist/paths-BVO56A25.js +0 -22
  421. package/dist/plugin-store-X7GPWGBG.js.map +0 -1
  422. package/dist/project-PAXP46RD.js +0 -41
  423. package/dist/source-E4VAT5RZ.js +0 -41
  424. package/dist/source-fetch-github-QN4LLTL5.js +0 -4
  425. package/dist/source-manifest-publish-CLEE6TNH.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { normalizeAnthropicModel } from './chunk-32XKCNCL.js';
2
- import { buildAgentPromptSections } from './chunk-2FMEGSBN.js';
3
- import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
4
- import { join, dirname, relative } from 'path';
1
+ import { normalizeAnthropicModel, ANTHROPIC_MODEL_ALIASES } from './chunk-6VLHITAM.js';
2
+ import { buildAgentPromptSections } from './chunk-T5TSLSRO.js';
3
+ import { existsSync, readFileSync, mkdirSync, writeFileSync, lstatSync, readdirSync } from 'fs';
4
+ import { join, dirname, relative, resolve, normalize, basename } from 'path';
5
5
  import { stringify } from 'yaml';
6
6
 
7
7
  function writeAgent(filePath, content, workspaceRoot, created, changed) {
@@ -33,6 +33,55 @@ function buildMarkdownBody(soul, rules, duties, abilityRefs, contractRefs, frame
33
33
  function toTomlMultilineString(s) {
34
34
  return s.replace(/"""/g, '\\"\\"\\"');
35
35
  }
36
+ function harnessModel(model) {
37
+ if (!model) return void 0;
38
+ const claudeOnly = (m) => ANTHROPIC_MODEL_ALIASES.includes(m);
39
+ const { preferred, fallback, ...rest } = model;
40
+ const kept = { ...rest };
41
+ if (preferred && !claudeOnly(preferred)) kept.preferred = preferred;
42
+ const fallbacks = (fallback ?? []).filter((m) => !claudeOnly(m));
43
+ if (fallbacks.length > 0) kept.fallback = fallbacks;
44
+ return Object.keys(kept).length > 0 ? kept : void 0;
45
+ }
46
+ var COPY_SKIP = /* @__PURE__ */ new Set([".git", ".DS_Store", "node_modules", "__pycache__"]);
47
+ function copyTree(from, to, workspaceRoot, changed) {
48
+ const stat = lstatSync(from);
49
+ if (stat.isSymbolicLink()) return;
50
+ if (stat.isDirectory()) {
51
+ for (const name of readdirSync(from)) {
52
+ if (COPY_SKIP.has(name) || name.endsWith(".pyc")) continue;
53
+ copyTree(join(from, name), join(to, name), workspaceRoot, changed);
54
+ }
55
+ return;
56
+ }
57
+ if (!stat.isFile()) return;
58
+ const bytes = readFileSync(from);
59
+ if (existsSync(to)) {
60
+ try {
61
+ if (bytes.equals(readFileSync(to))) return;
62
+ } catch {
63
+ }
64
+ }
65
+ mkdirSync(dirname(to), { recursive: true });
66
+ writeFileSync(to, bytes);
67
+ changed.push(relative(workspaceRoot, to));
68
+ }
69
+ function bundleLocalComposes(composes, srcDir, destDir, workspaceRoot, changed, warnings) {
70
+ if (!srcDir) return composes;
71
+ return composes.map((item) => {
72
+ if (!item.ref.startsWith("./") && !item.ref.startsWith("../")) return item;
73
+ const from = resolve(srcDir, item.ref);
74
+ if (!existsSync(from)) {
75
+ warnings.push(`compose ref ${item.ref} not found at ${from}: not copied into ${destDir}`);
76
+ return item;
77
+ }
78
+ const rel = normalize(item.ref);
79
+ const inside = !rel.startsWith("..");
80
+ const target = inside ? rel : join("composes", basename(from));
81
+ copyTree(from, join(destDir, target), workspaceRoot, changed);
82
+ return inside ? item : { ...item, ref: `./${target}` };
83
+ });
84
+ }
36
85
  var claudeCodeRenderer = ({
37
86
  manifest,
38
87
  soul,
@@ -141,9 +190,8 @@ var codexRenderer = ({
141
190
  `name = ${JSON.stringify(agentName)}`,
142
191
  `description = ${JSON.stringify(manifest.description ?? `${agentName} agent`)}`
143
192
  ];
144
- if (manifest.model?.preferred) {
145
- lines.push(`model = ${JSON.stringify(manifest.model.preferred)}`);
146
- }
193
+ const model = harnessModel(manifest.model)?.preferred;
194
+ if (model) lines.push(`model = ${JSON.stringify(model)}`);
147
195
  const sandboxMode = codexSandboxMode(manifest.tools);
148
196
  if (sandboxMode) lines.push(`sandbox_mode = ${JSON.stringify(sandboxMode)}`);
149
197
  lines.push(`developer_instructions = """`, escaped.trim(), `"""`);
@@ -167,7 +215,8 @@ var ompRenderer = ({
167
215
  contractRefs,
168
216
  frameworkFragments,
169
217
  promptExtensions,
170
- lifecycle
218
+ lifecycle,
219
+ srcDir
171
220
  }) => {
172
221
  const created = [];
173
222
  const changed = [];
@@ -180,7 +229,8 @@ var ompRenderer = ({
180
229
  description: manifest.description ?? `${agentName} agent`,
181
230
  lifecycle
182
231
  };
183
- if (manifest.model) agentYaml.model = manifest.model;
232
+ const model = harnessModel(manifest.model);
233
+ if (model) agentYaml.model = model;
184
234
  if (manifest.tools) agentYaml.tools = manifest.tools;
185
235
  if (manifest.delegation) agentYaml.delegation = manifest.delegation;
186
236
  if (manifest.runtime) agentYaml.runtime = manifest.runtime;
@@ -188,7 +238,16 @@ var ompRenderer = ({
188
238
  if (manifest.memory) agentYaml.memory = manifest.memory;
189
239
  if (manifest.triggers?.length) agentYaml.triggers = manifest.triggers;
190
240
  if (manifest.capabilities?.length) agentYaml.capabilities = manifest.capabilities;
191
- if (manifest.composes?.length) agentYaml.composes = manifest.composes;
241
+ if (manifest.composes?.length) {
242
+ agentYaml.composes = bundleLocalComposes(
243
+ manifest.composes,
244
+ srcDir,
245
+ destDir,
246
+ workspaceRoot,
247
+ changed,
248
+ warnings
249
+ );
250
+ }
192
251
  if (manifest.tags?.length) agentYaml.tags = manifest.tags;
193
252
  if (manifest.metadata) agentYaml.metadata = manifest.metadata;
194
253
  writeAgent(join(destDir, "agent.yaml"), stringify(agentYaml), workspaceRoot, [], changed);
@@ -202,6 +261,24 @@ var ompRenderer = ({
202
261
  promptExtensions
203
262
  );
204
263
  writeAgent(join(destDir, "SOUL.md"), enrichedSoul, workspaceRoot, [], changed);
264
+ const frontmatter = {
265
+ name: agentName,
266
+ description: manifest.description ?? `${agentName} agent`
267
+ };
268
+ if (manifest.tools?.allowed?.length) frontmatter.tools = manifest.tools.allowed.join(", ");
269
+ const selector = model?.preferred;
270
+ if (selector) frontmatter.model = selector;
271
+ writeAgent(
272
+ join(agentDeployDir, `${agentName}.md`),
273
+ `---
274
+ ${stringify(frontmatter).trim()}
275
+ ---
276
+
277
+ ${enrichedSoul}`,
278
+ workspaceRoot,
279
+ created,
280
+ changed
281
+ );
205
282
  created.push(relative(workspaceRoot, destDir));
206
283
  return { created, changed, warnings };
207
284
  };
@@ -231,5 +308,5 @@ function driverTargetSupportsAgents(driverTarget) {
231
308
  }
232
309
 
233
310
  export { AGENT_RENDERERS, CODEX_IDENTITY_DIR, claudeCodeRenderer, codexRenderer, driverTargetSupportsAgents, ompRenderer, renderAgentToFramework };
234
- //# sourceMappingURL=chunk-6HHE63CO.js.map
235
- //# sourceMappingURL=chunk-6HHE63CO.js.map
311
+ //# sourceMappingURL=chunk-7QWQTA5S.js.map
312
+ //# sourceMappingURL=chunk-7QWQTA5S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../asset-manager/src/renderers.ts"],"names":["stringifyYaml"],"mappings":";;;;;;AA4GA,SAAS,UAAA,CACP,QAAA,EACA,OAAA,EACA,aAAA,EACA,SACA,OAAA,EACM;AACN,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,aAAA,EAAe,QAAQ,CAAA;AAC5C,EAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAChB,EAAA,IAAI,UAAA,CAAW,QAAQ,CAAA,EAAG;AACxB,IAAA,IAAI;AACF,MAAA,IAAI,YAAA,CAAa,QAAA,EAAU,OAAO,CAAA,KAAM,OAAA,EAAS;AAAA,IACnD,CAAA,CAAA,MAAQ;AAAA,IAER;AAAA,EACF;AACA,EAAA,SAAA,CAAU,QAAQ,QAAQ,CAAA,EAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AAChD,EAAA,aAAA,CAAc,QAAA,EAAU,SAAS,OAAO,CAAA;AACxC,EAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAClB;AAeA,SAAS,kBACP,IAAA,EACA,KAAA,EACA,QACA,WAAA,EACA,YAAA,EACA,oBACA,gBAAA,EACQ;AACR,EAAA,MAAM,WAAW,wBAAA,CAAyB;AAAA,IACxC,IAAA;AAAA,IACA,WAAA,EAAa,KAAA;AAAA,IACb,MAAA;AAAA,IACA,SAAA,EAAW,WAAA;AAAA,IACX,SAAA,EAAW,YAAA;AAAA,IACX,kBAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,OAAO,CAAA,EAAG,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA,CAAE,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AACpD;AAGA,SAAS,sBAAsB,CAAA,EAAmB;AAEhD,EAAA,OAAO,CAAA,CAAE,OAAA,CAAQ,MAAA,EAAQ,WAAW,CAAA;AACtC;AASA,SAAS,aAAa,KAAA,EAAmE;AACvF,EAAA,IAAI,CAAC,OAAO,OAAO,MAAA;AACnB,EAAA,MAAM,UAAA,GAAa,CAAC,CAAA,KACjB,uBAAA,CAA8C,SAAS,CAAC,CAAA;AAC3D,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AACzC,EAAA,MAAM,IAAA,GAA4C,EAAE,GAAG,IAAA,EAAK;AAC5D,EAAA,IAAI,aAAa,CAAC,UAAA,CAAW,SAAS,CAAA,OAAQ,SAAA,GAAY,SAAA;AAC1D,EAAA,MAAM,SAAA,GAAA,CAAa,QAAA,IAAY,EAAC,EAAG,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,UAAA,CAAW,CAAC,CAAC,CAAA;AAC/D,EAAA,IAAI,SAAA,CAAU,MAAA,GAAS,CAAA,EAAG,IAAA,CAAK,QAAA,GAAW,SAAA;AAC1C,EAAA,OAAO,OAAO,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,GAAS,IAAI,IAAA,GAAO,MAAA;AAC/C;AAGA,IAAM,SAAA,uBAAgB,GAAA,CAAI,CAAC,QAAQ,WAAA,EAAa,cAAA,EAAgB,aAAa,CAAC,CAAA;AAG9E,SAAS,QAAA,CAAS,IAAA,EAAc,EAAA,EAAY,aAAA,EAAuB,OAAA,EAAyB;AAC1F,EAAA,MAAM,IAAA,GAAO,UAAU,IAAI,CAAA;AAC3B,EAAA,IAAI,IAAA,CAAK,gBAAe,EAAG;AAC3B,EAAA,IAAI,IAAA,CAAK,aAAY,EAAG;AACtB,IAAA,KAAA,MAAW,IAAA,IAAQ,WAAA,CAAY,IAAI,CAAA,EAAG;AACpC,MAAA,IAAI,UAAU,GAAA,CAAI,IAAI,KAAK,IAAA,CAAK,QAAA,CAAS,MAAM,CAAA,EAAG;AAClD,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,IAAI,CAAA,EAAG,KAAK,EAAA,EAAI,IAAI,CAAA,EAAG,aAAA,EAAe,OAAO,CAAA;AAAA,IACnE;AACA,IAAA;AAAA,EACF;AACA,EAAA,IAAI,CAAC,IAAA,CAAK,MAAA,EAAO,EAAG;AACpB,EAAA,MAAM,KAAA,GAAQ,aAAa,IAAI,CAAA;AAC/B,EAAA,IAAI,UAAA,CAAW,EAAE,CAAA,EAAG;AAClB,IAAA,IAAI;AACF,MAAA,IAAI,KAAA,CAAM,MAAA,CAAO,YAAA,CAAa,EAAE,CAAC,CAAA,EAAG;AAAA,IACtC,CAAA,CAAA,MAAQ;AAAA,IAER;AAAA,EACF;AACA,EAAA,SAAA,CAAU,QAAQ,EAAE,CAAA,EAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AAC1C,EAAA,aAAA,CAAc,IAAI,KAAK,CAAA;AACvB,EAAA,OAAA,CAAQ,IAAA,CAAK,QAAA,CAAS,aAAA,EAAe,EAAE,CAAC,CAAA;AAC1C;AAQA,SAAS,oBACP,QAAA,EACA,MAAA,EACA,OAAA,EACA,aAAA,EACA,SACA,QAAA,EACwC;AACxC,EAAA,IAAI,CAAC,QAAQ,OAAO,QAAA;AACpB,EAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS;AAC5B,IAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,IAAK,CAAC,IAAA,CAAK,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA,EAAG,OAAO,IAAA;AACtE,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,MAAA,EAAQ,IAAA,CAAK,GAAG,CAAA;AACrC,IAAA,IAAI,CAAC,UAAA,CAAW,IAAI,CAAA,EAAG;AACrB,MAAA,QAAA,CAAS,IAAA,CAAK,eAAe,IAAA,CAAK,GAAG,iBAAiB,IAAI,CAAA,kBAAA,EAAqB,OAAO,CAAA,CAAE,CAAA;AACxF,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,MAAM,GAAA,GAAM,SAAA,CAAU,IAAA,CAAK,GAAG,CAAA;AAC9B,IAAA,MAAM,MAAA,GAAS,CAAC,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA;AACnC,IAAA,MAAM,SAAS,MAAA,GAAS,GAAA,GAAM,KAAK,UAAA,EAAY,QAAA,CAAS,IAAI,CAAC,CAAA;AAC7D,IAAA,QAAA,CAAS,MAAM,IAAA,CAAK,OAAA,EAAS,MAAM,CAAA,EAAG,eAAe,OAAO,CAAA;AAC5D,IAAA,OAAO,MAAA,GAAS,OAAO,EAAE,GAAG,MAAM,GAAA,EAAK,CAAA,EAAA,EAAK,MAAM,CAAA,CAAA,EAAG;AAAA,EACvD,CAAC,CAAA;AACH;AAyBO,IAAM,qBAAoC,CAAC;AAAA,EAChD,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,MAAM,WAAqB,EAAC;AAE5B,EAAA,MAAM,WAAA,GAAuC;AAAA,IAC3C,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,QAAA,CAAS,WAAA,IAAe,CAAA,EAAG,SAAS,CAAA,MAAA;AAAA,GACnD;AAKA,EAAA,IAAI,QAAA,CAAS,OAAO,SAAA,EAAW;AAC7B,IAAA,MAAM,GAAA,GAAM,SAAS,KAAA,CAAM,SAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,wBAAwB,GAAG,CAAA;AAC9C,IAAA,IAAI,eAAe,GAAA,EAAK;AACtB,MAAA,QAAA,CAAS,IAAA;AAAA,QACP,CAAA,MAAA,EAAS,SAAS,CAAA,SAAA,EAAY,GAAG,0DAA0D,UAAU,CAAA,qBAAA;AAAA,OACvG;AAAA,IACF;AACA,IAAA,WAAA,CAAY,KAAA,GAAQ,UAAA;AAAA,EACtB;AAGA,EAAA,IAAI,QAAA,CAAS,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ;AACnC,IAAA,WAAA,CAAY,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,CAAA;AAAA,EACtD;AACA,EAAA,IAAI,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ;AAClC,IAAA,WAAA,CAAY,eAAA,GAAkB,QAAA,CAAS,KAAA,CAAM,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,EAC/D;AAEA,EAAA,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,WAAA,CAAY,MAAA,GAAS,MAAA;AAC5C,EAAA,IAAI,UAAA,CAAW,MAAA,GAAS,CAAA,EAAG,WAAA,CAAY,UAAA,GAAa,UAAA;AAGpD,EAAA,IAAI,QAAA,CAAS,SAAS,SAAA,EAAW;AAC/B,IAAA,WAAA,CAAY,QAAA,GAAW,SAAS,OAAA,CAAQ,SAAA;AAAA,EAC1C;AACA,EAAA,IAAI,SAAA,KAAc,MAAA,IAAU,QAAA,CAAS,OAAA,EAAS,eAAe,IAAA,EAAM;AACjE,IAAA,WAAA,CAAY,UAAA,GAAa,IAAA;AAAA,EAC3B;AAGA,EAAA,IAAI,SAAS,QAAA,EAAU,KAAA,EAAO,WAAA,CAAY,KAAA,GAAQ,SAAS,QAAA,CAAS,KAAA;AACpE,EAAA,IAAI,SAAS,QAAA,EAAU,MAAA,EAAQ,WAAA,CAAY,MAAA,GAAS,SAAS,QAAA,CAAS,MAAA;AACtE,EAAA,IAAI,SAAS,QAAA,EAAU,SAAA,EAAW,WAAA,CAAY,SAAA,GAAY,SAAS,QAAA,CAAS,SAAA;AAE5E,EAAA,MAAM,IAAA,GAAO,iBAAA;AAAA,IACX,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,OAAA,GAAU,CAAA;AAAA,EAAQA,SAAA,CAAc,WAAW,CAAA,CAAE,IAAA,EAAM;AAAA;;AAAA,EAAY,IAAI,CAAA,CAAA;AACzE,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,cAAA,EAAgB,CAAA,EAAG,SAAS,CAAA,GAAA,CAAK,CAAA;AACvD,EAAA,UAAA,CAAW,QAAA,EAAU,OAAA,EAAS,aAAA,EAAe,OAAA,EAAS,OAAO,CAAA;AAE7D,EAAA,OAAO,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,EAAS;AACtC;AAYA,IAAM,iBAAiB,CAAC,OAAA,EAAS,MAAA,EAAQ,WAAA,EAAa,gBAAgB,MAAM,CAAA;AAG5E,SAAS,iBAAiB,KAAA,EAAwD;AAChF,EAAA,MAAM,OAAA,GAAU,KAAA,EAAO,OAAA,IAAW,EAAC;AACnC,EAAA,MAAM,SAAS,IAAI,GAAA,CAAI,KAAA,EAAO,MAAA,IAAU,EAAE,CAAA;AAC1C,EAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,IAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAC,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,IAAM,cAAA,CAAqC,QAAA,CAAS,CAAC,CAAC,IAC1F,MAAA,GACA,WAAA;AAAA,EACN;AAEA,EAAA,OAAO,cAAA,CAAe,MAAM,CAAC,CAAA,KAAM,OAAO,GAAA,CAAI,CAAC,CAAC,CAAA,GAAI,WAAA,GAAc,MAAA;AACpE;AAGO,IAAM,kBAAA,GAAqB;AAiB3B,IAAM,gBAA+B,CAAC;AAAA,EAC3C,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,MAAM,WAAqB,EAAC;AAE5B,EAAA,MAAM,YAAA,GAAe,iBAAA;AAAA,IACnB,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,OAAA,GAAU,sBAAsB,YAAY,CAAA;AAElD,EAAA,MAAM,KAAA,GAAkB;AAAA,IACtB,CAAA,OAAA,EAAU,IAAA,CAAK,SAAA,CAAU,SAAS,CAAC,CAAA,CAAA;AAAA,IACnC,CAAA,cAAA,EAAiB,KAAK,SAAA,CAAU,QAAA,CAAS,eAAe,CAAA,EAAG,SAAS,QAAQ,CAAC,CAAA;AAAA,GAC/E;AAEA,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,QAAA,CAAS,KAAK,CAAA,EAAG,SAAA;AAC5C,EAAA,IAAI,KAAA,QAAa,IAAA,CAAK,CAAA,QAAA,EAAW,KAAK,SAAA,CAAU,KAAK,CAAC,CAAA,CAAE,CAAA;AACxD,EAAA,MAAM,WAAA,GAAc,gBAAA,CAAiB,QAAA,CAAS,KAAK,CAAA;AACnD,EAAA,IAAI,WAAA,QAAmB,IAAA,CAAK,CAAA,eAAA,EAAkB,KAAK,SAAA,CAAU,WAAW,CAAC,CAAA,CAAE,CAAA;AAC3E,EAAA,KAAA,CAAM,IAAA,CAAK,CAAA,4BAAA,CAAA,EAAgC,OAAA,CAAQ,IAAA,IAAQ,CAAA,GAAA,CAAK,CAAA;AAEhE,EAAA,MAAM,OAAA,GAAU,CAAA,EAAG,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC;AAAA,CAAA;AACnC,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,cAAA,EAAgB,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO,CAAA;AACzD,EAAA,UAAA,CAAW,QAAA,EAAU,OAAA,EAAS,aAAA,EAAe,OAAA,EAAS,OAAO,CAAA;AAK7D,EAAA,MAAM,WAAA,GAAc,KAAK,OAAA,CAAQ,cAAc,GAAG,kBAAA,EAAoB,CAAA,EAAG,SAAS,CAAA,GAAA,CAAK,CAAA;AACvF,EAAA,UAAA,CAAW,WAAA,EAAa,YAAA,EAAc,aAAA,EAAe,OAAA,EAAS,OAAO,CAAA;AAErE,EAAA,OAAO,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,EAAS;AACtC;AA4BO,IAAM,cAA6B,CAAC;AAAA,EACzC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,MAAM,WAAqB,EAAC;AAE5B,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,EAAgB,SAAS,CAAA;AAG9C,EAAA,MAAM,SAAA,GAAqC;AAAA,IACzC,YAAA,EAAc,SAAS,YAAA,IAAgB,KAAA;AAAA,IACvC,IAAA,EAAM,SAAA;AAAA,IACN,OAAA,EAAS,SAAS,OAAA,IAAW,OAAA;AAAA,IAC7B,WAAA,EAAa,QAAA,CAAS,WAAA,IAAe,CAAA,EAAG,SAAS,CAAA,MAAA,CAAA;AAAA,IACjD;AAAA,GACF;AAUA,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,QAAA,CAAS,KAAK,CAAA;AACzC,EAAA,IAAI,KAAA,YAAiB,KAAA,GAAQ,KAAA;AAC7B,EAAA,IAAI,QAAA,CAAS,KAAA,EAAO,SAAA,CAAU,KAAA,GAAQ,QAAA,CAAS,KAAA;AAC/C,EAAA,IAAI,QAAA,CAAS,UAAA,EAAY,SAAA,CAAU,UAAA,GAAa,QAAA,CAAS,UAAA;AACzD,EAAA,IAAI,QAAA,CAAS,OAAA,EAAS,SAAA,CAAU,OAAA,GAAU,QAAA,CAAS,OAAA;AACnD,EAAA,IAAI,QAAA,CAAS,EAAA,EAAI,SAAA,CAAU,EAAA,GAAK,QAAA,CAAS,EAAA;AACzC,EAAA,IAAI,QAAA,CAAS,MAAA,EAAQ,SAAA,CAAU,MAAA,GAAS,QAAA,CAAS,MAAA;AACjD,EAAA,IAAI,QAAA,CAAS,QAAA,EAAU,MAAA,EAAQ,SAAA,CAAU,WAAW,QAAA,CAAS,QAAA;AAC7D,EAAA,IAAI,QAAA,CAAS,YAAA,EAAc,MAAA,EAAQ,SAAA,CAAU,eAAe,QAAA,CAAS,YAAA;AACrE,EAAA,IAAI,QAAA,CAAS,UAAU,MAAA,EAAQ;AAC7B,IAAA,SAAA,CAAU,QAAA,GAAW,mBAAA;AAAA,MACnB,QAAA,CAAS,QAAA;AAAA,MACT,MAAA;AAAA,MACA,OAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,QAAA,CAAS,IAAA,EAAM,MAAA,EAAQ,SAAA,CAAU,OAAO,QAAA,CAAS,IAAA;AACrD,EAAA,IAAI,QAAA,CAAS,QAAA,EAAU,SAAA,CAAU,QAAA,GAAW,QAAA,CAAS,QAAA;AAErD,EAAA,UAAA,CAAW,IAAA,CAAK,OAAA,EAAS,YAAY,CAAA,EAAGA,SAAA,CAAc,SAAS,CAAA,EAAG,aAAA,EAAe,EAAC,EAAG,OAAO,CAAA;AAG5F,EAAA,MAAM,YAAA,GAAe,iBAAA;AAAA,IACnB,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,UAAA,CAAW,IAAA,CAAK,SAAS,SAAS,CAAA,EAAG,cAAc,aAAA,EAAe,IAAI,OAAO,CAAA;AAK7E,EAAA,MAAM,WAAA,GAAuC;AAAA,IAC3C,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,QAAA,CAAS,WAAA,IAAe,CAAA,EAAG,SAAS,CAAA,MAAA;AAAA,GACnD;AACA,EAAA,IAAI,QAAA,CAAS,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ,WAAA,CAAY,QAAQ,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACzF,EAAA,MAAM,WAAW,KAAA,EAAO,SAAA;AACxB,EAAA,IAAI,QAAA,cAAsB,KAAA,GAAQ,QAAA;AAClC,EAAA,UAAA;AAAA,IACE,IAAA,CAAK,cAAA,EAAgB,CAAA,EAAG,SAAS,CAAA,GAAA,CAAK,CAAA;AAAA,IACtC,CAAA;AAAA,EAAQA,SAAA,CAAc,WAAW,CAAA,CAAE,IAAA,EAAM;AAAA;;AAAA,EAAY,YAAY,CAAA,CAAA;AAAA,IACjE,aAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAA,CAAQ,IAAA,CAAK,QAAA,CAAS,aAAA,EAAe,OAAO,CAAC,CAAA;AAC7C,EAAA,OAAO,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,EAAS;AACtC;AAKA,IAAM,OAAY,MAAM;AAAC,CAAA;AAalB,SAAS,sBAAA,CACd,KAAA,EACA,YAAA,EACA,GAAA,GAAW,IAAA,EACQ;AACnB,EAAA,MAAM,QAAA,GAAW,gBAAgB,YAAY,CAAA;AAC7C,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO;AAAA,MACL,SAAS,EAAC;AAAA,MACV,SAAS,EAAC;AAAA,MACV,QAAA,EAAU,CAAC,CAAA,2BAAA,EAA8B,YAAY,CAAA,CAAA,CAAG;AAAA,KAC1D;AAAA,EACF;AACA,EAAA,MAAM,MAAA,GAAS,SAAS,KAAK,CAAA;AAC7B,EAAA,KAAA,MAAW,KAAK,MAAA,CAAO,OAAA,EAAS,GAAA,CAAI,CAAA,kBAAA,EAAqB,CAAC,CAAA,CAAE,CAAA;AAC5D,EAAA,KAAA,MAAW,KAAK,MAAA,CAAO,QAAA,EAAU,GAAA,CAAI,CAAA,QAAA,EAAW,CAAC,CAAA,CAAE,CAAA;AACnD,EAAA,OAAO,MAAA;AACT;AAUO,IAAM,eAAA,GAAiD;AAAA,EAC5D,aAAA,EAAe,kBAAA;AAAA,EACf,GAAA,EAAK,WAAA;AAAA,EACL,KAAA,EAAO;AACT;AASO,SAAS,2BAA2B,YAAA,EAA+B;AACxE,EAAA,OAAO,YAAA,IAAgB,eAAA;AACzB","file":"chunk-7QWQTA5S.js","sourcesContent":["/**\n * Framework-specific renderers for GitAgent packages.\n *\n * Each renderer transforms a parsed GitAgent package (agent.yaml + SOUL.md + RULES.md)\n * into the native file format that the target agent framework natively reads.\n *\n * Only harnesses with a full bridge driver (runtime execution) are included:\n * claude-code → .claude/agents/<name>.md (YAML frontmatter + markdown body)\n * omp → .omp/agents/<name>/ (directory with agent.yaml + SOUL.md)\n * codex → .codex/agents/<name>.toml (TOML)\n *\n * Removed (no bridge driver): cursor, roo, github-copilot, gemini, amp.\n * Add them back when a bridge driver is implemented.\n */\n\nimport {\n existsSync,\n lstatSync,\n mkdirSync,\n readdirSync,\n readFileSync,\n writeFileSync,\n} from \"node:fs\";\nimport { basename, dirname, join, normalize, relative, resolve } from \"node:path\";\nimport { buildAgentPromptSections } from \"@skaile/workspaces/core\";\nimport {\n ANTHROPIC_MODEL_ALIASES,\n type AgentLifecycle,\n type AgentManifest,\n normalizeAnthropicModel,\n} from \"@skaile/workspaces/types/manifests\";\nimport { stringify as stringifyYaml } from \"yaml\";\nimport type { AbilityRef, ContractRef } from \"./fragments.js\";\n\n// ── Types ─────────────────────────────────��───────────────────────────────────\n\nexport type { AgentManifest };\n\n/**\n * All data an {@link AgentRenderer} needs to produce a native agent definition file.\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport interface AgentRenderInput {\n /** Parsed `agent.yaml` manifest for the GitAgent being rendered. */\n manifest: AgentManifest;\n /** Raw content of `SOUL.md`, or `null` if absent. */\n soul: string | null;\n /** Raw content of `RULES.md`, or `null` if absent. */\n rules: string | null;\n /** Raw content of `DUTIES.md`, or `null` if absent. */\n duties: string | null;\n /** Agent name used as the output filename and frontmatter `name` field. */\n agentName: string;\n /** Resolved absolute path to the framework's agent deploy directory (e.g. `.claude/agents/`). */\n agentDeployDir: string;\n /** Absolute path to the workspace root. */\n workspaceRoot: string;\n /** Resolved ability refs — installed skills referenced in the `## Installed Abilities` section. */\n abilityRefs: AbilityRef[];\n /** Resolved contract refs — installed in the skills dir, listed in the `## Contracts` section. */\n contractRefs: ContractRef[];\n /** Resolved framework fragment markdown blocks (agent-mode, handoff, skill-discovery, etc.). */\n frameworkFragments: string[];\n /** Per-project prompt extension markdown blocks loaded from `skaile.yaml` `agent.prompt-extensions`. */\n promptExtensions: string[];\n /** `standing` (long-running identity) or `role` (short-lived, callable). */\n lifecycle: AgentLifecycle;\n /** Names of the skills the agent composes (`composes[{kind: skill}]`), as installed. */\n skills: string[];\n /** Names of the MCP servers the agent's `mcp-server` slots are bound to. */\n mcpServers: string[];\n /**\n * Absolute path of the agent's source directory (where `agent.yaml` lives). The omp renderer\n * copies the local `composes` directories out of it.\n */\n srcDir?: string;\n}\n\n/**\n * Result returned by every {@link AgentRenderer}.\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport interface AgentRenderResult {\n /** Paths to files/dirs rendered, relative to `workspaceRoot`. */\n created: string[];\n /** The subset of `created` whose bytes differ from what was on disk before (new or edited); an identical rewrite is skipped. */\n changed: string[];\n /** Non-fatal warnings (e.g. experimental feature notices). */\n warnings: string[];\n}\n\n/**\n * A function that transforms an {@link AgentRenderInput} into framework-native agent definition files.\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport type AgentRenderer = (input: AgentRenderInput) => AgentRenderResult;\n\n// ── Helpers ───────────────────────────────────────────────────────────────────\n\n/**\n * Write an agent definition file. Agents are compiled artifacts — they must\n * reflect the current canonical source — but a file that already holds exactly\n * these bytes is left untouched (mtime included), so a repeat install is a no-op.\n * `created` lists every rendered path; `changed` only those that were (re)written.\n */\nfunction writeAgent(\n filePath: string,\n content: string,\n workspaceRoot: string,\n created: string[],\n changed: string[],\n): void {\n const rel = relative(workspaceRoot, filePath);\n created.push(rel);\n if (existsSync(filePath)) {\n try {\n if (readFileSync(filePath, \"utf-8\") === content) return;\n } catch {\n // unreadable (e.g. a directory in the way): fall through to the write\n }\n }\n mkdirSync(dirname(filePath), { recursive: true });\n writeFileSync(filePath, content, \"utf-8\");\n changed.push(rel);\n}\n\n/**\n * Build the full agent system prompt body baked into the framework-native agent file.\n *\n * This is the sole source of the agent's system prompt body. Agent identity is rendered at install time; the harness reads it natively at runtime.\n * The rendered output ends up in .claude/agents/<name>.md, .omp/agents/<name>/SOUL.md,\n * .codex/agents/<name>.toml and is read natively by the framework on every agent invocation.\n *\n * Section order is owned by the shared builder (`buildAgentPromptSections` in\n * core, the same one the runner assembles its system prompt with):\n * soul → `<MEMORY>` → framework fragments → `## Constraints` (RULES) →\n * `## Duties` → `## Installed Abilities` → `## Contracts` → composed inline\n * blocks → prompt extensions.\n */\nfunction buildMarkdownBody(\n soul: string | null,\n rules: string | null,\n duties: string | null,\n abilityRefs: AbilityRef[],\n contractRefs: ContractRef[],\n frameworkFragments: string[],\n promptExtensions: string[],\n): string {\n const sections = buildAgentPromptSections({\n soul,\n constraints: rules,\n duties,\n abilities: abilityRefs,\n contracts: contractRefs,\n frameworkFragments,\n promptExtensions,\n });\n return `${sections.map((s) => s.text).join(\"\\n\\n\")}\\n`;\n}\n\n/** Escape a string for use as a TOML multi-line basic string (triple-quote). */\nfunction toTomlMultilineString(s: string): string {\n // Replace \"\"\" with \\\\\"\"\" to avoid breaking the TOML literal\n return s.replace(/\"\"\"/g, '\\\\\"\\\\\"\\\\\"');\n}\n\n/**\n * The manifest's `model` as a harness other than Claude Code can take it: the Claude Code\n * aliases (`inherit`, `opus`, `sonnet`, `haiku`) name no model of another harness' provider, so a\n * `preferred` that is one of them is dropped (the harness starts the agent on its own default) and\n * so is a `fallback` entry that is. Any other selector (`provider/model`, a full id, `@role`) is\n * the author's choice and is passed through. `undefined` when nothing is left.\n */\nfunction harnessModel(model: AgentManifest[\"model\"]): AgentManifest[\"model\"] | undefined {\n if (!model) return undefined;\n const claudeOnly = (m: string): boolean =>\n (ANTHROPIC_MODEL_ALIASES as readonly string[]).includes(m);\n const { preferred, fallback, ...rest } = model;\n const kept: NonNullable<AgentManifest[\"model\"]> = { ...rest };\n if (preferred && !claudeOnly(preferred)) kept.preferred = preferred;\n const fallbacks = (fallback ?? []).filter((m) => !claudeOnly(m));\n if (fallbacks.length > 0) kept.fallback = fallbacks;\n return Object.keys(kept).length > 0 ? kept : undefined;\n}\n\n/** Directory entries that are never part of an asset (build and OS leftovers). */\nconst COPY_SKIP = new Set([\".git\", \".DS_Store\", \"node_modules\", \"__pycache__\"]);\n\n/** Copy a file or directory tree byte for byte; a file that already holds these bytes is left alone. */\nfunction copyTree(from: string, to: string, workspaceRoot: string, changed: string[]): void {\n const stat = lstatSync(from);\n if (stat.isSymbolicLink()) return;\n if (stat.isDirectory()) {\n for (const name of readdirSync(from)) {\n if (COPY_SKIP.has(name) || name.endsWith(\".pyc\")) continue;\n copyTree(join(from, name), join(to, name), workspaceRoot, changed);\n }\n return;\n }\n if (!stat.isFile()) return;\n const bytes = readFileSync(from);\n if (existsSync(to)) {\n try {\n if (bytes.equals(readFileSync(to))) return;\n } catch {\n // unreadable (e.g. a directory in the way): fall through to the write\n }\n }\n mkdirSync(dirname(to), { recursive: true });\n writeFileSync(to, bytes);\n changed.push(relative(workspaceRoot, to));\n}\n\n/**\n * Make the `composes` of an omp `agent.yaml` resolvable from where it is written: every local ref\n * (`./rules-local/house-rules`) is copied next to the `agent.yaml`, at the path the ref names, and a\n * local ref that climbs out of the agent directory (`../shared/rules`) is copied to\n * `composes/<name>` and rewritten to that path. Catalog refs (`skill:@pub/name`) are kept as written.\n */\nfunction bundleLocalComposes(\n composes: NonNullable<AgentManifest[\"composes\"]>,\n srcDir: string | undefined,\n destDir: string,\n workspaceRoot: string,\n changed: string[],\n warnings: string[],\n): NonNullable<AgentManifest[\"composes\"]> {\n if (!srcDir) return composes;\n return composes.map((item) => {\n if (!item.ref.startsWith(\"./\") && !item.ref.startsWith(\"../\")) return item;\n const from = resolve(srcDir, item.ref);\n if (!existsSync(from)) {\n warnings.push(`compose ref ${item.ref} not found at ${from}: not copied into ${destDir}`);\n return item;\n }\n const rel = normalize(item.ref);\n const inside = !rel.startsWith(\"..\");\n const target = inside ? rel : join(\"composes\", basename(from));\n copyTree(from, join(destDir, target), workspaceRoot, changed);\n return inside ? item : { ...item, ref: `./${target}` };\n });\n}\n\n// ── Claude Code ────────────��──────────────────────────────────────────────────\n// Format: .claude/agents/<name>.md\n// Sub-agent support: automatic (description-based) + @-mention\n// Required frontmatter: name, description\n//\n// Installation → runtime handoff:\n// skaile install (claudeCodeRenderer) creates the .md file from GitAgent source\n// ClaudeSdkDriver.startQuery() passes options.agent = agentName to the SDK query\n// The SDK reads .claude/agents/<agentName>.md to get model, tools, and system prompt\n// This is equivalent to running: claude --agent <agentName>\n\n/**\n * Render a GitAgent to Claude Code's `.claude/agents/<name>.md` format.\n *\n * Writes YAML frontmatter (name, description, model, tools, skills, mcpServers,\n * maxTurns, background) followed by the enriched system prompt body. `skills`\n * lists the composed skills, `mcpServers` the MCP servers the agent's\n * `mcp-server` slots are bound to, and `background: true` marks a `role`\n * instance whose `runtime.background` is set. Always overwrites to reflect\n * current source.\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport const claudeCodeRenderer: AgentRenderer = ({\n manifest,\n soul,\n rules,\n duties,\n agentName,\n agentDeployDir,\n workspaceRoot,\n abilityRefs,\n contractRefs,\n frameworkFragments,\n promptExtensions,\n lifecycle,\n skills,\n mcpServers,\n}) => {\n const created: string[] = [];\n const changed: string[] = [];\n const warnings: string[] = [];\n\n const frontmatter: Record<string, unknown> = {\n name: agentName,\n description: manifest.description ?? `${agentName} agent`,\n };\n\n // Model: map to Claude Code's model field. Accepts aliases (sonnet/opus/haiku/inherit)\n // or a full Anthropic ID. Unrecognized values (e.g. legacy `claude-opus-4`) are\n // coerced to the matching family alias so the agent still loads.\n if (manifest.model?.preferred) {\n const raw = manifest.model.preferred;\n const normalized = normalizeAnthropicModel(raw);\n if (normalized !== raw) {\n warnings.push(\n `agent ${agentName}: model \"${raw}\" is not a valid Claude model ID; normalized to alias \"${normalized}\". Update agent.yaml.`,\n );\n }\n frontmatter.model = normalized;\n }\n\n // Tool restrictions\n if (manifest.tools?.allowed?.length) {\n frontmatter.tools = manifest.tools.allowed.join(\", \");\n }\n if (manifest.tools?.denied?.length) {\n frontmatter.disallowedTools = manifest.tools.denied.join(\", \");\n }\n\n if (skills.length > 0) frontmatter.skills = skills;\n if (mcpServers.length > 0) frontmatter.mcpServers = mcpServers;\n\n // Runtime\n if (manifest.runtime?.max_turns) {\n frontmatter.maxTurns = manifest.runtime.max_turns;\n }\n if (lifecycle === \"role\" && manifest.runtime?.background === true) {\n frontmatter.background = true;\n }\n\n // Metadata pass-through for Claude Code-specific fields\n if (manifest.metadata?.color) frontmatter.color = manifest.metadata.color;\n if (manifest.metadata?.effort) frontmatter.effort = manifest.metadata.effort;\n if (manifest.metadata?.isolation) frontmatter.isolation = manifest.metadata.isolation;\n\n const body = buildMarkdownBody(\n soul,\n rules,\n duties,\n abilityRefs,\n contractRefs,\n frameworkFragments,\n promptExtensions,\n );\n const content = `---\\n${stringifyYaml(frontmatter).trim()}\\n---\\n\\n${body}`;\n const filePath = join(agentDeployDir, `${agentName}.md`);\n writeAgent(filePath, content, workspaceRoot, created, changed);\n\n return { created, changed, warnings };\n};\n\n// ── OpenAI Codex ──────────────────────────────────────────────────────────────\n// Format: .codex/agents/<name>.toml\n// Sub-agent support: explicit user request only (not automatic)\n// Required fields: name, description, developer_instructions\n\n/**\n * Tools that change the workspace or run commands. Codex has no per-agent tool\n * allowlist; the closest per-agent control is `sandbox_mode`, so an agent whose\n * declared tool surface contains none of these is rendered `read-only`.\n */\nconst MUTATING_TOOLS = [\"Write\", \"Edit\", \"MultiEdit\", \"NotebookEdit\", \"Bash\"] as const;\n\n/** `read-only` when the manifest's tool surface cannot mutate anything, else `undefined` (inherit). */\nfunction codexSandboxMode(tools: AgentManifest[\"tools\"]): \"read-only\" | undefined {\n const allowed = tools?.allowed ?? [];\n const denied = new Set(tools?.denied ?? []);\n if (allowed.length > 0) {\n return allowed.some((t) => !denied.has(t) && (MUTATING_TOOLS as readonly string[]).includes(t))\n ? undefined\n : \"read-only\";\n }\n // No allowlist: everything not denied is available.\n return MUTATING_TOOLS.every((t) => denied.has(t)) ? \"read-only\" : undefined;\n}\n\n/** Directory (next to `agents/`) holding each Codex agent's markdown identity, one file per agent. */\nexport const CODEX_IDENTITY_DIR = \"skaile-agents\";\n\n/**\n * Render a GitAgent to OpenAI Codex's `.codex/agents/<name>.toml` format.\n *\n * Produces a TOML file with `name`, `description`, `model`, `sandbox_mode` and\n * `developer_instructions`. `sandbox_mode = \"read-only\"` is the per-agent tool\n * restriction: it is emitted when the manifest's `tools` leave the agent no way\n * to write or run commands (Codex has no per-tool allowlist). Triple-quoted\n * TOML multi-line strings are escaped to avoid syntax errors.\n *\n * Also writes the agent's identity as `.codex/skaile-agents/<name>.md`, which\n * the Codex driver combines with the session's runtime prompt (one file per\n * agent, so several instances never overwrite each other).\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport const codexRenderer: AgentRenderer = ({\n manifest,\n soul,\n rules,\n duties,\n agentName,\n agentDeployDir,\n workspaceRoot,\n abilityRefs,\n contractRefs,\n frameworkFragments,\n promptExtensions,\n}) => {\n const created: string[] = [];\n const changed: string[] = [];\n const warnings: string[] = [];\n\n const instructions = buildMarkdownBody(\n soul,\n rules,\n duties,\n abilityRefs,\n contractRefs,\n frameworkFragments,\n promptExtensions,\n );\n const escaped = toTomlMultilineString(instructions);\n\n const lines: string[] = [\n `name = ${JSON.stringify(agentName)}`,\n `description = ${JSON.stringify(manifest.description ?? `${agentName} agent`)}`,\n ];\n // A Claude Code alias (`sonnet`) names no Codex model: leave `model` out and Codex uses its own.\n const model = harnessModel(manifest.model)?.preferred;\n if (model) lines.push(`model = ${JSON.stringify(model)}`);\n const sandboxMode = codexSandboxMode(manifest.tools);\n if (sandboxMode) lines.push(`sandbox_mode = ${JSON.stringify(sandboxMode)}`);\n lines.push(`developer_instructions = \"\"\"`, escaped.trim(), `\"\"\"`);\n\n const content = `${lines.join(\"\\n\")}\\n`;\n const filePath = join(agentDeployDir, `${agentName}.toml`);\n writeAgent(filePath, content, workspaceRoot, created, changed);\n\n // Write the full agent identity as markdown for the Codex driver to read at runtime.\n // The driver combines this with the session's dynamic content (resources, context)\n // and passes the result via model_instructions_file.\n const agentMdPath = join(dirname(agentDeployDir), CODEX_IDENTITY_DIR, `${agentName}.md`);\n writeAgent(agentMdPath, instructions, workspaceRoot, created, changed);\n\n return { created, changed, warnings };\n};\n\n// ── oh-my-pi ─��────────────��────────────────────────────────��─────────────────\n// Format: .omp/agents/<name>/ (directory with agent.yaml + SOUL.md + RULES.md)\n// oh-my-pi reads GitAgent directories natively via PI_CODING_AGENT_DIR.\n// The renderer copies/enriches the source directory rather than flattening to .md.\n//\n// Installation → runtime handoff:\n// skaile install (ompRenderer) creates .omp/agents/<name>/ from GitAgent source\n// OmpDriver._start() sets env.PI_CODING_AGENT_DIR = agentDir in the child process\n// omp reads SOUL.md/RULES.md/knowledge/ from that directory natively on startup\n//\n// Note: REPL mode can bypass the install step — agentDir can point directly to the\n// GitAgent source directory, and omp will read it natively via PI_CODING_AGENT_DIR.\n// The rendered .omp/agents/ copy is only needed when the source is not accessible\n// from the project cwd (e.g. different repo, remote workspace).\n\n/**\n * Render a GitAgent to oh-my-pi's `.omp/agents/<name>/` directory format.\n *\n * Writes `agent.yaml` (resolved model/tools/delegation plus the 0.2\n * declaration — `composes` verbatim, `lifecycle`, `io`, `memory`, `triggers`,\n * `capabilities`) and an enriched `SOUL.md` that includes fragments and\n * extensions. omp reads this directory natively via the `PI_CODING_AGENT_DIR`\n * environment variable.\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport const ompRenderer: AgentRenderer = ({\n manifest,\n soul,\n rules,\n duties,\n agentName,\n agentDeployDir,\n workspaceRoot,\n abilityRefs,\n contractRefs,\n frameworkFragments,\n promptExtensions,\n lifecycle,\n srcDir,\n}) => {\n const created: string[] = [];\n const changed: string[] = [];\n const warnings: string[] = [];\n\n const destDir = join(agentDeployDir, agentName);\n\n // Write agent.yaml with tools resolved\n const agentYaml: Record<string, unknown> = {\n spec_version: manifest.spec_version ?? \"0.2\",\n name: agentName,\n version: manifest.version ?? \"1.0.0\",\n description: manifest.description ?? `${agentName} agent`,\n lifecycle,\n };\n // The model: omp takes provider-prefixed full IDs and `@role` selectors, and resolves the\n // family aliases it knows (verified live 2026-09-20 against omp v18.1.10 through\n // teamclaude.postxl.com: `--model anthropic/opus` produced\n // `model_change {\"model\":\"anthropic/claude-opus-5\",\"resolvedModelIsFallback\":false}`).\n // The Claude Code aliases the manifest writes (`sonnet`, `haiku`, `opus`, `inherit`) name no\n // model of an omp deployment on another provider, so they are left out and omp starts the agent\n // on its own default. Any other selector is passed through verbatim: it is not checked here, and\n // not coerced by `normalizeAnthropicModel`, which would substitute a different model on any\n // provider but Anthropic (see `resolveManifestModel` in `@skaile/workspaces/bridge`).\n const model = harnessModel(manifest.model);\n if (model) agentYaml.model = model;\n if (manifest.tools) agentYaml.tools = manifest.tools;\n if (manifest.delegation) agentYaml.delegation = manifest.delegation;\n if (manifest.runtime) agentYaml.runtime = manifest.runtime;\n if (manifest.io) agentYaml.io = manifest.io;\n if (manifest.memory) agentYaml.memory = manifest.memory;\n if (manifest.triggers?.length) agentYaml.triggers = manifest.triggers;\n if (manifest.capabilities?.length) agentYaml.capabilities = manifest.capabilities;\n if (manifest.composes?.length) {\n agentYaml.composes = bundleLocalComposes(\n manifest.composes,\n srcDir,\n destDir,\n workspaceRoot,\n changed,\n warnings,\n );\n }\n if (manifest.tags?.length) agentYaml.tags = manifest.tags;\n if (manifest.metadata) agentYaml.metadata = manifest.metadata;\n\n writeAgent(join(destDir, \"agent.yaml\"), stringifyYaml(agentYaml), workspaceRoot, [], changed);\n\n // Write SOUL.md (enriched with fragments and extensions, like other renderers)\n const enrichedSoul = buildMarkdownBody(\n soul,\n rules,\n duties,\n abilityRefs,\n contractRefs,\n frameworkFragments,\n promptExtensions,\n );\n writeAgent(join(destDir, \"SOUL.md\"), enrichedSoul, workspaceRoot, [], changed);\n\n // omp lists the agents it can spawn from flat `.omp/agents/<name>.md` files only (verified live\n // against omp 18.12.5: a `<name>/agent.yaml` directory is not listed, a flat file is), so the\n // directory above carries the full GitAgent package and this file is what omp loads.\n const frontmatter: Record<string, unknown> = {\n name: agentName,\n description: manifest.description ?? `${agentName} agent`,\n };\n if (manifest.tools?.allowed?.length) frontmatter.tools = manifest.tools.allowed.join(\", \");\n const selector = model?.preferred;\n if (selector) frontmatter.model = selector;\n writeAgent(\n join(agentDeployDir, `${agentName}.md`),\n `---\\n${stringifyYaml(frontmatter).trim()}\\n---\\n\\n${enrichedSoul}`,\n workspaceRoot,\n created,\n changed,\n );\n\n created.push(relative(workspaceRoot, destDir));\n return { created, changed, warnings };\n};\n\n// ── Renderer registry ──────────────────────────────���──────────────────────────\n\nexport type Log = (msg: string) => void;\nconst noop: Log = () => {};\n\n/**\n * Render an agent to framework-native format via the renderer registry.\n *\n * Shared by both the simple deploy path (`deployAsset`) and the enriched scaffold path (agents layer).\n *\n * @param input - Full render input including manifest, SOUL/RULES text, and resolved refs.\n * @param driverTarget - Agent framework ID to look up in {@link AGENT_RENDERERS}.\n * @param log - Optional logger callback for progress messages.\n * @returns Object with `created` file paths and `warnings` list.\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport function renderAgentToFramework(\n input: AgentRenderInput,\n driverTarget: string,\n log: Log = noop,\n): AgentRenderResult {\n const renderer = AGENT_RENDERERS[driverTarget];\n if (!renderer) {\n return {\n created: [],\n changed: [],\n warnings: [`No renderer for framework \"${driverTarget}\"`],\n };\n }\n const result = renderer(input);\n for (const c of result.created) log(` rendered agent: ${c}`);\n for (const w of result.warnings) log(` warn: ${w}`);\n return result;\n}\n\n/**\n * Registry mapping framework IDs to their {@link AgentRenderer} functions.\n *\n * Only harnesses with a full bridge driver are registered. Add new entries\n * when a bridge driver is implemented in `workspaces/bridge/src/drivers/`.\n *\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport const AGENT_RENDERERS: Record<string, AgentRenderer> = {\n \"claude-code\": claudeCodeRenderer,\n omp: ompRenderer,\n codex: codexRenderer,\n};\n\n/**\n * Returns `true` if the given driver target supports file-based sub-agent installation.\n *\n * @param driverTarget - Agent framework ID to check.\n * @returns `true` when `driverTarget` has a registered entry in {@link AGENT_RENDERERS}.\n * @docLink packages/asset-manager/api-reference#renderers\n */\nexport function driverTargetSupportsAgents(driverTarget: string): boolean {\n return driverTarget in AGENT_RENDERERS;\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { parseFlowDefinition } from './chunk-MGGFBZWA.js';
1
+ import { parseFlowDefinition } from './chunk-X3RMRJNR.js';
2
2
  import { isAgentNode, isSubpromptNode, isSubFlowNode, nodeBindings, isRouterNode, nodeIsOptional, nodeSkillId, nodeLabel, isActiveRuntimeNode } from './chunk-7RGTAEG6.js';
3
3
  import { resolveFlowBindings, stableFlowJson, evaluateFlowExpression, FlowExpressionError, getConsumedOutputSchema, compileOutputFieldsSchema } from './chunk-NUELZWCF.js';
4
- import { aiResourceRoots } from './chunk-2FMEGSBN.js';
4
+ import { aiResourceRoots } from './chunk-T5TSLSRO.js';
5
5
  import { findKindDirs } from './chunk-A2ULN3KX.js';
6
6
  import * as path2 from 'path';
7
7
  import path2__default from 'path';
@@ -979,5 +979,5 @@ function findFlowFileInRoots(flowId, roots, opts = {}) {
979
979
  }
980
980
 
981
981
  export { FLOW_FILE_EXTENSIONS, FlowManifestSchema, appendAttempt, availableRouterFrontier, buildFlowExpressionContext, computeFlowState, computeFlowStateFromSnapshots, computeSkippable, countFailedAttempts, deriveCheckEvidence, evaluateRouterSelection, findFlowFileInRoots, flowFileCandidates, flowKindProvider, flowLookupRoots, hasAutomaticRetryBudget, interpolateNodeInstruction, isActiveExecutionExpired, isBlocking, loadAllFlowEntries, loadAllFlows, loadFlow, loadFlowEntriesFromDir, loadFlowsFromDir, nextAttemptNumber, persistedRouterSelection, planRouterSkips, producerOutputObtainedBy, projectAiAssetsRoots, remainingActiveExecutionMs, resolveAvailableRouter, resolveFlowOutputFields, resolveNextNodes, resolveNodeBindings, resolveTerminalFailureStatus, routerSelectionOutput, unsettledRouterBranchIds, validateConsumedNodeOutput, validateFlow };
982
- //# sourceMappingURL=chunk-7I5VRVDP.js.map
983
- //# sourceMappingURL=chunk-7I5VRVDP.js.map
982
+ //# sourceMappingURL=chunk-7XWUJC3A.js.map
983
+ //# sourceMappingURL=chunk-7XWUJC3A.js.map