@skaile/workspaces 5.10.0 → 5.11.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 (255) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +12 -0
  3. package/dist/{asset-feeds-ELEBTNUS.js → asset-feeds-CXGQIDFR.js} +18 -18
  4. package/dist/{asset-feeds-ELEBTNUS.js.map → asset-feeds-CXGQIDFR.js.map} +1 -1
  5. package/dist/asset-manager/catalog-deployer.js +7 -7
  6. package/dist/asset-manager/index.js +13 -13
  7. package/dist/asset-manager/installer.js +9 -9
  8. package/dist/asset-manager/renderers.js +8 -8
  9. package/dist/asset-manager/src/index.d.ts +103 -2
  10. package/dist/asset-manager/src/index.d.ts.map +1 -1
  11. package/dist/asset-manager/src/install-instances.d.ts.map +1 -1
  12. package/dist/asset-manager/src/installer.d.ts +23 -3
  13. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  14. package/dist/bridge/drivers/claude-sdk.js +10 -10
  15. package/dist/bridge/drivers/codex.js +9 -9
  16. package/dist/bridge/drivers/continue.js +9 -9
  17. package/dist/bridge/drivers/echo.js +1 -1
  18. package/dist/bridge/drivers/gemini.js +6 -6
  19. package/dist/bridge/drivers/goose.js +9 -9
  20. package/dist/bridge/drivers/omp.js +18 -2
  21. package/dist/bridge/drivers/omp.js.map +1 -1
  22. package/dist/bridge/drivers/opencode.js +9 -9
  23. package/dist/bridge/drivers/qwen.js +6 -6
  24. package/dist/bridge/index.js +11 -11
  25. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  26. package/dist/{chunk-3BEY4WK3.js → chunk-2F5AWQX5.js} +77 -11
  27. package/dist/chunk-2F5AWQX5.js.map +1 -0
  28. package/dist/{chunk-IJHH4DSW.js → chunk-3SM2DL2T.js} +8 -8
  29. package/dist/{chunk-IJHH4DSW.js.map → chunk-3SM2DL2T.js.map} +1 -1
  30. package/dist/{chunk-HJ5MCB3L.js → chunk-47U4GZ4M.js} +2 -2
  31. package/dist/{chunk-HJ5MCB3L.js.map → chunk-47U4GZ4M.js.map} +1 -1
  32. package/dist/{chunk-7CR6HT2X.js → chunk-4A4OD24G.js} +9 -9
  33. package/dist/{chunk-7CR6HT2X.js.map → chunk-4A4OD24G.js.map} +1 -1
  34. package/dist/{chunk-5QI2JYJC.js → chunk-6O2X3GPW.js} +2 -2
  35. package/dist/{chunk-5QI2JYJC.js.map → chunk-6O2X3GPW.js.map} +1 -1
  36. package/dist/{chunk-JZCSNEHK.js → chunk-ALEYHUC5.js} +42 -20
  37. package/dist/chunk-ALEYHUC5.js.map +1 -0
  38. package/dist/{chunk-4OV5DSBB.js → chunk-BNMZVPYA.js} +5 -5
  39. package/dist/chunk-BNMZVPYA.js.map +1 -0
  40. package/dist/{chunk-SBFW3CJH.js → chunk-CAHB6MHA.js} +5 -5
  41. package/dist/{chunk-SBFW3CJH.js.map → chunk-CAHB6MHA.js.map} +1 -1
  42. package/dist/{chunk-4P3KTUZH.js → chunk-CJERAGFY.js} +24 -13
  43. package/dist/chunk-CJERAGFY.js.map +1 -0
  44. package/dist/{chunk-MVQ3Q2HM.js → chunk-COH6FQAG.js} +4 -4
  45. package/dist/{chunk-MVQ3Q2HM.js.map → chunk-COH6FQAG.js.map} +1 -1
  46. package/dist/{chunk-ZGQTS3Y4.js → chunk-CPWLNZGJ.js} +3 -3
  47. package/dist/{chunk-ZGQTS3Y4.js.map → chunk-CPWLNZGJ.js.map} +1 -1
  48. package/dist/{chunk-MGGFBZWA.js → chunk-D3B36CYC.js} +4 -3
  49. package/dist/chunk-D3B36CYC.js.map +1 -0
  50. package/dist/{chunk-2JMLDZLP.js → chunk-DZMNFCWB.js} +416 -55
  51. package/dist/chunk-DZMNFCWB.js.map +1 -0
  52. package/dist/{chunk-GFCXNFTW.js → chunk-EDYHEMJA.js} +4 -4
  53. package/dist/{chunk-GFCXNFTW.js.map → chunk-EDYHEMJA.js.map} +1 -1
  54. package/dist/{chunk-PE36IF2D.js → chunk-FH7W6TJ4.js} +65 -31
  55. package/dist/chunk-FH7W6TJ4.js.map +1 -0
  56. package/dist/{chunk-G54USEUP.js → chunk-G4FFOV3N.js} +4 -4
  57. package/dist/{chunk-G54USEUP.js.map → chunk-G4FFOV3N.js.map} +1 -1
  58. package/dist/{chunk-HOHUEKES.js → chunk-GCHPUTA3.js} +3 -3
  59. package/dist/{chunk-HOHUEKES.js.map → chunk-GCHPUTA3.js.map} +1 -1
  60. package/dist/{chunk-TRSQP3JD.js → chunk-GV4DZ6MT.js} +20 -4
  61. package/dist/chunk-GV4DZ6MT.js.map +1 -0
  62. package/dist/{chunk-QG3HOJEK.js → chunk-HCEVNYSH.js} +3 -3
  63. package/dist/{chunk-QG3HOJEK.js.map → chunk-HCEVNYSH.js.map} +1 -1
  64. package/dist/{chunk-6HHE63CO.js → chunk-HZXUXHIV.js} +4 -4
  65. package/dist/{chunk-6HHE63CO.js.map → chunk-HZXUXHIV.js.map} +1 -1
  66. package/dist/{chunk-FRPBSUFH.js → chunk-IER3KIPH.js} +5 -5
  67. package/dist/{chunk-FRPBSUFH.js.map → chunk-IER3KIPH.js.map} +1 -1
  68. package/dist/{chunk-GEWAIQZ5.js → chunk-J4RBUFGM.js} +10 -12
  69. package/dist/chunk-J4RBUFGM.js.map +1 -0
  70. package/dist/{chunk-OOWHXOK6.js → chunk-M3B6EIJD.js} +4 -4
  71. package/dist/{chunk-OOWHXOK6.js.map → chunk-M3B6EIJD.js.map} +1 -1
  72. package/dist/{chunk-VLXDXRRX.js → chunk-MZG34MBZ.js} +3 -3
  73. package/dist/{chunk-VLXDXRRX.js.map → chunk-MZG34MBZ.js.map} +1 -1
  74. package/dist/{chunk-2FMEGSBN.js → chunk-PBBPZYVG.js} +31 -9
  75. package/dist/chunk-PBBPZYVG.js.map +1 -0
  76. package/dist/{chunk-CLTHEKHR.js → chunk-PQFHMQHQ.js} +4 -4
  77. package/dist/{chunk-CLTHEKHR.js.map → chunk-PQFHMQHQ.js.map} +1 -1
  78. package/dist/{chunk-SX5U422E.js → chunk-QVFAS5IO.js} +3 -3
  79. package/dist/{chunk-SX5U422E.js.map → chunk-QVFAS5IO.js.map} +1 -1
  80. package/dist/{chunk-JFXQEVLF.js → chunk-QZNJOHN6.js} +3 -3
  81. package/dist/{chunk-JFXQEVLF.js.map → chunk-QZNJOHN6.js.map} +1 -1
  82. package/dist/{chunk-V5TZH4GF.js → chunk-R7NHYEJF.js} +4 -4
  83. package/dist/{chunk-V5TZH4GF.js.map → chunk-R7NHYEJF.js.map} +1 -1
  84. package/dist/{chunk-V7PQZOBR.js → chunk-RYYLMBA2.js} +5 -5
  85. package/dist/{chunk-V7PQZOBR.js.map → chunk-RYYLMBA2.js.map} +1 -1
  86. package/dist/{chunk-WBYDAL6X.js → chunk-S3O3GKB7.js} +4 -4
  87. package/dist/{chunk-WBYDAL6X.js.map → chunk-S3O3GKB7.js.map} +1 -1
  88. package/dist/{chunk-Y34MSWEZ.js → chunk-SBSA3IQA.js} +3 -3
  89. package/dist/{chunk-Y34MSWEZ.js.map → chunk-SBSA3IQA.js.map} +1 -1
  90. package/dist/{chunk-Y63UQZ7P.js → chunk-T42WRQ4O.js} +3 -3
  91. package/dist/{chunk-Y63UQZ7P.js.map → chunk-T42WRQ4O.js.map} +1 -1
  92. package/dist/{chunk-OBVJ7RPW.js → chunk-T7CTHHG7.js} +3 -3
  93. package/dist/{chunk-OBVJ7RPW.js.map → chunk-T7CTHHG7.js.map} +1 -1
  94. package/dist/{chunk-7I5VRVDP.js → chunk-TCHRMVTO.js} +4 -4
  95. package/dist/{chunk-7I5VRVDP.js.map → chunk-TCHRMVTO.js.map} +1 -1
  96. package/dist/{chunk-NRDSGLCQ.js → chunk-VLTQGE2E.js} +65 -22
  97. package/dist/chunk-VLTQGE2E.js.map +1 -0
  98. package/dist/{chunk-Z2K6BGUR.js → chunk-WSBKB4CJ.js} +13 -13
  99. package/dist/{chunk-Z2K6BGUR.js.map → chunk-WSBKB4CJ.js.map} +1 -1
  100. package/dist/{chunk-3MKPZZRE.js → chunk-X77SUM4P.js} +3 -3
  101. package/dist/{chunk-3MKPZZRE.js.map → chunk-X77SUM4P.js.map} +1 -1
  102. package/dist/{chunk-XCNK4UE5.js → chunk-XDKH7XSA.js} +5 -5
  103. package/dist/{chunk-XCNK4UE5.js.map → chunk-XDKH7XSA.js.map} +1 -1
  104. package/dist/{chunk-TH4CTXHX.js → chunk-XUSALIEI.js} +6 -6
  105. package/dist/{chunk-TH4CTXHX.js.map → chunk-XUSALIEI.js.map} +1 -1
  106. package/dist/{chunk-3KHYGOEY.js → chunk-Y3HTGHJC.js} +3 -3
  107. package/dist/{chunk-3KHYGOEY.js.map → chunk-Y3HTGHJC.js.map} +1 -1
  108. package/dist/{chunk-YBQONMH2.js → chunk-YOH2L76X.js} +90 -50
  109. package/dist/chunk-YOH2L76X.js.map +1 -0
  110. package/dist/{chunk-32XKCNCL.js → chunk-ZCAJZ4B2.js} +3 -3
  111. package/dist/chunk-ZCAJZ4B2.js.map +1 -0
  112. package/dist/{chunk-IXWODEED.js → chunk-ZPWTOUTK.js} +43 -7
  113. package/dist/chunk-ZPWTOUTK.js.map +1 -0
  114. package/dist/cli/index.js +210 -163
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  117. package/dist/cli/src/commands/diff.d.ts +1 -1
  118. package/dist/cli/src/commands/diff.d.ts.map +1 -1
  119. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  120. package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
  121. package/dist/cli/src/commands/manage.d.ts +6 -0
  122. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  123. package/dist/cli/src/commands/outdated.d.ts.map +1 -1
  124. package/dist/cli/src/commands/project.d.ts +3 -1
  125. package/dist/cli/src/commands/project.d.ts.map +1 -1
  126. package/dist/cli/src/commands/run.d.ts.map +1 -1
  127. package/dist/cli/src/commands/update.d.ts.map +1 -1
  128. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  129. package/dist/cli/src/commands/why.d.ts +1 -0
  130. package/dist/cli/src/commands/why.d.ts.map +1 -1
  131. package/dist/cli/src/helpers.d.ts +12 -0
  132. package/dist/cli/src/helpers.d.ts.map +1 -1
  133. package/dist/cli/src/skill-checks.d.ts +14 -6
  134. package/dist/cli/src/skill-checks.d.ts.map +1 -1
  135. package/dist/connectors/config.js +5 -5
  136. package/dist/connectors/index.js +15 -15
  137. package/dist/{connectors-OXP2JBGI.js → connectors-4QWAKPHB.js} +18 -18
  138. package/dist/{connectors-OXP2JBGI.js.map → connectors-4QWAKPHB.js.map} +1 -1
  139. package/dist/core/index.js +6 -6
  140. package/dist/core/manifest.js +2 -2
  141. package/dist/core/models.js +1 -1
  142. package/dist/core/publish-manifest.js +2 -2
  143. package/dist/core/ref.js +1 -1
  144. package/dist/core/runtime-assets.js +5 -5
  145. package/dist/core/src/lock.d.ts +4 -3
  146. package/dist/core/src/lock.d.ts.map +1 -1
  147. package/dist/core/src/models.d.ts +1 -1
  148. package/dist/core/src/models.d.ts.map +1 -1
  149. package/dist/core/src/publish-manifest.d.ts +11 -1
  150. package/dist/core/src/publish-manifest.d.ts.map +1 -1
  151. package/dist/core/src/workspace-config.d.ts +4 -1
  152. package/dist/core/src/workspace-config.d.ts.map +1 -1
  153. package/dist/core/workspace-config.js +4 -4
  154. package/dist/deploy/index.js +6 -6
  155. package/dist/discovery/index.js +5 -5
  156. package/dist/discovery/src/source-config.d.ts.map +1 -1
  157. package/dist/{ensure-sources-5ISVIA4T.js → ensure-sources-2RONZKCU.js} +16 -16
  158. package/dist/{ensure-sources-5ISVIA4T.js.map → ensure-sources-2RONZKCU.js.map} +1 -1
  159. package/dist/factory-assets/connectors/box.js +15 -15
  160. package/dist/factory-assets/connectors/deploy.js +15 -15
  161. package/dist/factory-assets/connectors/devserver.js +15 -15
  162. package/dist/factory-assets/connectors/flow/adapter.js +15 -15
  163. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
  164. package/dist/factory-assets/connectors/flow/contract.js +1 -1
  165. package/dist/factory-assets/connectors/flow/engine.js +8 -8
  166. package/dist/factory-assets/connectors/flow/run-flow.js +17 -17
  167. package/dist/factory-assets/connectors/flow.js +15 -15
  168. package/dist/factory-assets/connectors/git.js +15 -15
  169. package/dist/factory-assets/connectors/gmail.js +15 -15
  170. package/dist/factory-assets/connectors/googledrive.js +15 -15
  171. package/dist/factory-assets/connectors/local.js +15 -15
  172. package/dist/factory-assets/connectors/mattermost.js +15 -15
  173. package/dist/factory-assets/connectors/memory.js +15 -15
  174. package/dist/factory-assets/connectors/minio.js +15 -15
  175. package/dist/factory-assets/connectors/postgres.js +15 -15
  176. package/dist/factory-assets/connectors/s3.js +15 -15
  177. package/dist/factory-assets/connectors/sharepoint.js +15 -15
  178. package/dist/factory-assets/connectors/sqlite.js +15 -15
  179. package/dist/factory-assets/connectors/static-server.js +15 -15
  180. package/dist/factory-assets/connectors/tunnel.js +15 -15
  181. package/dist/factory-assets/connectors/webdav.js +15 -15
  182. package/dist/factory-assets/connectors/xstate-store.js +15 -15
  183. package/dist/factory-assets/connectors/xstate.js +15 -15
  184. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +4 -2
  185. package/dist/{flows-HMSE76PO.js → flows-EQF2CH4U.js} +11 -11
  186. package/dist/{flows-HMSE76PO.js.map → flows-EQF2CH4U.js.map} +1 -1
  187. package/dist/{helpers-X6URBGSF.js → helpers-CFK6YP6R.js} +16 -16
  188. package/dist/{helpers-X6URBGSF.js.map → helpers-CFK6YP6R.js.map} +1 -1
  189. package/dist/library/index.js +10 -10
  190. package/dist/library/install.js +3 -3
  191. package/dist/library/src/index.d.ts +1 -1
  192. package/dist/library/src/index.d.ts.map +1 -1
  193. package/dist/library/src/local/library-dir.d.ts +26 -0
  194. package/dist/library/src/local/library-dir.d.ts.map +1 -1
  195. package/dist/library/src/local/library-manager.d.ts.map +1 -1
  196. package/dist/library/src/sync/git-driver.d.ts +2 -0
  197. package/dist/library/src/sync/git-driver.d.ts.map +1 -1
  198. package/dist/{library-publish-OS3JDW4S.js → library-publish-53UTB3MB.js} +51 -24
  199. package/dist/library-publish-53UTB3MB.js.map +1 -0
  200. package/dist/open-library-BOSPJVID.js +40 -0
  201. package/dist/{open-library-4QSUORI6.js.map → open-library-BOSPJVID.js.map} +1 -1
  202. package/dist/open-registry-4FI7HKET.js +32 -0
  203. package/dist/{open-registry-VCKS3MP5.js.map → open-registry-4FI7HKET.js.map} +1 -1
  204. package/dist/{paths-BVO56A25.js → paths-SUS4S4YT.js} +9 -9
  205. package/dist/{paths-BVO56A25.js.map → paths-SUS4S4YT.js.map} +1 -1
  206. package/dist/{plugin-store-X7GPWGBG.js → plugin-store-AGQDMING.js} +8 -8
  207. package/dist/{plugin-store-X7GPWGBG.js.map → plugin-store-AGQDMING.js.map} +1 -1
  208. package/dist/{project-PAXP46RD.js → project-I55A4O2T.js} +20 -20
  209. package/dist/{project-PAXP46RD.js.map → project-I55A4O2T.js.map} +1 -1
  210. package/dist/resolver/index.js +7 -7
  211. package/dist/runner/index.js +28 -28
  212. package/dist/runner/src/serve.d.ts.map +1 -1
  213. package/dist/runner/src/usage-limit-turn-hold.d.ts +51 -0
  214. package/dist/runner/src/usage-limit-turn-hold.d.ts.map +1 -0
  215. package/dist/sdk/asset-manager.js +13 -13
  216. package/dist/sdk/bridge.js +11 -11
  217. package/dist/sdk/core.js +6 -6
  218. package/dist/sdk/flow.js +8 -8
  219. package/dist/sdk/index.js +28 -28
  220. package/dist/sdk/resolver.js +7 -7
  221. package/dist/sdk/runner.js +28 -28
  222. package/dist/{setup-BV55VHWC.js → setup-7DQJKHUI.js} +21 -21
  223. package/dist/{setup-BV55VHWC.js.map → setup-7DQJKHUI.js.map} +1 -1
  224. package/dist/{skills-EDFUCJPX.js → skills-NUEN5NDX.js} +12 -12
  225. package/dist/{skills-EDFUCJPX.js.map → skills-NUEN5NDX.js.map} +1 -1
  226. package/dist/{source-E4VAT5RZ.js → source-G2LV5LVD.js} +21 -21
  227. package/dist/{source-E4VAT5RZ.js.map → source-G2LV5LVD.js.map} +1 -1
  228. package/dist/{source-manifest-publish-CLEE6TNH.js → source-manifest-publish-6RM7SWLZ.js} +23 -23
  229. package/dist/{source-manifest-publish-CLEE6TNH.js.map → source-manifest-publish-6RM7SWLZ.js.map} +1 -1
  230. package/dist/tui/index.js +59 -39
  231. package/dist/tui/index.js.map +1 -1
  232. package/dist/tui/src/repl.d.ts.map +1 -1
  233. package/dist/types/manifests.js +1 -1
  234. package/dist/types/src/manifests/preset.d.ts +1 -1
  235. package/dist/workspace-plugin/adapters/mcp.js +22 -22
  236. package/dist/workspace-plugin/adapters/omp.js +14 -14
  237. package/dist/workspace-plugin/index.js +1 -1
  238. package/package.json +1 -1
  239. package/dist/chunk-2FMEGSBN.js.map +0 -1
  240. package/dist/chunk-2JMLDZLP.js.map +0 -1
  241. package/dist/chunk-32XKCNCL.js.map +0 -1
  242. package/dist/chunk-3BEY4WK3.js.map +0 -1
  243. package/dist/chunk-4OV5DSBB.js.map +0 -1
  244. package/dist/chunk-4P3KTUZH.js.map +0 -1
  245. package/dist/chunk-GEWAIQZ5.js.map +0 -1
  246. package/dist/chunk-IXWODEED.js.map +0 -1
  247. package/dist/chunk-JZCSNEHK.js.map +0 -1
  248. package/dist/chunk-MGGFBZWA.js.map +0 -1
  249. package/dist/chunk-NRDSGLCQ.js.map +0 -1
  250. package/dist/chunk-PE36IF2D.js.map +0 -1
  251. package/dist/chunk-TRSQP3JD.js.map +0 -1
  252. package/dist/chunk-YBQONMH2.js.map +0 -1
  253. package/dist/library-publish-OS3JDW4S.js.map +0 -1
  254. package/dist/open-library-4QSUORI6.js +0 -40
  255. package/dist/open-registry-VCKS3MP5.js +0 -32
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../factory-assets/connectors/flow/contract/normalize.ts"],"names":["data","assets","parameters","control"],"mappings":"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","file":"chunk-D3B36CYC.js","sourcesContent":["import * as z from \"zod\";\nimport {\n FlowDefinitionSchema,\n parseFlowDefinitionStructure,\n type FlowDefinition,\n} from \"./schema.js\";\n\nconst successfullyParsedDefinitions = new WeakMap<object, string>();\n\nfunction valueFingerprint(value: unknown, ancestors: Set<object>): string | null {\n if (value === null) return \"null\";\n if (value === undefined) return \"undefined\";\n if (typeof value === \"string\") return `string:${JSON.stringify(value)}`;\n if (typeof value === \"boolean\") return `boolean:${value}`;\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) return null;\n return `number:${Object.is(value, -0) ? \"-0\" : value}`;\n }\n if (typeof value !== \"object\" || ancestors.has(value)) return null;\n\n ancestors.add(value);\n try {\n if (Array.isArray(value)) {\n if (Object.getPrototypeOf(value) !== Array.prototype) return null;\n if (Object.getOwnPropertySymbols(value).length > 0) return null;\n const names = Object.getOwnPropertyNames(value);\n if (names.length !== value.length + 1 || !names.includes(\"length\")) return null;\n const items: string[] = [];\n for (let index = 0; index < value.length; index += 1) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(index));\n if (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) return null;\n const item = valueFingerprint(descriptor.value, ancestors);\n if (item === null) return null;\n items.push(item);\n }\n return `array:[${items.join(\",\")}]`;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) return null;\n if (Object.getOwnPropertySymbols(value).length > 0) return null;\n const entries: string[] = [];\n for (const key of Object.getOwnPropertyNames(value).sort()) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !(\"value\" in descriptor) || !descriptor.enumerable) return null;\n const nested = valueFingerprint(descriptor.value, ancestors);\n if (nested === null) return null;\n entries.push(`${JSON.stringify(key)}:${nested}`);\n }\n return `object:{${entries.join(\",\")}}`;\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction definitionFingerprint(data: object): string | null {\n return valueFingerprint(data, new Set());\n}\n\nconst LegacyRouteSchema = z.looseObject({\n condition: z.string().min(1),\n target: z.string().min(1).nullable(),\n});\n\nconst LegacyNodeDataSchema = z.looseObject({\n skill: z.string().min(1).optional(),\n version: z.string().min(1).optional(),\n label: z.string().min(1).optional(),\n description: z.string().min(1).optional(),\n optional: z.boolean().optional(),\n approval: z.looseObject({ mandatory: z.boolean().optional() }).optional(),\n parameters: z.record(z.string(), z.unknown()).optional(),\n phase: z.string().min(1).optional(),\n parallel_group: z.string().min(1).optional(),\n flow: z.string().min(1).optional(),\n pass_context: z.boolean().optional(),\n message: z.string().min(1).optional(),\n routes: z.array(LegacyRouteSchema).optional(),\n assets: z.array(z.string().min(1)).optional(),\n});\n\nconst LegacyNodeSchema = z.looseObject({\n id: z.string().min(1),\n type: z.string().min(1).optional(),\n skill: z.string().min(1).optional(),\n label: z.string().min(1).optional(),\n description: z.string().min(1).optional(),\n data: LegacyNodeDataSchema.optional(),\n});\n\nconst LegacyEdgeSchema = z.looseObject({\n id: z.string().min(1).optional(),\n source: z.string().min(1),\n target: z.string().min(1),\n type: z.string().min(1).optional(),\n});\n\nconst LegacyFlowSchema = z.looseObject({\n id: z.string().min(1),\n version: z.string().min(1).optional(),\n name: z.string().min(1),\n description: z.string().min(1).optional(),\n requires: z.array(z.string().min(1)).optional(),\n globals: z.record(z.string(), z.unknown()).optional(),\n entry: z.string().min(1).optional(),\n nodes: z.array(LegacyNodeSchema).optional(),\n edges: z.array(LegacyEdgeSchema).optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\n/** Stable authored-path failure returned without exposing Zod as part of the public boundary. */\nexport interface FlowDefinitionIssue {\n /** Dot-separated authored-data path; the empty string identifies the root. */\n path: string;\n /** Human-readable reason the value failed contract validation. */\n message: string;\n}\n\n/** Inert legacy edge retained for round-tripping outside the closed authored-v2 vocabulary. */\nexport type LegacyCompatibilityEdge = {\n id: string;\n source: string;\n target: string;\n type: string;\n} & Record<string, unknown>;\n\n/** Normalized content whose nodes are strict v2 while inert legacy edges remain lossless. */\nexport type ParsedFlowDefinition = Omit<FlowDefinition, \"edges\"> & {\n edges: Array<FlowDefinition[\"edges\"][number] | LegacyCompatibilityEdge>;\n};\n\n/** Normalized authoring or compatibility content, or complete authored-path failures. */\nexport type FlowDefinitionParseResult =\n | { ok: true; data: ParsedFlowDefinition }\n | { ok: false; errors: FlowDefinitionIssue[] };\n\nfunction success(data: ParsedFlowDefinition): FlowDefinitionParseResult {\n const fingerprint = definitionFingerprint(data);\n if (fingerprint !== null) successfullyParsedDefinitions.set(data, fingerprint);\n return { ok: true, data };\n}\n\nfunction failure(error: z.ZodError): FlowDefinitionParseResult {\n return {\n ok: false,\n errors: error.issues.map((issue) => ({\n path: issue.path.map(String).join(\".\"),\n message: issue.message,\n })),\n };\n}\n\nconst LEGACY_DEFAULT_KEYS: Record<string, string> = {\n approval_mode: \"approval\",\n research_depth: \"researchDepth\",\n auto_review: \"autoReview\",\n verbosity: \"verbosity\",\n cli_mode: \"cliMode\",\n run_input: \"run_input\",\n};\n\n/**\n * v1 default keys that are dropped outright rather than carried through.\n * Deleting a key from {@link LEGACY_DEFAULT_KEYS} alone does not remove it —\n * `parameters` is an open passthrough bag, so an unmapped key survives under\n * `parameters.<key>`. Dropping has to be explicit.\n */\nconst DROPPED_LEGACY_DEFAULT_KEYS = new Set([\"subagent_mode\"]);\n\nfunction normalizeDefaults(globals: Record<string, unknown> | undefined): unknown {\n if (!globals) return undefined;\n const known: Record<string, unknown> = {};\n const parameters: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(globals)) {\n if (DROPPED_LEGACY_DEFAULT_KEYS.has(key)) continue;\n const normalizedKey = LEGACY_DEFAULT_KEYS[key];\n if (normalizedKey) {\n known[normalizedKey] = key === \"approval_mode\" && value === \"auto_approve\" ? \"auto\" : value;\n } else {\n parameters[key] = value;\n }\n }\n\n if (Object.keys(parameters).length > 0) known.parameters = parameters;\n return Object.keys(known).length > 0 ? known : undefined;\n}\n\nfunction normalizeMeta(value: Record<string, unknown> | undefined): unknown {\n if (!value) return undefined;\n const meta: Record<string, unknown> = {};\n if (typeof value.icon === \"string\") meta.icon = value.icon;\n if (typeof value.category === \"string\") meta.category = value.category;\n if (Array.isArray(value.tags)) meta.tags = value.tags;\n if (typeof value.stage === \"string\") meta.stage = value.stage;\n if (typeof value.onboarding === \"object\" && value.onboarding !== null) {\n const onboarding = value.onboarding as Record<string, unknown>;\n if (\n onboarding.input_style === \"freeform\" ||\n onboarding.input_style === \"structured\" ||\n onboarding.input_style === \"repo\"\n ) {\n meta.onboarding = {\n input_style: onboarding.input_style,\n ...(typeof onboarding.placeholder === \"string\"\n ? { placeholder: onboarding.placeholder }\n : {}),\n ...(Array.isArray(onboarding.fields) ? { fields: onboarding.fields } : {}),\n };\n }\n }\n return Object.keys(meta).length > 0 ? meta : undefined;\n}\n\nfunction normalizeLegacyBinding(value: unknown): unknown {\n if (typeof value === \"string\") {\n return value.replace(/\\$\\{([A-Za-z_][A-Za-z0-9_]*)\\}/g, (_match, key: string) => {\n const normalized = LEGACY_DEFAULT_KEYS[key];\n return `\\${defaults.${normalized ?? `parameters.${key}`}}`;\n });\n }\n if (Array.isArray(value)) return value.map(normalizeLegacyBinding);\n if (typeof value !== \"object\" || value === null) return value;\n return Object.fromEntries(\n Object.entries(value).map(([key, nested]) => [key, normalizeLegacyBinding(nested)]),\n );\n}\n\n/** Renders a non-string v1 check for display; a cyclic value must not escape as a throw. */\nfunction renderLegacyCheck(check: unknown): string {\n try {\n return JSON.stringify(check) ?? String(check);\n } catch {\n return String(check);\n }\n}\n\n/** The only v1 `on_fail` a gate can keep: a v2 gate always pauses for a human. */\nconst LEGACY_GATE_ON_FAIL = \"pause-for-human\";\n\ntype LegacyNode = z.infer<typeof LegacyNodeSchema>;\n\n/**\n * Converts a v1 `type: gate` into a first-class v2 gate that parks for a human.\n * A v1 `check` is legacy syntax the v2 evaluator cannot run, so the gate pauses\n * unconditionally and shows the criterion to the approver — pausing too often is\n * recoverable, silently never pausing is not. Shapes a v2 gate cannot honour are refused.\n */\nfunction normalizeLegacyGate(\n node: LegacyNode,\n index: number,\n label: string,\n description: string,\n):\n | { ok: true; node: { id: string } & Record<string, unknown> }\n | { ok: false; error: FlowDefinitionIssue } {\n const data = node.data ?? {};\n const raw = data as Record<string, unknown>;\n const refuse = (field: string, message: string) => ({\n ok: false as const,\n error: { path: `nodes.${index}.data.${field}`, message },\n });\n\n if (data.optional === true) {\n return refuse(\"optional\", `gate ${node.id} cannot be optional — a skippable gate never gates`);\n }\n if (raw.on_fail !== undefined && raw.on_fail !== LEGACY_GATE_ON_FAIL) {\n return refuse(\n \"on_fail\",\n `gate ${node.id} has unsupported on_fail ${JSON.stringify(raw.on_fail)}; only \"${LEGACY_GATE_ON_FAIL}\" can be preserved`,\n );\n }\n\n // The check is only ever shown, never evaluated, so an odd shape is rendered, not refused.\n const check =\n raw.check === undefined || raw.check === null || raw.check === \"\"\n ? undefined\n : typeof raw.check === \"string\"\n ? raw.check\n : renderLegacyCheck(raw.check);\n const basePrompt = data.message ?? description;\n const prompt =\n check !== undefined\n ? `${basePrompt}\\n\\nApproval criterion (not evaluated automatically): ${check}`\n : basePrompt;\n return {\n ok: true,\n node: {\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"gate\",\n prompt,\n schema: { kind: \"text\" },\n assets: data.assets && data.assets.length > 0 ? [...new Set(data.assets)] : undefined,\n },\n // No `contract.input`: a gate resolves no bindings, so v1 parameters would be dead weight.\n control: data.parallel_group ? { parallelGroup: data.parallel_group } : undefined,\n },\n };\n}\n\n/**\n * Converts a recognized v1 definition to strict v2 without mutating the authored input.\n * A v1 gate becomes a real v2 gate; other non-executable legacy nodes become inert\n * placeholders so dependency and terminal semantics survive.\n */\nexport function normalizeV1(data: unknown): FlowDefinitionParseResult {\n const legacyResult = LegacyFlowSchema.safeParse(data);\n if (!legacyResult.success) return failure(legacyResult.error);\n const legacy = legacyResult.data;\n\n const contradiction = (legacy.nodes ?? []).findIndex(\n (node) => node.data?.optional === true && node.data.approval?.mandatory === true,\n );\n if (contradiction !== -1) {\n return {\n ok: false,\n errors: [\n {\n path: `nodes.${contradiction}.data`,\n message: \"a node cannot be both optional and a mandatory approval gate\",\n },\n ],\n };\n }\n\n const nodes: Array<{ id: string } & Record<string, unknown>> = [];\n for (const [index, node] of (legacy.nodes ?? []).entries()) {\n const data = node.data ?? {};\n const kind = node.type;\n\n const label = data.label ?? node.label ?? data.skill ?? node.skill ?? node.id;\n const description = node.description ?? data.description ?? data.message ?? label;\n if (kind === \"sub-flow\" && data.flow) {\n const delegatedAsset = `flow:${data.flow}`;\n const assets = [...new Set([delegatedAsset, ...(data.assets ?? [])])];\n const parameters = data.parameters ?? {};\n const control = {\n optional: data.optional,\n parallelGroup: data.parallel_group,\n };\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"sub-flow\",\n flow: data.flow,\n passContext: data.pass_context,\n assets,\n },\n contract:\n Object.keys(parameters).length > 0\n ? { input: normalizeLegacyBinding(parameters) }\n : undefined,\n control: Object.values(control).some((value) => value !== undefined) ? control : undefined,\n });\n continue;\n }\n\n if (kind === \"gate\") {\n const gateResult = normalizeLegacyGate(node, index, label, description);\n if (!gateResult.ok) return { ok: false, errors: [gateResult.error] };\n nodes.push(gateResult.node);\n continue;\n }\n\n if (kind !== \"skill\") {\n const delegatedAsset = kind === \"sub-flow\" && data.flow ? `flow:${data.flow}` : undefined;\n const assets = [\n ...new Set([...(delegatedAsset ? [delegatedAsset] : []), ...(data.assets ?? [])]),\n ];\n const parameters = data.parameters ?? {};\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"router\",\n routes: [{ when: \"default\", target: null }],\n assets: assets.length > 0 ? assets : undefined,\n },\n contract: {\n requires: [{ expr: \"false\" }],\n input:\n Object.keys(parameters).length > 0 ? normalizeLegacyBinding(parameters) : undefined,\n },\n control: { optional: true, parallelGroup: data.parallel_group },\n });\n continue;\n }\n\n const parameters = { ...(data.parameters ?? {}) };\n const authoredInstruction = parameters.instructions;\n delete parameters.instructions;\n const instruction =\n typeof authoredInstruction === \"string\" && authoredInstruction.length > 0\n ? authoredInstruction\n : description;\n const skill = data.skill ?? node.skill;\n const skillAsset = skill\n ? `skill:${skill}${data.version !== undefined ? `#${data.version}` : \"\"}`\n : undefined;\n const assets = [...(skillAsset ? [skillAsset] : []), ...(data.assets ?? [])];\n const control = {\n optional: data.optional,\n parallelGroup: data.parallel_group,\n };\n\n nodes.push({\n id: node.id,\n label,\n description,\n phase: data.phase,\n run: {\n kind: \"agent\",\n instruction,\n assets: assets.length > 0 ? assets : undefined,\n },\n contract:\n Object.keys(parameters).length > 0\n ? { input: normalizeLegacyBinding(parameters) }\n : undefined,\n gate: data.approval?.mandatory === true ? { approval: \"mandatory\" } : undefined,\n control: Object.values(control).some((value) => value !== undefined) ? control : undefined,\n });\n }\n\n const nodeIds = new Set(nodes.map((node) => node.id));\n const edges = (legacy.edges ?? []).map((edge, index) => ({\n ...edge,\n id: edge.id ?? `${edge.source}-${edge.target}-${index}`,\n type: edge.type ?? \"optional\",\n }));\n\n const anchor =\n nodes.find((node) => node.id === legacy.entry) ?? (nodes.length > 0 ? nodes[0] : undefined);\n if (anchor && legacy.requires && legacy.requires.length > 0) {\n const run = anchor.run as Record<string, unknown>;\n const existingAssets = Array.isArray(run.assets) ? run.assets : [];\n run.assets = [...new Set([...existingAssets, ...legacy.requires])];\n }\n\n const candidate = {\n schemaVersion: 2,\n id: legacy.id,\n version: legacy.version ?? \"1.0.0\",\n name: legacy.name,\n description: legacy.description,\n defaults: normalizeDefaults(legacy.globals),\n entry: legacy.entry !== undefined && nodeIds.has(legacy.entry) ? legacy.entry : undefined,\n nodes,\n edges,\n meta: normalizeMeta({ ...(legacy.metadata ?? {}), ...(legacy.meta ?? {}) }),\n };\n const normalized = parseFlowDefinitionStructure({ ...candidate, edges: [] });\n if (!normalized.success) return failure(normalized.error);\n const parsed: ParsedFlowDefinition = { ...normalized.data, edges };\n return success(parsed);\n}\n\n/**\n * Parses strict v2 or normalizes v1, reusing an unchanged successful result across boundaries.\n * Only an absent own schema version permits compatibility normalization.\n */\nexport function parseFlowDefinition(data: unknown): FlowDefinitionParseResult {\n if (typeof data === \"object\" && data !== null) {\n const recorded = successfullyParsedDefinitions.get(data);\n if (recorded !== undefined && definitionFingerprint(data) === recorded) {\n return { ok: true, data: data as ParsedFlowDefinition };\n }\n }\n if (typeof data === \"object\" && data !== null && Object.hasOwn(data, \"schemaVersion\")) {\n // A v2 file without `version` reads as the catalog default `library index` records (0.1.0),\n // like every other kind: the file itself is not refused for it.\n const authored = Object.hasOwn(data, \"version\") ? data : { ...data, version: \"0.1.0\" };\n const result = FlowDefinitionSchema.safeParse(authored);\n return result.success ? success(result.data) : failure(result.error);\n }\n return normalizeV1(data);\n}\n"]}