@relayflows/sdk 2.0.24 → 2.0.26

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 (167) hide show
  1. package/dist/authored-flow-executor.d.ts +8 -0
  2. package/dist/authored-flow-executor.d.ts.map +1 -1
  3. package/dist/authored-flow-executor.js +40 -1
  4. package/dist/authored-flow-executor.js.map +1 -1
  5. package/dist/authored-flow-loader.d.ts +15 -2
  6. package/dist/authored-flow-loader.d.ts.map +1 -1
  7. package/dist/authored-flow-loader.js +33 -4
  8. package/dist/authored-flow-loader.js.map +1 -1
  9. package/dist/authored-hooks.d.ts +29 -0
  10. package/dist/authored-hooks.d.ts.map +1 -0
  11. package/dist/authored-hooks.js +117 -0
  12. package/dist/authored-hooks.js.map +1 -0
  13. package/dist/authored-node-entry.js +1 -0
  14. package/dist/authored-node-entry.js.map +1 -1
  15. package/dist/authored-root.d.ts +7 -0
  16. package/dist/authored-root.d.ts.map +1 -1
  17. package/dist/authored-root.js +14 -1
  18. package/dist/authored-root.js.map +1 -1
  19. package/dist/authored-source-authority.d.ts.map +1 -1
  20. package/dist/authored-source-authority.js +6 -0
  21. package/dist/authored-source-authority.js.map +1 -1
  22. package/dist/babysitter-catalog-export.d.ts +9 -0
  23. package/dist/babysitter-catalog-export.d.ts.map +1 -0
  24. package/dist/babysitter-catalog-export.js +36 -0
  25. package/dist/babysitter-catalog-export.js.map +1 -0
  26. package/dist/bundle-extensions.d.ts +19 -0
  27. package/dist/bundle-extensions.d.ts.map +1 -0
  28. package/dist/bundle-extensions.js +95 -0
  29. package/dist/bundle-extensions.js.map +1 -0
  30. package/dist/bundle-typescript.js +1 -1
  31. package/dist/bundle-typescript.js.map +1 -1
  32. package/dist/bundle.d.ts +11 -0
  33. package/dist/bundle.d.ts.map +1 -1
  34. package/dist/bundle.js +13 -4
  35. package/dist/bundle.js.map +1 -1
  36. package/dist/cli/add-extension.d.ts +28 -0
  37. package/dist/cli/add-extension.d.ts.map +1 -0
  38. package/dist/cli/add-extension.js +135 -0
  39. package/dist/cli/add-extension.js.map +1 -0
  40. package/dist/cli/add.d.ts +3 -0
  41. package/dist/cli/add.d.ts.map +1 -1
  42. package/dist/cli/add.js +8 -0
  43. package/dist/cli/add.js.map +1 -1
  44. package/dist/cli/build.d.ts.map +1 -1
  45. package/dist/cli/build.js +7 -2
  46. package/dist/cli/build.js.map +1 -1
  47. package/dist/cli/check-helper-body.d.ts.map +1 -1
  48. package/dist/cli/check-helper-body.js +4 -0
  49. package/dist/cli/check-helper-body.js.map +1 -1
  50. package/dist/cli/check-triggers.d.ts.map +1 -1
  51. package/dist/cli/check-triggers.js +25 -2
  52. package/dist/cli/check-triggers.js.map +1 -1
  53. package/dist/cli/check-typescript.d.ts.map +1 -1
  54. package/dist/cli/check-typescript.js +5 -1
  55. package/dist/cli/check-typescript.js.map +1 -1
  56. package/dist/cli/check.d.ts +24 -0
  57. package/dist/cli/check.d.ts.map +1 -1
  58. package/dist/cli/check.js.map +1 -1
  59. package/dist/cli/cloud-deploy.d.ts +1 -0
  60. package/dist/cli/cloud-deploy.d.ts.map +1 -1
  61. package/dist/cli/cloud-deploy.js +11 -1
  62. package/dist/cli/cloud-deploy.js.map +1 -1
  63. package/dist/cli/plugin.d.ts +50 -0
  64. package/dist/cli/plugin.d.ts.map +1 -0
  65. package/dist/cli/plugin.js +295 -0
  66. package/dist/cli/plugin.js.map +1 -0
  67. package/dist/cli-commands.d.ts +46 -3
  68. package/dist/cli-commands.d.ts.map +1 -1
  69. package/dist/cli-commands.js +32 -2
  70. package/dist/cli-commands.js.map +1 -1
  71. package/dist/cli.d.ts +2 -1
  72. package/dist/cli.d.ts.map +1 -1
  73. package/dist/cli.js +26 -1
  74. package/dist/cli.js.map +1 -1
  75. package/dist/cloud-deploy.d.ts +5 -0
  76. package/dist/cloud-deploy.d.ts.map +1 -1
  77. package/dist/cloud-deploy.js +7 -6
  78. package/dist/cloud-deploy.js.map +1 -1
  79. package/dist/cloud-run.d.ts +2 -0
  80. package/dist/cloud-run.d.ts.map +1 -1
  81. package/dist/cloud-run.js +14 -4
  82. package/dist/cloud-run.js.map +1 -1
  83. package/dist/failure-kinds.d.ts +2 -2
  84. package/dist/failure-kinds.d.ts.map +1 -1
  85. package/dist/flow-extension-compat.d.ts +18 -0
  86. package/dist/flow-extension-compat.d.ts.map +1 -0
  87. package/dist/flow-extension-compat.js +33 -0
  88. package/dist/flow-extension-compat.js.map +1 -0
  89. package/dist/flow-extension-loader.d.ts +92 -0
  90. package/dist/flow-extension-loader.d.ts.map +1 -0
  91. package/dist/flow-extension-loader.js +241 -0
  92. package/dist/flow-extension-loader.js.map +1 -0
  93. package/dist/flow-extension-manifest.d.ts +61 -0
  94. package/dist/flow-extension-manifest.d.ts.map +1 -0
  95. package/dist/flow-extension-manifest.js +188 -0
  96. package/dist/flow-extension-manifest.js.map +1 -0
  97. package/dist/flow-extension-submit.d.ts +38 -0
  98. package/dist/flow-extension-submit.d.ts.map +1 -0
  99. package/dist/flow-extension-submit.js +94 -0
  100. package/dist/flow-extension-submit.js.map +1 -0
  101. package/dist/flow-requirements.d.ts +13 -3
  102. package/dist/flow-requirements.d.ts.map +1 -1
  103. package/dist/flow-requirements.js +30 -0
  104. package/dist/flow-requirements.js.map +1 -1
  105. package/dist/plugin-github.d.ts +35 -0
  106. package/dist/plugin-github.d.ts.map +1 -0
  107. package/dist/plugin-github.js +92 -0
  108. package/dist/plugin-github.js.map +1 -0
  109. package/dist/plugin-loader.d.ts.map +1 -1
  110. package/dist/plugin-loader.js +5 -1
  111. package/dist/plugin-loader.js.map +1 -1
  112. package/dist/plugin-lock.d.ts +79 -0
  113. package/dist/plugin-lock.d.ts.map +1 -0
  114. package/dist/plugin-lock.js +203 -0
  115. package/dist/plugin-lock.js.map +1 -0
  116. package/dist/plugin-manifest.d.ts +5 -1
  117. package/dist/plugin-manifest.d.ts.map +1 -1
  118. package/dist/plugin-manifest.js +18 -0
  119. package/dist/plugin-manifest.js.map +1 -1
  120. package/dist/plugin-source.d.ts +38 -0
  121. package/dist/plugin-source.d.ts.map +1 -0
  122. package/dist/plugin-source.js +84 -0
  123. package/dist/plugin-source.js.map +1 -0
  124. package/dist/plugin-store.d.ts +30 -0
  125. package/dist/plugin-store.d.ts.map +1 -0
  126. package/dist/plugin-store.js +133 -0
  127. package/dist/plugin-store.js.map +1 -0
  128. package/dist/semver-range.d.ts +10 -0
  129. package/dist/semver-range.d.ts.map +1 -0
  130. package/dist/semver-range.js +88 -0
  131. package/dist/semver-range.js.map +1 -0
  132. package/package.json +9 -4
  133. package/src/authored-flow-executor.ts +60 -1
  134. package/src/authored-flow-loader.ts +49 -6
  135. package/src/authored-hooks.ts +136 -0
  136. package/src/authored-node-entry.ts +1 -0
  137. package/src/authored-root.ts +22 -1
  138. package/src/authored-source-authority.ts +6 -0
  139. package/src/babysitter-catalog-export.ts +44 -0
  140. package/src/bundle-extensions.ts +85 -0
  141. package/src/bundle-typescript.ts +1 -1
  142. package/src/bundle.ts +14 -4
  143. package/src/cli/add-extension.ts +134 -0
  144. package/src/cli/add.ts +9 -0
  145. package/src/cli/build.ts +7 -2
  146. package/src/cli/check-helper-body.ts +4 -0
  147. package/src/cli/check-triggers.ts +27 -2
  148. package/src/cli/check-typescript.ts +5 -1
  149. package/src/cli/check.ts +23 -0
  150. package/src/cli/cloud-deploy.ts +11 -1
  151. package/src/cli/plugin.ts +286 -0
  152. package/src/cli-commands.ts +32 -2
  153. package/src/cli.ts +23 -1
  154. package/src/cloud-deploy.ts +18 -8
  155. package/src/cloud-run.ts +16 -6
  156. package/src/flow-extension-compat.ts +35 -0
  157. package/src/flow-extension-loader.ts +304 -0
  158. package/src/flow-extension-manifest.ts +190 -0
  159. package/src/flow-extension-submit.ts +120 -0
  160. package/src/flow-requirements.ts +44 -3
  161. package/src/plugin-github.ts +98 -0
  162. package/src/plugin-loader.ts +5 -1
  163. package/src/plugin-lock.ts +194 -0
  164. package/src/plugin-manifest.ts +18 -0
  165. package/src/plugin-source.ts +91 -0
  166. package/src/plugin-store.ts +105 -0
  167. package/src/semver-range.ts +74 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-run.js","sourceRoot":"","sources":["../src/cloud-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-run.js","sourceRoot":"","sources":["../src/cloud-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA8B,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAA+B,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAgC,MAAM,4BAA4B,CAAC;AAChI,OAAO,EACL,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,GAErF,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAwCrF,4FAA4F;AAC5F,MAAM,UAAU,mBAAmB,CAAC,UAA2B;IAC7D,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,gBAAgB,EAAE,IAAI;QACtB,GAAG,CAAC,UAAU,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAC1G,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;KAC5H,CAAC;AACJ,CAAC;AA+BD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAqB,EACrB,UAAuD,EAAE;IAEzD,IAAI,IAA0B,CAAC;IAC/B,IAAI,QAA6K,CAAC;IAClL,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,aAAoC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtE,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,mDAAmD,CAAC,CAAC;gBACjG,CAAC;gBACD,IAAI,MAAoD,CAAC;gBACzD,IAAI,UAAmD,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3C,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,qEAAqE;oBACrE,oEAAoE;oBACpE,qEAAqE;oBACrE,MAAM,IAAI,cAAc,CAAC,oBAAoB,EAC3C,GAAG,IAAI,CAAC,IAAI,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;0BACzG,kDAAkD,CAAC,CAAC;gBAC1D,CAAC;gBACD,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBAC7D,QAAQ,GAAG;oBACT,MAAM;oBACN,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7F,UAAU;oBACV,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;wBACvB,aAAa,EAAE,CAAC;wBAChB,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC9D,UAAU,EAAE,KAAK,CAAC,MAAM;wBACxB,OAAO,EAAE,MAAM,CAAC,gBAAgB;qBACjC,CAAC;iBACH,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,cAAc,CAAC,oBAAoB,EAC3C,2EAA2E,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAY,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC;oBACH,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAClD,0EAA0E;oBAC1E,yEAAyE;oBACzE,IAAI,CAAC;wBACH,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,iGAAiG,CAAC,CAAC;YAC/I,CAAC;YACD,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,6DAA6D,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,KAAK,YAAY,cAAc;YAAE,MAAM,KAAK,CAAC;QACjD,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,sFAAsF,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAK,CAAC,CAAC;QACnC,yEAAyE;QACzE,mEAAmE;QACnE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;YACtG,IAAI,EAAE,IAAK,CAAC,IAAI,IAAI,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAAC,SAAS;QAChF,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7F,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAChF,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACjD,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa;YACnD,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG;iBACnE,CAAC,CAAC;aACJ,CAAC;SACH,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAClB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAqB,EACrB,UAA6B,EAAE;IAE/B,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;IACjC,6EAA6E;IAC7E,uEAAuE;IACvE,yEAAyE;IACzE,wCAAwC;IACxC,IAAI,MAA4G,CAAC;IACjH,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACjC,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;YAC1G,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IACjC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IACrB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,CAAC,uBAAuB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC/G,GAAG,mBAAmB,CAAC,UAAU,CAAC;gBAClC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;gBAClF,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aACpF,CAAC,EAAE,CAAC,CAAC;IACR,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,KAAK,YAAY,cAAc,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS;eAC5E,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,yCAAyC,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;YACjD,MAAM,IAAI,cAAc,CAAC,oBAAoB,EAC3C,2EAA2E,QAAQ,IAAI,wBAAwB,GAAG;kBAChH,iCAAiC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,IAAI;kBACjF,mHAAmH,EACrH,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,uCAAuC,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,MAAM,IAAI,cAAc,CAAC,kBAAkB,EACzC,sBAAsB,KAAK,yCAAyC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,0BAA0B,KAAK,EAAE;QACjG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;KAC7H,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,UAAkC,EAAE;IAEpC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,0BAA0B,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI;WACnF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;WACjC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAE,sBAA4C,CAAC,QAAQ,CAAC,MAAM,CAAC;WAC5F,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;WAC1I,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;WACpF,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,yGAAyG,CAAC,CAAC;IAC1J,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAA8C,EAAE,gBAAgB,EAAE,MAA6B,EAAE,CAAC;AACnI,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAa,EACb,UAAgE,EAAE;IAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;QACzE,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,oDAAoD,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,CAAC;QACR,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,QAAQ,GAAG,CAAC,CAAC;YACb,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,GAAG,CAAC;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,KAAK,YAAY,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB;mBACjF,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,IAAI,CAAC,SAAS;gBAAE,MAAM,KAAK,CAAC;YAC5B,iFAAiF;YACjF,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EACrF,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /** Closed refusal taxonomy for public preflight (RFC covenant 2). */
2
- export declare const PREFLIGHT_FAILURE_KINDS: readonly ["invalid_spec", "unknown_gate_kind", "gate_pattern_invalid", "gate_command_missing", "gate_bound_invalid", "gate_path_invalid", "plugin_unknown", "plugin_unlisted", "plugin_install_failed", "plugin_manifest_missing", "plugin_manifest_invalid", "plugin_preflight_missing", "plugin_verb_unknown_primitive", "plugin_unsupported", "plugin_credential_missing", "plugin_server_unreachable", "helper_provider.mount_required", "helper_provider.unsupported", "helper_slack.credential_missing", "helper_slack.mount_required", "helper_mount_required", "mcp_undeclared_server", "mcp_unreachable", "budget_syntax_invalid", "cli_missing", "cli_unauthenticated", "cli_unresolved", "cli_unsupported", "command_missing", "model_unavailable", "model_unknown", "memory_unreachable", "no_executor", "probe_failed", "scope_syntax_invalid", "mount_unknown", "scope_ungrantable"];
2
+ export declare const PREFLIGHT_FAILURE_KINDS: readonly ["invalid_spec", "unknown_gate_kind", "gate_pattern_invalid", "gate_command_missing", "gate_bound_invalid", "gate_path_invalid", "plugin_unknown", "plugin_unlisted", "plugin_install_failed", "plugin_manifest_missing", "plugin_manifest_invalid", "plugin_preflight_missing", "plugin_verb_unknown_primitive", "plugin_unsupported", "plugin_credential_missing", "plugin_server_unreachable", "plugin_kind_invalid", "plugin_incompatible", "plugin_event_unroutable", "plugin_source_invalid", "plugin_event_ambiguous", "plugin_source_unresolved", "plugin_fetch_failed", "plugin_path_invalid", "plugin_too_large", "plugin_source_drift", "plugin_lock_invalid", "helper_provider.mount_required", "helper_provider.unsupported", "helper_slack.credential_missing", "helper_slack.mount_required", "helper_mount_required", "mcp_undeclared_server", "mcp_unreachable", "budget_syntax_invalid", "cli_missing", "cli_unauthenticated", "cli_unresolved", "cli_unsupported", "command_missing", "model_unavailable", "model_unknown", "memory_unreachable", "no_executor", "probe_failed", "scope_syntax_invalid", "mount_unknown", "scope_ungrantable"];
3
3
  /** Input/command refusals emitted before the pure preflight predicates run. */
4
4
  export declare const CHECK_INPUT_FAILURE_KINDS: readonly ["config_invalid", "input_invalid", "input_missing", "input_too_large", "input_unreadable", "invalid_invocation", "invalid_spec"];
5
- export declare const CHECK_FAILURE_KINDS: readonly ["config_invalid", "input_invalid", "input_missing", "input_too_large", "input_unreadable", "invalid_invocation", "invalid_spec", "unknown_gate_kind", "gate_pattern_invalid", "gate_command_missing", "gate_bound_invalid", "gate_path_invalid", "plugin_unknown", "plugin_unlisted", "plugin_install_failed", "plugin_manifest_missing", "plugin_manifest_invalid", "plugin_preflight_missing", "plugin_verb_unknown_primitive", "plugin_unsupported", "plugin_credential_missing", "plugin_server_unreachable", "helper_provider.mount_required", "helper_provider.unsupported", "helper_slack.credential_missing", "helper_slack.mount_required", "helper_mount_required", "mcp_undeclared_server", "mcp_unreachable", "budget_syntax_invalid", "cli_missing", "cli_unauthenticated", "cli_unresolved", "cli_unsupported", "command_missing", "model_unavailable", "model_unknown", "memory_unreachable", "no_executor", "probe_failed", "scope_syntax_invalid", "mount_unknown", "scope_ungrantable"];
5
+ export declare const CHECK_FAILURE_KINDS: readonly ["config_invalid", "input_invalid", "input_missing", "input_too_large", "input_unreadable", "invalid_invocation", "invalid_spec", "unknown_gate_kind", "gate_pattern_invalid", "gate_command_missing", "gate_bound_invalid", "gate_path_invalid", "plugin_unknown", "plugin_unlisted", "plugin_install_failed", "plugin_manifest_missing", "plugin_manifest_invalid", "plugin_preflight_missing", "plugin_verb_unknown_primitive", "plugin_unsupported", "plugin_credential_missing", "plugin_server_unreachable", "plugin_kind_invalid", "plugin_incompatible", "plugin_event_unroutable", "plugin_source_invalid", "plugin_event_ambiguous", "plugin_source_unresolved", "plugin_fetch_failed", "plugin_path_invalid", "plugin_too_large", "plugin_source_drift", "plugin_lock_invalid", "helper_provider.mount_required", "helper_provider.unsupported", "helper_slack.credential_missing", "helper_slack.mount_required", "helper_mount_required", "mcp_undeclared_server", "mcp_unreachable", "budget_syntax_invalid", "cli_missing", "cli_unauthenticated", "cli_unresolved", "cli_unsupported", "command_missing", "model_unavailable", "model_unknown", "memory_unreachable", "no_executor", "probe_failed", "scope_syntax_invalid", "mount_unknown", "scope_ungrantable"];
6
6
  /**
7
7
  * Warnings never refuse. Covenant 2 asks preflight to refuse *or warn* on
8
8
  * anything it cannot prove, so a deterministic step always leaves exactly one
@@ -1 +1 @@
1
- {"version":3,"file":"failure-kinds.d.ts","sourceRoot":"","sources":["../src/failure-kinds.ts"],"names":[],"mappings":"AA+BA,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,o2BAG1B,CAAC;AAEX,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,4IAQ5B,CAAC;AAEX,eAAO,MAAM,mBAAmB,q9BAGtB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,uBAAuB,qKAQ1B,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,8aAsBpB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,oCAEpB,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,oCAAqC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE"}
1
+ {"version":3,"file":"failure-kinds.d.ts","sourceRoot":"","sources":["../src/failure-kinds.ts"],"names":[],"mappings":"AA+BA,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,4mCAG1B,CAAC;AAEX,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,4IAQ5B,CAAC;AAEX,eAAO,MAAM,mBAAmB,6tCAGtB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,uBAAuB,qKAQ1B,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,8aAsBpB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,oCAEpB,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,oCAAqC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE"}
@@ -0,0 +1,18 @@
1
+ import type { FlowExtensionManifest } from './flow-extension-manifest.js';
2
+ export interface RuntimeVersions {
3
+ readonly sdk: string;
4
+ readonly surface: string;
5
+ }
6
+ /** The versions a plugin's `compat` is checked against: this SDK and the surface it pins. */
7
+ export declare function runtimeVersions(): RuntimeVersions;
8
+ /** `compat.surface` / `compat.sdk` against the runtime: a miss is a refusal, never a warning. */
9
+ export declare function assertCompatible(manifest: FlowExtensionManifest, versions: RuntimeVersions): void;
10
+ /**
11
+ * `compat.base` against the flow being extended. `FlowHeader.version` is
12
+ * optional: a base without it matches only `"*"`.
13
+ */
14
+ export declare function assertBaseCompatible(manifest: FlowExtensionManifest, base: {
15
+ readonly name: string;
16
+ readonly version?: string;
17
+ }): void;
18
+ //# sourceMappingURL=flow-extension-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-extension-compat.d.ts","sourceRoot":"","sources":["../src/flow-extension-compat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,MAAM,WAAW,eAAe;IAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAEnF,6FAA6F;AAC7F,wBAAgB,eAAe,IAAI,eAAe,CAGjD;AAED,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAIjG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUtI"}
@@ -0,0 +1,33 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { PluginError } from './plugin-manifest.js';
3
+ import { satisfiesRange } from './semver-range.js';
4
+ /** The versions a plugin's `compat` is checked against: this SDK and the surface it pins. */
5
+ export function runtimeVersions() {
6
+ const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
7
+ return { sdk: pkg.version, surface: pkg.dependencies['@relayflows/surface'] };
8
+ }
9
+ /** `compat.surface` / `compat.sdk` against the runtime: a miss is a refusal, never a warning. */
10
+ export function assertCompatible(manifest, versions) {
11
+ for (const [what, range, actual] of [['surface', manifest.compat.surface, versions.surface], ['sdk', manifest.compat.sdk, versions.sdk]]) {
12
+ if (!satisfiesRange(actual, range))
13
+ throw new PluginError('plugin_incompatible', `${manifest.name} requires ${what} ${range}; this runtime has ${actual}.`);
14
+ }
15
+ }
16
+ /**
17
+ * `compat.base` against the flow being extended. `FlowHeader.version` is
18
+ * optional: a base without it matches only `"*"`.
19
+ */
20
+ export function assertBaseCompatible(manifest, base) {
21
+ const entry = manifest.compat.base.find(b => b.name === base.name);
22
+ if (entry === undefined) {
23
+ throw new PluginError('plugin_incompatible', `${manifest.name} extends ${manifest.compat.base.map(b => b.name).join(', ')}, not "${base.name}".`);
24
+ }
25
+ if (base.version === undefined) {
26
+ if (entry.version !== '*')
27
+ throw new PluginError('plugin_incompatible', `${manifest.name} requires ${base.name} ${entry.version}, but the base flow declares no version; only "*" can be satisfied.`);
28
+ return;
29
+ }
30
+ if (!satisfiesRange(base.version, entry.version))
31
+ throw new PluginError('plugin_incompatible', `${manifest.name} requires ${base.name} ${entry.version}; the base flow is ${base.version}.`);
32
+ }
33
+ //# sourceMappingURL=flow-extension-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-extension-compat.js","sourceRoot":"","sources":["../src/flow-extension-compat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,6FAA6F;AAC7F,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAA8D,CAAC;IACvJ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAE,EAAE,CAAC;AACjF,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAAC,QAA+B,EAAE,QAAyB;IACzF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAU,EAAE,CAAC;QAClJ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,GAAG,QAAQ,CAAC,IAAI,aAAa,IAAI,IAAI,KAAK,sBAAsB,MAAM,GAAG,CAAC,CAAC;IAC9J,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA+B,EAAE,IAA0D;IAC9H,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,GAAG,QAAQ,CAAC,IAAI,YAAY,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IACpJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG;YAAE,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,GAAG,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,qEAAqE,CAAC,CAAC;QACtM,OAAO;IACT,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,GAAG,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,sBAAsB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAC/L,CAAC"}
@@ -0,0 +1,92 @@
1
+ import type { Ctx } from '@relayflows/surface';
2
+ import type { AuthoredFlowDefinition, FlowHandle } from './authored-flow.js';
3
+ import { type RuntimeVersions } from './flow-extension-compat.js';
4
+ import { type FlowExtensionManifest } from './flow-extension-manifest.js';
5
+ /**
6
+ * Compose schema-2 flow extensions onto a base authored flow.
7
+ *
8
+ * Order of operations is the security argument, so it is fixed:
9
+ * 1. `flows.json.plugins` and `flows.lock.json` must agree (declaration ⇔
10
+ * provenance, same order);
11
+ * 2. the materialized store is re-hashed against the lock's digest and the
12
+ * manifest bytes against the lock's manifest hash — nothing under
13
+ * `.flows/plugins` is read as code before this passes;
14
+ * 3. the manifest is validated, its compat checked against the runtime and
15
+ * the base flow, and anything this slice does not compose (hooks, `use`,
16
+ * schedule triggers, non-provider webhooks, gates) is refused;
17
+ * 4. only then is the entry imported, and its handlers are checked against
18
+ * the manifest's declared triggers — an entry cannot subscribe to more
19
+ * than it declared.
20
+ * Extensions compose after the base, in lock order; nothing replaces,
21
+ * reorders, or widens a base handler.
22
+ */
23
+ type TriggerHandler = AuthoredFlowDefinition['handlers'][number];
24
+ export type FlowHook = (f: Ctx, input: unknown) => Promise<boolean>;
25
+ export interface LoadedFlowExtension {
26
+ readonly name: string;
27
+ readonly version: string;
28
+ readonly ref: string;
29
+ readonly digest: string;
30
+ readonly directory: string;
31
+ readonly entryPath: string;
32
+ readonly manifest: FlowExtensionManifest;
33
+ readonly handle: FlowHandle;
34
+ /** Bound to the surface copy the entry itself imported; the base's accessor cannot see this handle's WeakMap entry. */
35
+ readonly getDefinition: ImportedFlow<unknown>['getDefinition'];
36
+ readonly handlers: readonly TriggerHandler[];
37
+ readonly hooks: Readonly<Record<string, FlowHook>>;
38
+ }
39
+ export interface ImportedFlow<Authority> {
40
+ readonly handle: FlowHandle;
41
+ readonly getDefinition: <Input = unknown>(handle: FlowHandle) => AuthoredFlowDefinition<Input>;
42
+ readonly surfaceAuthority: Authority;
43
+ readonly hooks: Readonly<Record<string, FlowHook>>;
44
+ }
45
+ export interface LoadFlowExtensionsOptions<Authority> {
46
+ readonly importFlow: (path: string) => Promise<ImportedFlow<Authority>>;
47
+ readonly sameAuthority: (a: Authority, b: Authority) => boolean;
48
+ readonly versions?: RuntimeVersions;
49
+ }
50
+ /** Credentials and servers declared on a flow-extension, probed before the base body starts. */
51
+ export declare function probeFlowExtension(manifest: FlowExtensionManifest, env?: NodeJS.ProcessEnv): Promise<void>;
52
+ /**
53
+ * Server-authenticated integration delivery metadata. This is executor
54
+ * authority, not authored input: a caller must derive it from its verified
55
+ * delivery record and pass it out of band. User-controlled `input.event`
56
+ * objects never become this value.
57
+ */
58
+ declare const HOSTED_EXTENSION_DISPATCH_AUTHORITY: unique symbol;
59
+ export type HostedExtensionDispatch = {
60
+ readonly [HOSTED_EXTENSION_DISPATCH_AUTHORITY]: true;
61
+ readonly provenance: 'integration-watch';
62
+ readonly provider: string;
63
+ readonly eventType: string;
64
+ readonly deliveryId: string;
65
+ };
66
+ /**
67
+ * Brand metadata only after the host has authenticated the integration
68
+ * delivery. The symbol is deliberately not serializable, so copying a direct
69
+ * run's JSON into executor options cannot mint dispatch authority.
70
+ */
71
+ export declare function hostedExtensionDispatchFromVerifiedDelivery(delivery: Omit<HostedExtensionDispatch, typeof HOSTED_EXTENSION_DISPATCH_AUTHORITY | 'provenance'>): HostedExtensionDispatch;
72
+ /**
73
+ * Resolve a server-authenticated delivery to one extension handler. Authored
74
+ * input is deliberately absent from this API: direct runs may contain any
75
+ * JSON shape and cannot opt themselves into extension execution. Overlapping
76
+ * subscriptions fail closed, including a generic event handler overlapping
77
+ * an action-specific handler.
78
+ */
79
+ export declare function extensionHandlerForHostedDispatch(dispatch: unknown, extensions: readonly Pick<LoadedFlowExtension, 'name' | 'handlers'>[]): {
80
+ readonly extension: Pick<LoadedFlowExtension, 'name' | 'handlers'>;
81
+ readonly handler: TriggerHandler;
82
+ } | undefined;
83
+ export declare function parseHooksExport(module: Record<string, unknown>, name: string): Readonly<Record<string, FlowHook>>;
84
+ /** Extensions declared by the project that owns `flowPath`, verified and loaded in lock order; empty when none are declared. */
85
+ export declare function loadFlowExtensions<Authority>(flowPath: string, base: {
86
+ readonly definition: AuthoredFlowDefinition;
87
+ readonly surfaceAuthority: Authority;
88
+ }, options: LoadFlowExtensionsOptions<Authority>): Promise<readonly LoadedFlowExtension[]>;
89
+ /** The base definition with extension handlers appended in lock order; the base's own fields are untouched. */
90
+ export declare function composeDefinition<Input>(base: AuthoredFlowDefinition<Input>, extensions: readonly LoadedFlowExtension[]): AuthoredFlowDefinition<Input>;
91
+ export {};
92
+ //# sourceMappingURL=flow-extension-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-extension-loader.d.ts","sourceRoot":"","sources":["../src/flow-extension-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { sha256 } from './bundle.js';
4
+ import { assertBaseCompatible, assertCompatible, runtimeVersions } from './flow-extension-compat.js';
5
+ import { validateFlowExtensionManifest } from './flow-extension-manifest.js';
6
+ import { findPluginProject } from './plugin-loader.js';
7
+ import { reconcileDeclaredExtensions } from './plugin-lock.js';
8
+ import { PluginError } from './plugin-manifest.js';
9
+ import { pluginStoreDirectory, verifyStoredPlugin } from './plugin-store.js';
10
+ const EXTENSION_HEADER_FIELDS = new Set(['budget', 'tools']);
11
+ const WALLCLOCK_MS = { ms: 1, s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 };
12
+ function wallclockMs(value) {
13
+ const match = /^(\d+)(ms|s|m|h|d)$/.exec(value);
14
+ if (!match)
15
+ return undefined;
16
+ const unit = match[2];
17
+ return Number(match[1]) * WALLCLOCK_MS[unit];
18
+ }
19
+ /** Credentials and servers declared on a flow-extension, probed before the base body starts. */
20
+ export async function probeFlowExtension(manifest, env = process.env) {
21
+ for (const credential of manifest.preflight.credentials) {
22
+ if (!env[credential]?.trim())
23
+ throw new PluginError('plugin_credential_missing', `${manifest.name} requires ${credential}.`);
24
+ }
25
+ for (const server of manifest.preflight.servers) {
26
+ try {
27
+ const response = await fetch(server, { method: 'HEAD', signal: AbortSignal.timeout(5000) });
28
+ await response.body?.cancel();
29
+ if (!response.ok)
30
+ throw new Error('unsuccessful response');
31
+ }
32
+ catch {
33
+ throw new PluginError('plugin_server_unreachable', `${manifest.name} cannot reach ${server}.`);
34
+ }
35
+ }
36
+ }
37
+ function unsupported(name, what) {
38
+ throw new PluginError('plugin_unsupported', `${name}: ${what} is not composed by this release.`);
39
+ }
40
+ /** The `{provider, event, action?}` a provider subscription lowers to, or undefined for anything else. */
41
+ function subscriptionOf(handler) {
42
+ const trigger = handler.trigger;
43
+ if (trigger.kind !== 'webhook' || trigger.filter === undefined)
44
+ return undefined;
45
+ const { provider, type, payload } = trigger.filter;
46
+ if (typeof provider !== 'string' || provider !== trigger.name || typeof type !== 'string')
47
+ return undefined;
48
+ const action = typeof payload === 'object' && payload !== null && !Array.isArray(payload) ? payload.action : undefined;
49
+ if (action !== undefined && typeof action !== 'string')
50
+ return undefined;
51
+ return action === undefined ? { provider, event: type } : { provider, event: type, action };
52
+ }
53
+ /**
54
+ * Server-authenticated integration delivery metadata. This is executor
55
+ * authority, not authored input: a caller must derive it from its verified
56
+ * delivery record and pass it out of band. User-controlled `input.event`
57
+ * objects never become this value.
58
+ */
59
+ const HOSTED_EXTENSION_DISPATCH_AUTHORITY = Symbol('hosted-extension-dispatch-authority');
60
+ const DISPATCH_PROVIDER = /^[a-z0-9][a-z0-9-]{0,63}$/;
61
+ const DISPATCH_EVENT = /^[A-Za-z_][A-Za-z0-9_]*$/;
62
+ const DISPATCH_DELIVERY = /^[A-Za-z0-9_.:-]{1,200}$/;
63
+ function hostedEventIdentity(dispatch) {
64
+ if (typeof dispatch !== 'object' || dispatch === null || Array.isArray(dispatch)) {
65
+ throw new PluginError('plugin_event_unroutable', 'Hosted extension dispatch authority is malformed.');
66
+ }
67
+ const { provenance, provider, eventType, deliveryId } = dispatch;
68
+ if (dispatch[HOSTED_EXTENSION_DISPATCH_AUTHORITY] !== true
69
+ || provenance !== 'integration-watch'
70
+ || typeof provider !== 'string' || !DISPATCH_PROVIDER.test(provider)
71
+ || typeof deliveryId !== 'string' || !DISPATCH_DELIVERY.test(deliveryId)
72
+ || typeof eventType !== 'string') {
73
+ throw new PluginError('plugin_event_unroutable', 'Hosted extension dispatch authority is malformed.');
74
+ }
75
+ const parts = eventType.split('.');
76
+ if ((parts.length !== 1 && parts.length !== 2) || parts.some(part => !DISPATCH_EVENT.test(part))) {
77
+ throw new PluginError('plugin_event_unroutable', `Hosted extension event ${JSON.stringify(eventType)} is malformed.`);
78
+ }
79
+ return parts.length === 1
80
+ ? { provider, event: parts[0] }
81
+ : { provider, event: parts[0], action: parts[1] };
82
+ }
83
+ /**
84
+ * Brand metadata only after the host has authenticated the integration
85
+ * delivery. The symbol is deliberately not serializable, so copying a direct
86
+ * run's JSON into executor options cannot mint dispatch authority.
87
+ */
88
+ export function hostedExtensionDispatchFromVerifiedDelivery(delivery) {
89
+ const dispatch = Object.freeze({
90
+ [HOSTED_EXTENSION_DISPATCH_AUTHORITY]: true,
91
+ provenance: 'integration-watch',
92
+ ...delivery,
93
+ });
94
+ hostedEventIdentity(dispatch);
95
+ return dispatch;
96
+ }
97
+ /**
98
+ * Resolve a server-authenticated delivery to one extension handler. Authored
99
+ * input is deliberately absent from this API: direct runs may contain any
100
+ * JSON shape and cannot opt themselves into extension execution. Overlapping
101
+ * subscriptions fail closed, including a generic event handler overlapping
102
+ * an action-specific handler.
103
+ */
104
+ export function extensionHandlerForHostedDispatch(dispatch, extensions) {
105
+ if (dispatch === undefined)
106
+ return undefined;
107
+ const identity = hostedEventIdentity(dispatch);
108
+ const matches = extensions.flatMap(extension => extension.handlers.flatMap(handler => {
109
+ const subscription = subscriptionOf(handler);
110
+ if (subscription === undefined || subscription.provider !== identity.provider || subscription.event !== identity.event)
111
+ return [];
112
+ if (subscription.action !== undefined && subscription.action !== identity.action)
113
+ return [];
114
+ return [{ extension, handler }];
115
+ }));
116
+ if (matches.length > 1) {
117
+ throw new PluginError('plugin_event_ambiguous', `Hosted event ${identity.provider}.${identity.event}${identity.action === undefined ? '' : `.${identity.action}`} matches multiple extension handlers (${matches.map(match => match.extension.name).join(', ')}).`);
118
+ }
119
+ return matches[0];
120
+ }
121
+ function assertDeclaredSubscription(name, manifest, handler, index) {
122
+ const subscription = subscriptionOf(handler);
123
+ if (handler.trigger.kind === 'schedule')
124
+ unsupported(name, `handler ${index} (a schedule trigger)`);
125
+ if (subscription === undefined) {
126
+ throw new PluginError('plugin_manifest_invalid', `${name}: handler ${index} is not a provider subscription; extension handlers must be provider triggers declared in flows-plugin.json.`);
127
+ }
128
+ const declared = manifest.triggers.find(t => t.provider === subscription.provider && t.event === subscription.event);
129
+ const covered = declared !== undefined && (subscription.action === undefined ? declared.actions.length === 0 : declared.actions.includes(subscription.action));
130
+ if (!covered) {
131
+ const spelled = `${subscription.provider} ${subscription.event}${subscription.action === undefined ? '' : `.${subscription.action}`}`;
132
+ throw new PluginError('plugin_manifest_invalid', `${name}: handler ${index} subscribes to ${spelled}, which flows-plugin.json does not declare in triggers.`);
133
+ }
134
+ }
135
+ async function loadOne(root, lock, ref, base, options) {
136
+ const directory = pluginStoreDirectory(root, lock.name, lock.digest);
137
+ await verifyStoredPlugin(directory, lock.digest);
138
+ const manifestBytes = readFileSync(join(directory, 'flows-plugin.json'));
139
+ if (sha256(manifestBytes) !== lock.manifestSha256)
140
+ throw new PluginError('plugin_source_drift', `${ref}: flows-plugin.json differs from the lockfile's manifest hash.`);
141
+ let input;
142
+ try {
143
+ input = JSON.parse(manifestBytes.toString('utf8'));
144
+ }
145
+ catch {
146
+ throw new PluginError('plugin_manifest_invalid', `${ref}: flows-plugin.json is not valid JSON.`);
147
+ }
148
+ const manifest = validateFlowExtensionManifest(input);
149
+ if (manifest.name !== lock.name || manifest.version !== lock.version)
150
+ throw new PluginError('plugin_source_drift', `${ref}: manifest names ${manifest.name}@${manifest.version}, lockfile has ${lock.name}@${lock.version}.`);
151
+ assertCompatible(manifest, options.versions ?? runtimeVersions());
152
+ assertBaseCompatible(manifest, { name: base.definition.name, version: base.definition.header.version });
153
+ const baseBudget = base.definition.header.budget;
154
+ const ceiling = manifest.permissions.budget;
155
+ if (ceiling?.dollars !== undefined && typeof baseBudget === 'object' && baseBudget.dollars !== undefined && ceiling.dollars > baseBudget.dollars) {
156
+ throw new PluginError('plugin_incompatible', `${manifest.name} declares a $${ceiling.dollars} budget ceiling above the base flow's $${baseBudget.dollars}.`);
157
+ }
158
+ if (ceiling?.wallclock !== undefined && typeof baseBudget === 'object' && baseBudget.wallclock !== undefined) {
159
+ const pluginMs = wallclockMs(ceiling.wallclock);
160
+ const baseMs = wallclockMs(baseBudget.wallclock);
161
+ if (pluginMs !== undefined && baseMs !== undefined && pluginMs > baseMs) {
162
+ throw new PluginError('plugin_incompatible', `${manifest.name} declares a ${ceiling.wallclock} wallclock ceiling above the base flow's ${baseBudget.wallclock}.`);
163
+ }
164
+ }
165
+ const entryPath = join(directory, manifest.entry);
166
+ let imported;
167
+ try {
168
+ imported = await options.importFlow(entryPath);
169
+ }
170
+ catch (error) {
171
+ throw new PluginError('plugin_manifest_invalid', `${ref}: entry ${manifest.entry} did not load: ${error instanceof Error ? error.message : String(error)}`);
172
+ }
173
+ if (!options.sameAuthority(imported.surfaceAuthority, base.surfaceAuthority)) {
174
+ throw new PluginError('plugin_incompatible', `${manifest.name}: entry resolves a different @relayflows/surface than the base flow.`);
175
+ }
176
+ const definition = imported.getDefinition(imported.handle);
177
+ const foreign = Object.keys(definition.header).filter(key => !EXTENSION_HEADER_FIELDS.has(key));
178
+ if (foreign.length > 0)
179
+ unsupported(manifest.name, `entry header ${foreign.join(', ')}`);
180
+ if (manifest.extends.handlers && definition.handlers.length === 0) {
181
+ throw new PluginError('plugin_manifest_invalid', `${manifest.name}: extends.handlers is true but ${manifest.entry} declares no .on() handlers.`);
182
+ }
183
+ if (!manifest.extends.handlers && definition.handlers.length > 0) {
184
+ throw new PluginError('plugin_manifest_invalid', `${manifest.name}: ${manifest.entry} declares handlers but extends.handlers is false.`);
185
+ }
186
+ definition.handlers.forEach((handler, index) => assertDeclaredSubscription(manifest.name, manifest, handler, index));
187
+ const hooks = imported.hooks;
188
+ const exported = Object.keys(hooks).sort();
189
+ const declared = [...manifest.extends.hooks].sort();
190
+ if (exported.join('\0') !== declared.join('\0')) {
191
+ throw new PluginError('plugin_manifest_invalid', `${manifest.name}: extends.hooks [${manifest.extends.hooks.join(', ')}] does not match exported hooks [${exported.join(', ')}].`);
192
+ }
193
+ const baseHooks = base.definition.header.hooks ?? [];
194
+ for (const hook of manifest.extends.hooks) {
195
+ if (!baseHooks.includes(hook)) {
196
+ throw new PluginError('plugin_incompatible', `${manifest.name}: hook ${hook} is not declared by the base flow.`);
197
+ }
198
+ }
199
+ return Object.freeze({
200
+ name: manifest.name, version: manifest.version, ref, digest: lock.digest, directory, entryPath, manifest,
201
+ handle: imported.handle, getDefinition: imported.getDefinition, handlers: Object.freeze([...definition.handlers]),
202
+ hooks,
203
+ });
204
+ }
205
+ export function parseHooksExport(module, name) {
206
+ const exported = module['hooks'];
207
+ if (exported === undefined)
208
+ return Object.freeze({});
209
+ if (typeof exported !== 'object' || exported === null || Array.isArray(exported)) {
210
+ throw new PluginError('plugin_manifest_invalid', `${name}: hooks export must be a record of functions.`);
211
+ }
212
+ const hooks = {};
213
+ for (const [key, value] of Object.entries(exported)) {
214
+ if (typeof value !== 'function') {
215
+ throw new PluginError('plugin_manifest_invalid', `${name}: hooks.${key} is not a function.`);
216
+ }
217
+ hooks[key] = value;
218
+ }
219
+ return Object.freeze(hooks);
220
+ }
221
+ /** Extensions declared by the project that owns `flowPath`, verified and loaded in lock order; empty when none are declared. */
222
+ export async function loadFlowExtensions(flowPath, base, options) {
223
+ const root = findPluginProject(dirname(flowPath));
224
+ if (root === undefined)
225
+ return Object.freeze([]);
226
+ const declared = reconcileDeclaredExtensions(root);
227
+ const loaded = [];
228
+ for (const { ref, entry } of declared)
229
+ loaded.push(await loadOne(root, entry, ref, base, options));
230
+ return Object.freeze(loaded);
231
+ }
232
+ /** The base definition with extension handlers appended in lock order; the base's own fields are untouched. */
233
+ export function composeDefinition(base, extensions) {
234
+ if (extensions.length === 0)
235
+ return base;
236
+ return Object.freeze({
237
+ ...base,
238
+ handlers: Object.freeze([...base.handlers, ...extensions.flatMap(extension => extension.handlers)]),
239
+ });
240
+ }
241
+ //# sourceMappingURL=flow-extension-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-extension-loader.js","sourceRoot":"","sources":["../src/flow-extension-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { type PluginSourceInput } from './plugin-source.js';
2
+ /**
3
+ * Schema 2, `kind: "flow-extension"`: a plugin whose `entry` default-exports
4
+ * `flow()` and contributes handlers, hooks, and gates to a base flow. It is the
5
+ * same `flows-plugin.json` file and the same preflight covenant as a helper
6
+ * plugin (RFC-0001 decision 13); only the kind decides which validator reads it.
7
+ * Helper manifests (`kind` absent) never reach this module.
8
+ *
9
+ * This slice validates and records the declaration. Runtime composition is
10
+ * refused with `plugin_unsupported` (plugin-loader.ts) until the handlers slice.
11
+ */
12
+ export interface FlowExtensionTrigger {
13
+ readonly provider: string;
14
+ readonly event: string;
15
+ readonly actions: readonly string[];
16
+ }
17
+ export interface FlowExtensionCompat {
18
+ readonly surface: string;
19
+ readonly sdk: string;
20
+ readonly base: readonly {
21
+ readonly name: string;
22
+ readonly version: string;
23
+ }[];
24
+ }
25
+ export interface FlowExtensionPermissions {
26
+ readonly integrations: readonly string[];
27
+ readonly harnesses: readonly string[];
28
+ readonly mcp: readonly string[];
29
+ /** Declared effect classes, shown for review; not enforced by this runtime (gate 8 / #442). */
30
+ readonly writes: readonly string[];
31
+ readonly budget?: {
32
+ readonly dollars?: number;
33
+ readonly wallclock?: string;
34
+ };
35
+ }
36
+ export interface FlowExtensionManifest {
37
+ readonly schema: 2;
38
+ readonly kind: 'flow-extension';
39
+ readonly name: string;
40
+ readonly version: string;
41
+ readonly description?: string;
42
+ /** Authoring copies may omit it; `flows add` records the resolved origin in the lockfile regardless. */
43
+ readonly source?: PluginSourceInput & {
44
+ readonly sha?: string;
45
+ };
46
+ readonly compat: FlowExtensionCompat;
47
+ readonly entry: string;
48
+ readonly extends: {
49
+ readonly handlers: boolean;
50
+ readonly hooks: readonly string[];
51
+ };
52
+ readonly triggers: readonly FlowExtensionTrigger[];
53
+ readonly permissions: FlowExtensionPermissions;
54
+ readonly preflight: {
55
+ readonly credentials: readonly string[];
56
+ readonly servers: readonly string[];
57
+ };
58
+ readonly config?: Record<string, unknown>;
59
+ }
60
+ export declare function validateFlowExtensionManifest(input: unknown): FlowExtensionManifest;
61
+ //# sourceMappingURL=flow-extension-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-extension-manifest.d.ts","sourceRoot":"","sources":["../src/flow-extension-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGpF;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAChI,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACrG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAiGD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CA4CnF"}