@transcend-io/cli 11.0.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +286 -130
  2. package/dist/app-CfJlhIn8.mjs +148 -0
  3. package/dist/app-CfJlhIn8.mjs.map +1 -0
  4. package/dist/{approvePrivacyRequests-C165wLBa.mjs → approvePrivacyRequests-BWj6SsgX.mjs} +2 -2
  5. package/dist/{approvePrivacyRequests-C165wLBa.mjs.map → approvePrivacyRequests-BWj6SsgX.mjs.map} +1 -1
  6. package/dist/bin/bash-complete.mjs +1 -1
  7. package/dist/bin/cli.mjs +1 -1
  8. package/dist/bin/deprecated-command.mjs +1 -1
  9. package/dist/buildExamples-1I3xKR1X.mjs +2 -0
  10. package/dist/buildExamples-1I3xKR1X.mjs.map +1 -0
  11. package/dist/{buildXdiSyncEndpoint-DeStnIit.mjs → buildXdiSyncEndpoint-CAal3Xc4.mjs} +2 -2
  12. package/dist/{buildXdiSyncEndpoint-DeStnIit.mjs.map → buildXdiSyncEndpoint-CAal3Xc4.mjs.map} +1 -1
  13. package/dist/{bulkRestartRequests-_Mu1rwZQ.mjs → bulkRestartRequests-B3wupylo.mjs} +2 -2
  14. package/dist/{bulkRestartRequests-_Mu1rwZQ.mjs.map → bulkRestartRequests-B3wupylo.mjs.map} +1 -1
  15. package/dist/{bulkRetryEnrichers-C2keTKuQ.mjs → bulkRetryEnrichers-D801tBcB.mjs} +2 -2
  16. package/dist/{bulkRetryEnrichers-C2keTKuQ.mjs.map → bulkRetryEnrichers-D801tBcB.mjs.map} +1 -1
  17. package/dist/{cancelPrivacyRequests-DwQr18Fk.mjs → cancelPrivacyRequests-CAKTZF47.mjs} +2 -2
  18. package/dist/{cancelPrivacyRequests-DwQr18Fk.mjs.map → cancelPrivacyRequests-CAKTZF47.mjs.map} +1 -1
  19. package/dist/{codecs-CTxFjCg4.mjs → codecs-CfcaFoZR.mjs} +1 -1
  20. package/dist/{codecs-CTxFjCg4.mjs.map → codecs-CfcaFoZR.mjs.map} +1 -1
  21. package/dist/{collectCsvFilesOrExit-B1VOVGWN.mjs → collectCsvFilesOrExit-BindZ0dF.mjs} +1 -1
  22. package/dist/{collectCsvFilesOrExit-B1VOVGWN.mjs.map → collectCsvFilesOrExit-BindZ0dF.mjs.map} +1 -1
  23. package/dist/{collectParquetFilesOrExit-DVlv5ctt.mjs → collectParquetFilesOrExit-CbNQ9CJc.mjs} +1 -1
  24. package/dist/{collectParquetFilesOrExit-DVlv5ctt.mjs.map → collectParquetFilesOrExit-CbNQ9CJc.mjs.map} +1 -1
  25. package/dist/command-BDQOL_MQ.mjs +9 -0
  26. package/dist/command-BDQOL_MQ.mjs.map +1 -0
  27. package/dist/command-output-BJcDRXNr.mjs +2 -0
  28. package/dist/command-output-BJcDRXNr.mjs.map +1 -0
  29. package/dist/command-output-BRfF3YFv.mjs +2 -0
  30. package/dist/command-output-BRfF3YFv.mjs.map +1 -0
  31. package/dist/commands/admin/chunk-csv/worker.mjs +1 -1
  32. package/dist/commands/admin/parquet-to-csv/worker.mjs +1 -1
  33. package/dist/{consentManagersToBusinessEntities-CBJ81aGO.mjs → consentManagersToBusinessEntities-DG0_eby5.mjs} +1 -1
  34. package/dist/{consentManagersToBusinessEntities-CBJ81aGO.mjs.map → consentManagersToBusinessEntities-DG0_eby5.mjs.map} +1 -1
  35. package/dist/{constants-Upxn_rQF.mjs → constants-BlKpAm3R.mjs} +2 -2
  36. package/dist/{constants-Upxn_rQF.mjs.map → constants-BlKpAm3R.mjs.map} +1 -1
  37. package/dist/{constants-DXzsg2CQ.mjs → constants-DC_bBO09.mjs} +3 -3
  38. package/dist/{constants-DXzsg2CQ.mjs.map → constants-DC_bBO09.mjs.map} +1 -1
  39. package/dist/{constants-D_HVDaOy.mjs → constants-qvGk0wlN.mjs} +1 -1
  40. package/dist/{constants-D_HVDaOy.mjs.map → constants-qvGk0wlN.mjs.map} +1 -1
  41. package/dist/{context-B33NT3ki.mjs → context-D0A0LxsP.mjs} +1 -1
  42. package/dist/{context-B33NT3ki.mjs.map → context-D0A0LxsP.mjs.map} +1 -1
  43. package/dist/{createPoolingCommandUi-CKH-24w5.mjs → createPoolingCommandUi-JBOW5UxY.mjs} +5 -5
  44. package/dist/{createPoolingCommandUi-CKH-24w5.mjs.map → createPoolingCommandUi-JBOW5UxY.mjs.map} +1 -1
  45. package/dist/{dataFlowsToDataSilos-BF6fzWcm.mjs → dataFlowsToDataSilos-CRqbNjZ0.mjs} +1 -1
  46. package/dist/{dataFlowsToDataSilos-BF6fzWcm.mjs.map → dataFlowsToDataSilos-CRqbNjZ0.mjs.map} +1 -1
  47. package/dist/deno-runtime-CB2HBach.mjs +2 -0
  48. package/dist/deno-runtime-CB2HBach.mjs.map +1 -0
  49. package/dist/{done-input-validation-BUz-aVC5.mjs → done-input-validation-LiTaCEzF.mjs} +1 -1
  50. package/dist/{done-input-validation-BUz-aVC5.mjs.map → done-input-validation-LiTaCEzF.mjs.map} +1 -1
  51. package/dist/downloadPrivacyRequestFiles-Cf14MQR4.mjs +2 -0
  52. package/dist/{downloadPrivacyRequestFiles-D3bzcegH.mjs.map → downloadPrivacyRequestFiles-Cf14MQR4.mjs.map} +1 -1
  53. package/dist/{extractClientError-HZ2U7yqV.mjs → extractClientError-DUJxHv07.mjs} +1 -1
  54. package/dist/{extractClientError-HZ2U7yqV.mjs.map → extractClientError-DUJxHv07.mjs.map} +1 -1
  55. package/dist/{fetchAllRequests-2TZr-LfT.mjs → fetchAllRequests-BI0tFl_a.mjs} +2 -2
  56. package/dist/{fetchAllRequests-2TZr-LfT.mjs.map → fetchAllRequests-BI0tFl_a.mjs.map} +1 -1
  57. package/dist/{formatPolicyBundleVersionSummary-CJmMCLtJ.mjs → formatPolicyBundleVersionSummary-DCHl1Vhy.mjs} +1 -1
  58. package/dist/{formatPolicyBundleVersionSummary-CJmMCLtJ.mjs.map → formatPolicyBundleVersionSummary-DCHl1Vhy.mjs.map} +1 -1
  59. package/dist/{fuzzyMatchColumns-CQCzpjWC.mjs → fuzzyMatchColumns-2NmQqCZI.mjs} +2 -2
  60. package/dist/{fuzzyMatchColumns-CQCzpjWC.mjs.map → fuzzyMatchColumns-2NmQqCZI.mjs.map} +1 -1
  61. package/dist/{generateCrossAccountApiKeys-DWfJtB3t.mjs → generateCrossAccountApiKeys-CVdsJFOe.mjs} +2 -2
  62. package/dist/{generateCrossAccountApiKeys-DWfJtB3t.mjs.map → generateCrossAccountApiKeys-CVdsJFOe.mjs.map} +1 -1
  63. package/dist/impl-0-_oxvck.mjs +2 -0
  64. package/dist/impl-0-_oxvck.mjs.map +1 -0
  65. package/dist/{impl-ByFyaZkK.mjs → impl-2sYR_UFO.mjs} +2 -2
  66. package/dist/{impl-ByFyaZkK.mjs.map → impl-2sYR_UFO.mjs.map} +1 -1
  67. package/dist/{impl-DRpK-QLC.mjs → impl-ApZGIx6l.mjs} +2 -2
  68. package/dist/{impl-DRpK-QLC.mjs.map → impl-ApZGIx6l.mjs.map} +1 -1
  69. package/dist/{impl-DVeGQCrr.mjs → impl-Ay6JeH-7.mjs} +2 -2
  70. package/dist/{impl-DVeGQCrr.mjs.map → impl-Ay6JeH-7.mjs.map} +1 -1
  71. package/dist/impl-B-Oe7DcE2.mjs +421 -0
  72. package/dist/impl-B-Oe7DcE2.mjs.map +1 -0
  73. package/dist/{impl-BPoEH3Nf2.mjs → impl-B94dMG4x2.mjs} +2 -2
  74. package/dist/{impl-BPoEH3Nf2.mjs.map → impl-B94dMG4x2.mjs.map} +1 -1
  75. package/dist/{impl-BEA5cQOT2.mjs → impl-BD03bzB-.mjs} +2 -2
  76. package/dist/impl-BD03bzB-.mjs.map +1 -0
  77. package/dist/{impl-BpMQYnbR.mjs → impl-BGtup1F9.mjs} +2 -2
  78. package/dist/{impl-BpMQYnbR.mjs.map → impl-BGtup1F9.mjs.map} +1 -1
  79. package/dist/{impl-DXowiNOz.mjs → impl-BH1fCPDh.mjs} +2 -2
  80. package/dist/{impl-DXowiNOz.mjs.map → impl-BH1fCPDh.mjs.map} +1 -1
  81. package/dist/{impl-CfvxD3RI.mjs → impl-BLOhoP-b2.mjs} +2 -2
  82. package/dist/impl-BLOhoP-b2.mjs.map +1 -0
  83. package/dist/impl-BQRP9NIv.mjs +2 -0
  84. package/dist/impl-BQRP9NIv.mjs.map +1 -0
  85. package/dist/{impl-BppXJ1AD2.mjs → impl-BQe6vddz.mjs} +2 -2
  86. package/dist/impl-BQe6vddz.mjs.map +1 -0
  87. package/dist/impl-BQj1Ien4.mjs +3 -0
  88. package/dist/impl-BQj1Ien4.mjs.map +1 -0
  89. package/dist/{impl-C_62Z4ED.mjs → impl-BRFL8xp7.mjs} +2 -2
  90. package/dist/{impl-C_62Z4ED.mjs.map → impl-BRFL8xp7.mjs.map} +1 -1
  91. package/dist/impl-BTvZxws5.mjs +2 -0
  92. package/dist/impl-BTvZxws5.mjs.map +1 -0
  93. package/dist/{impl-D94m3EPp.mjs → impl-BVcy_GYa.mjs} +2 -2
  94. package/dist/{impl-D94m3EPp.mjs.map → impl-BVcy_GYa.mjs.map} +1 -1
  95. package/dist/{impl-zRAjMVgz.mjs → impl-B_CRtRo8.mjs} +2 -2
  96. package/dist/{impl-zRAjMVgz.mjs.map → impl-B_CRtRo8.mjs.map} +1 -1
  97. package/dist/{impl-D4Ne3Vbg.mjs → impl-BgD7TeMD.mjs} +2 -2
  98. package/dist/{impl-D4Ne3Vbg.mjs.map → impl-BgD7TeMD.mjs.map} +1 -1
  99. package/dist/{impl-Cw0L2xEU.mjs → impl-BgkovGOz.mjs} +2 -2
  100. package/dist/{impl-Cw0L2xEU.mjs.map → impl-BgkovGOz.mjs.map} +1 -1
  101. package/dist/{impl-C9OmNI49.mjs → impl-Bh02zrTq.mjs} +2 -2
  102. package/dist/{impl-C9OmNI49.mjs.map → impl-Bh02zrTq.mjs.map} +1 -1
  103. package/dist/{impl-CiBT9-GH2.mjs → impl-BopWGXnH.mjs} +2 -2
  104. package/dist/impl-BopWGXnH.mjs.map +1 -0
  105. package/dist/impl-BpVe6fMe.mjs +3 -0
  106. package/dist/{impl--JGnR3wp.mjs.map → impl-BpVe6fMe.mjs.map} +1 -1
  107. package/dist/impl-BxvKe9_7.mjs +2 -0
  108. package/dist/impl-BxvKe9_7.mjs.map +1 -0
  109. package/dist/{impl-C8jjYvgu.mjs → impl-BzIyVAg_.mjs} +2 -2
  110. package/dist/{impl-C8jjYvgu.mjs.map → impl-BzIyVAg_.mjs.map} +1 -1
  111. package/dist/{impl-DXQHLpMw.mjs → impl-C-PvYlFE.mjs} +2 -2
  112. package/dist/{impl-DXQHLpMw.mjs.map → impl-C-PvYlFE.mjs.map} +1 -1
  113. package/dist/impl-C36c5NfN.mjs +2 -0
  114. package/dist/impl-C36c5NfN.mjs.map +1 -0
  115. package/dist/{impl-BhfxcCgN2.mjs → impl-CC-yFYWt.mjs} +2 -2
  116. package/dist/impl-CC-yFYWt.mjs.map +1 -0
  117. package/dist/{impl-lsmXIGSo2.mjs → impl-CFB_508q.mjs} +2 -2
  118. package/dist/impl-CFB_508q.mjs.map +1 -0
  119. package/dist/{impl-D2Q4nxUO.mjs → impl-CG3f4B6u.mjs} +2 -2
  120. package/dist/{impl-D2Q4nxUO.mjs.map → impl-CG3f4B6u.mjs.map} +1 -1
  121. package/dist/{impl-DaH1_ZzK.mjs → impl-CVUD-7mJ.mjs} +5 -5
  122. package/dist/{impl-DaH1_ZzK.mjs.map → impl-CVUD-7mJ.mjs.map} +1 -1
  123. package/dist/impl-CY8C-Fvj2.mjs +2 -0
  124. package/dist/impl-CY8C-Fvj2.mjs.map +1 -0
  125. package/dist/{impl-DqhZR11m.mjs → impl-ClqrQo1M.mjs} +2 -2
  126. package/dist/{impl-DqhZR11m.mjs.map → impl-ClqrQo1M.mjs.map} +1 -1
  127. package/dist/impl-CnHfn7rr.mjs +5 -0
  128. package/dist/{impl-DPtx5iZO.mjs.map → impl-CnHfn7rr.mjs.map} +1 -1
  129. package/dist/{impl-Dqqb0lVN.mjs → impl-CoqCyj7e.mjs} +3 -3
  130. package/dist/{impl-Dqqb0lVN.mjs.map → impl-CoqCyj7e.mjs.map} +1 -1
  131. package/dist/{impl-CHUxKOz_.mjs → impl-Cq-GARM1.mjs} +2 -2
  132. package/dist/{impl-CHUxKOz_.mjs.map → impl-Cq-GARM1.mjs.map} +1 -1
  133. package/dist/{impl-DzUTmaID2.mjs → impl-CsaT3aM2.mjs} +2 -2
  134. package/dist/impl-CsaT3aM2.mjs.map +1 -0
  135. package/dist/impl-Cvyc-iTI2.mjs +2 -0
  136. package/dist/impl-Cvyc-iTI2.mjs.map +1 -0
  137. package/dist/impl-CwBa15M42.mjs +3 -0
  138. package/dist/impl-CwBa15M42.mjs.map +1 -0
  139. package/dist/impl-D3gqip90.mjs +2 -0
  140. package/dist/impl-D3gqip90.mjs.map +1 -0
  141. package/dist/{impl-nz1MyjX22.mjs → impl-D6Lzwd-R2.mjs} +2 -2
  142. package/dist/{impl-nz1MyjX22.mjs.map → impl-D6Lzwd-R2.mjs.map} +1 -1
  143. package/dist/impl-DG-041kN.mjs +3 -0
  144. package/dist/impl-DG-041kN.mjs.map +1 -0
  145. package/dist/{impl-CD2R3L0v.mjs → impl-DTvnDByz.mjs} +2 -2
  146. package/dist/{impl-CD2R3L0v.mjs.map → impl-DTvnDByz.mjs.map} +1 -1
  147. package/dist/{impl-CTwyYUw3.mjs → impl-DUg1sDwg.mjs} +2 -2
  148. package/dist/{impl-CTwyYUw3.mjs.map → impl-DUg1sDwg.mjs.map} +1 -1
  149. package/dist/{impl-DKepRc812.mjs → impl-DeCRXfAh2.mjs} +2 -2
  150. package/dist/{impl-DKepRc812.mjs.map → impl-DeCRXfAh2.mjs.map} +1 -1
  151. package/dist/{impl-COujMWgp.mjs → impl-Dg7XSQdO2.mjs} +2 -2
  152. package/dist/impl-Dg7XSQdO2.mjs.map +1 -0
  153. package/dist/{impl-a_Y8bnSn.mjs → impl-DhXzxQDN2.mjs} +5 -5
  154. package/dist/impl-DhXzxQDN2.mjs.map +1 -0
  155. package/dist/{impl-C2sSZ8qF.mjs → impl-DldrBJEa.mjs} +2 -2
  156. package/dist/{impl-C2sSZ8qF.mjs.map → impl-DldrBJEa.mjs.map} +1 -1
  157. package/dist/{impl-gs5wJ1BK.mjs → impl-Dmn1CWts.mjs} +3 -3
  158. package/dist/{impl-gs5wJ1BK.mjs.map → impl-Dmn1CWts.mjs.map} +1 -1
  159. package/dist/impl-Dr9Jezjh2.mjs +2 -0
  160. package/dist/impl-Dr9Jezjh2.mjs.map +1 -0
  161. package/dist/impl-DtTfsHtL.mjs +2 -0
  162. package/dist/impl-DtTfsHtL.mjs.map +1 -0
  163. package/dist/impl-DzNEfRoS2.mjs +4 -0
  164. package/dist/{impl-D-AHlqlD2.mjs.map → impl-DzNEfRoS2.mjs.map} +1 -1
  165. package/dist/{impl-a0BFtbna.mjs → impl-HnrcGt_T.mjs} +2 -2
  166. package/dist/{impl-a0BFtbna.mjs.map → impl-HnrcGt_T.mjs.map} +1 -1
  167. package/dist/{impl-B5df-igZ.mjs → impl-QdSegO65.mjs} +2 -2
  168. package/dist/{impl-B5df-igZ.mjs.map → impl-QdSegO65.mjs.map} +1 -1
  169. package/dist/{impl-BJyzyrZD.mjs → impl-S90NUBGm.mjs} +2 -2
  170. package/dist/{impl-BJyzyrZD.mjs.map → impl-S90NUBGm.mjs.map} +1 -1
  171. package/dist/impl-Tr08dgdk.mjs +2 -0
  172. package/dist/{impl-DQPmSYSE.mjs.map → impl-Tr08dgdk.mjs.map} +1 -1
  173. package/dist/{impl-CPSEzCc9.mjs → impl-WJBuS_0m.mjs} +2 -2
  174. package/dist/{impl-CPSEzCc9.mjs.map → impl-WJBuS_0m.mjs.map} +1 -1
  175. package/dist/impl-b4KAEVci.mjs +2 -0
  176. package/dist/{impl-GytUVAMP.mjs.map → impl-b4KAEVci.mjs.map} +1 -1
  177. package/dist/impl-defjX-97.mjs +3 -0
  178. package/dist/impl-defjX-97.mjs.map +1 -0
  179. package/dist/{impl-DhxDp4GN.mjs → impl-fg0UZYw6.mjs} +2 -2
  180. package/dist/{impl-DhxDp4GN.mjs.map → impl-fg0UZYw6.mjs.map} +1 -1
  181. package/dist/{impl-CzdUHruN.mjs → impl-hRK54juc.mjs} +2 -2
  182. package/dist/{impl-CzdUHruN.mjs.map → impl-hRK54juc.mjs.map} +1 -1
  183. package/dist/{impl-CSk_okwj.mjs → impl-mjDxMEDR.mjs} +2 -2
  184. package/dist/{impl-CSk_okwj.mjs.map → impl-mjDxMEDR.mjs.map} +1 -1
  185. package/dist/index.d.mts +1 -1
  186. package/dist/index.mjs +2 -2
  187. package/dist/index.mjs.map +1 -1
  188. package/dist/{initializeCliRuntime-6wI_VIHV.mjs → initializeCliRuntime-BaATMO1X.mjs} +1 -1
  189. package/dist/{initializeCliRuntime-6wI_VIHV.mjs.map → initializeCliRuntime-BaATMO1X.mjs.map} +1 -1
  190. package/dist/{inquirer-BeaBetMO.mjs → inquirer-BU5IpgA8.mjs} +2 -2
  191. package/dist/{inquirer-BeaBetMO.mjs.map → inquirer-BU5IpgA8.mjs.map} +1 -1
  192. package/dist/{jsonc-D9dDWb1J.mjs → jsonc-CdTubr53.mjs} +1 -1
  193. package/dist/{jsonc-D9dDWb1J.mjs.map → jsonc-CdTubr53.mjs.map} +1 -1
  194. package/dist/{listFiles-BdFUbX5x.mjs → listFiles-DDGCBdtx.mjs} +1 -1
  195. package/dist/{listFiles-BdFUbX5x.mjs.map → listFiles-DDGCBdtx.mjs.map} +1 -1
  196. package/dist/logger-CPu6zbyQ.mjs +2 -0
  197. package/dist/logger-CPu6zbyQ.mjs.map +1 -0
  198. package/dist/{mapConsentCsvRowsToInputs-Dqb6WL4r.mjs → mapConsentCsvRowsToInputs-CkLfxaIf.mjs} +1 -1
  199. package/dist/{mapConsentCsvRowsToInputs-Dqb6WL4r.mjs.map → mapConsentCsvRowsToInputs-CkLfxaIf.mjs.map} +1 -1
  200. package/dist/markRequestDataSiloIdsCompleted-C6lV_My-.mjs +2 -0
  201. package/dist/{markRequestDataSiloIdsCompleted-Br5gIS3S.mjs.map → markRequestDataSiloIdsCompleted-C6lV_My-.mjs.map} +1 -1
  202. package/dist/{markSilentPrivacyRequests-Cs_iZNJs.mjs → markSilentPrivacyRequests-D3bFOMLh.mjs} +2 -2
  203. package/dist/{markSilentPrivacyRequests-Cs_iZNJs.mjs.map → markSilentPrivacyRequests-D3bFOMLh.mjs.map} +1 -1
  204. package/dist/{mergeTranscendInputs-DFQcbh8b.mjs → mergeTranscendInputs-B7WjxYMN.mjs} +3 -3
  205. package/dist/{mergeTranscendInputs-DFQcbh8b.mjs.map → mergeTranscendInputs-B7WjxYMN.mjs.map} +1 -1
  206. package/dist/missing-manifest-D8y1VL4p.mjs +2 -0
  207. package/dist/missing-manifest-D8y1VL4p.mjs.map +1 -0
  208. package/dist/{module-graph-Cb0g74Ft.mjs → module-graph-CAT8_JCG.mjs} +1 -1
  209. package/dist/{module-graph-Cb0g74Ft.mjs.map → module-graph-CAT8_JCG.mjs.map} +1 -1
  210. package/dist/{notifyPrivacyRequestsAdditionalTime-kPXTdjgT.mjs → notifyPrivacyRequestsAdditionalTime-BGUxsWLN.mjs} +2 -2
  211. package/dist/{notifyPrivacyRequestsAdditionalTime-kPXTdjgT.mjs.map → notifyPrivacyRequestsAdditionalTime-BGUxsWLN.mjs.map} +1 -1
  212. package/dist/{parquetToCsvOneFile-ChmPC6dL.mjs → parquetToCsvOneFile-DtbCFm08.mjs} +3 -3
  213. package/dist/{parquetToCsvOneFile-ChmPC6dL.mjs.map → parquetToCsvOneFile-DtbCFm08.mjs.map} +1 -1
  214. package/dist/{parseAttributesFromString-CO16oAlx.mjs → parseAttributesFromString-C5hJMRvt.mjs} +2 -2
  215. package/dist/{parseAttributesFromString-CO16oAlx.mjs.map → parseAttributesFromString-C5hJMRvt.mjs.map} +1 -1
  216. package/dist/{parseVariablesFromString-BOSfQ4QF.mjs → parseVariablesFromString-6TYW65LF.mjs} +1 -1
  217. package/dist/{parseVariablesFromString-BOSfQ4QF.mjs.map → parseVariablesFromString-6TYW65LF.mjs.map} +1 -1
  218. package/dist/paths-J5KScOaQ.mjs +2 -0
  219. package/dist/paths-J5KScOaQ.mjs.map +1 -0
  220. package/dist/policy-bundle-manifest-RgsjPnfI.mjs +7 -0
  221. package/dist/policy-bundle-manifest-RgsjPnfI.mjs.map +1 -0
  222. package/dist/policy-project-discovery-B4cFXUlA.mjs +430 -0
  223. package/dist/policy-project-discovery-B4cFXUlA.mjs.map +1 -0
  224. package/dist/{policy-runtime-BMKa-Upy.mjs → policy-runtime-6jmkXlBk.mjs} +2 -2
  225. package/dist/{policy-runtime-BMKa-Upy.mjs.map → policy-runtime-6jmkXlBk.mjs.map} +1 -1
  226. package/dist/policy-scaffold-config-CwlygiTz.mjs +76 -0
  227. package/dist/policy-scaffold-config-CwlygiTz.mjs.map +1 -0
  228. package/dist/{policyEngineCliError-DY8V-qkK.mjs → policyEngineCliError-CZrOHhLv.mjs} +1 -1
  229. package/dist/{policyEngineCliError-DY8V-qkK.mjs.map → policyEngineCliError-CZrOHhLv.mjs.map} +1 -1
  230. package/dist/printResult-Dmwv78e7.mjs +33 -0
  231. package/dist/printResult-Dmwv78e7.mjs.map +1 -0
  232. package/dist/project-discovery-BkHpTXDx.mjs +2 -0
  233. package/dist/project-discovery-BkHpTXDx.mjs.map +1 -0
  234. package/dist/project-discovery-CWRjlFnC.mjs +2 -0
  235. package/dist/project-discovery-CWRjlFnC.mjs.map +1 -0
  236. package/dist/project-plan-apply-Bg_1eMX9.mjs +3 -0
  237. package/dist/{project-plan-apply-Dvndx455.mjs.map → project-plan-apply-Bg_1eMX9.mjs.map} +1 -1
  238. package/dist/project-plan-output-BHHlkLxe.mjs +4 -0
  239. package/dist/project-plan-output-BHHlkLxe.mjs.map +1 -0
  240. package/dist/prompts-BhXfYD6g.mjs +2 -0
  241. package/dist/prompts-BhXfYD6g.mjs.map +1 -0
  242. package/dist/{pullAllDatapoints-uk5ggk6O.mjs → pullAllDatapoints-CNqQSSmF.mjs} +3 -3
  243. package/dist/{pullAllDatapoints-uk5ggk6O.mjs.map → pullAllDatapoints-CNqQSSmF.mjs.map} +1 -1
  244. package/dist/pullChunkedCustomSiloOutstandingIdentifiers-BfNNWqeI.mjs +2 -0
  245. package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-DbFFXAVM.mjs.map → pullChunkedCustomSiloOutstandingIdentifiers-BfNNWqeI.mjs.map} +1 -1
  246. package/dist/{pullConsentManagerMetrics-Dv5n1ZGp.mjs → pullConsentManagerMetrics-DKCkfbCB.mjs} +2 -2
  247. package/dist/{pullConsentManagerMetrics-Dv5n1ZGp.mjs.map → pullConsentManagerMetrics-DKCkfbCB.mjs.map} +1 -1
  248. package/dist/pullManualEnrichmentIdentifiersToCsv-B_lWa6Yg.mjs +2 -0
  249. package/dist/{pullManualEnrichmentIdentifiersToCsv-D5is0Nrs.mjs.map → pullManualEnrichmentIdentifiersToCsv-B_lWa6Yg.mjs.map} +1 -1
  250. package/dist/{pullTranscendConfiguration-B63M3ild.mjs → pullTranscendConfiguration-CDUDqxpm.mjs} +2 -2
  251. package/dist/{pullTranscendConfiguration-B63M3ild.mjs.map → pullTranscendConfiguration-CDUDqxpm.mjs.map} +1 -1
  252. package/dist/{pullUnstructuredSubDataPointRecommendations-YTBzfkRZ.mjs → pullUnstructuredSubDataPointRecommendations-Ci4AOxyH.mjs} +2 -2
  253. package/dist/{pullUnstructuredSubDataPointRecommendations-YTBzfkRZ.mjs.map → pullUnstructuredSubDataPointRecommendations-Ci4AOxyH.mjs.map} +1 -1
  254. package/dist/{pushCronIdentifiersFromCsv-Ctq38wAY.mjs → pushCronIdentifiersFromCsv-CDhlEf6n.mjs} +2 -2
  255. package/dist/{pushCronIdentifiersFromCsv-Ctq38wAY.mjs.map → pushCronIdentifiersFromCsv-CDhlEf6n.mjs.map} +1 -1
  256. package/dist/pushManualEnrichmentIdentifiersFromCsv-Bn_028w5.mjs +2 -0
  257. package/dist/{pushManualEnrichmentIdentifiersFromCsv-0WHf6d_m.mjs.map → pushManualEnrichmentIdentifiersFromCsv-Bn_028w5.mjs.map} +1 -1
  258. package/dist/{readCsv-DLg8pwjd.mjs → readCsv-DNcJ_UfU.mjs} +1 -1
  259. package/dist/{readCsv-DLg8pwjd.mjs.map → readCsv-DNcJ_UfU.mjs.map} +1 -1
  260. package/dist/{readTranscendYaml-BNn6-Ofi.mjs → readTranscendYaml-BfqQbPiT.mjs} +3 -3
  261. package/dist/{readTranscendYaml-BNn6-Ofi.mjs.map → readTranscendYaml-BfqQbPiT.mjs.map} +1 -1
  262. package/dist/{removeUnverifiedRequestIdentifiers-Do3Pus6m.mjs → removeUnverifiedRequestIdentifiers-DcI9ut4q.mjs} +2 -2
  263. package/dist/{removeUnverifiedRequestIdentifiers-Do3Pus6m.mjs.map → removeUnverifiedRequestIdentifiers-DcI9ut4q.mjs.map} +1 -1
  264. package/dist/{renderTable-D68QasPc.mjs → renderTable-CZP2roD1.mjs} +1 -1
  265. package/dist/{renderTable-D68QasPc.mjs.map → renderTable-CZP2roD1.mjs.map} +1 -1
  266. package/dist/{request-BiPv6jmP.mjs → request-BpKyN9Xm.mjs} +1 -1
  267. package/dist/{request-BiPv6jmP.mjs.map → request-BpKyN9Xm.mjs.map} +1 -1
  268. package/dist/resolveBundleIdByName-BPrMkU0w.mjs +2 -0
  269. package/dist/resolveBundleIdByName-BPrMkU0w.mjs.map +1 -0
  270. package/dist/resolvePolicyBundleVersion-BrVz4LKN.mjs +2 -0
  271. package/dist/resolvePolicyBundleVersion-BrVz4LKN.mjs.map +1 -0
  272. package/dist/{retryRequestDataSilos-CEgUW6Fx.mjs → retryRequestDataSilos-ZdY2PM0S.mjs} +2 -2
  273. package/dist/{retryRequestDataSilos-CEgUW6Fx.mjs.map → retryRequestDataSilos-ZdY2PM0S.mjs.map} +1 -1
  274. package/dist/{run-captured-process-BXwWXuTh.mjs → run-captured-process-BjaSDWXG.mjs} +1 -1
  275. package/dist/{run-captured-process-BXwWXuTh.mjs.map → run-captured-process-BjaSDWXG.mjs.map} +1 -1
  276. package/dist/{runOpa-CswzJxIs.mjs → runOpa-ojIqU1tO.mjs} +2 -2
  277. package/dist/{runOpa-CswzJxIs.mjs.map → runOpa-ojIqU1tO.mjs.map} +1 -1
  278. package/dist/{scaffold-model-BAbYTR0q.mjs → scaffold-model-CUZER0BC.mjs} +1 -1
  279. package/dist/scaffold-model-CUZER0BC.mjs.map +1 -0
  280. package/dist/{scaffold-planning-CNv83t_v.mjs → scaffold-planning-CaetLfv8.mjs} +9 -9
  281. package/dist/{scaffold-planning-CNv83t_v.mjs.map → scaffold-planning-CaetLfv8.mjs.map} +1 -1
  282. package/dist/{scaffold-templates-DzDGTZie.mjs → scaffold-templates-CUL82Zf8.mjs} +1 -1
  283. package/dist/{scaffold-templates-DzDGTZie.mjs.map → scaffold-templates-CUL82Zf8.mjs.map} +1 -1
  284. package/dist/{skipPreflightJobs-D_1mZ9mr.mjs → skipPreflightJobs-KdcSw8Td.mjs} +2 -2
  285. package/dist/{skipPreflightJobs-D_1mZ9mr.mjs.map → skipPreflightJobs-KdcSw8Td.mjs.map} +1 -1
  286. package/dist/{skipRequestDataSilos-CcGl9Z8M.mjs → skipRequestDataSilos-Cy2NfP47.mjs} +2 -2
  287. package/dist/{skipRequestDataSilos-CcGl9Z8M.mjs.map → skipRequestDataSilos-Cy2NfP47.mjs.map} +1 -1
  288. package/dist/{streamPrivacyRequestsToCsv-1l8RAcnK.mjs → streamPrivacyRequestsToCsv-ByRBG8Mb.mjs} +2 -2
  289. package/dist/{streamPrivacyRequestsToCsv-1l8RAcnK.mjs.map → streamPrivacyRequestsToCsv-ByRBG8Mb.mjs.map} +1 -1
  290. package/dist/{syncCodePackages-BHE2Tn1Q.mjs → syncCodePackages-DJnrcX5l.mjs} +2 -2
  291. package/dist/{syncCodePackages-BHE2Tn1Q.mjs.map → syncCodePackages-DJnrcX5l.mjs.map} +1 -1
  292. package/dist/updateConsentManagerVersionToLatest-KwMaAkwh.mjs +2 -0
  293. package/dist/{updateConsentManagerVersionToLatest-yZhBDcv8.mjs.map → updateConsentManagerVersionToLatest-KwMaAkwh.mjs.map} +1 -1
  294. package/dist/{uploadConsents-DQqApEaH.mjs → uploadConsents-C5LmI-9T.mjs} +2 -2
  295. package/dist/{uploadConsents-DQqApEaH.mjs.map → uploadConsents-C5LmI-9T.mjs.map} +1 -1
  296. package/dist/{uploadPrivacyRequestsFromCsv-ntuK0eSR.mjs → uploadPrivacyRequestsFromCsv-BsYnCgbl.mjs} +2 -2
  297. package/dist/{uploadPrivacyRequestsFromCsv-ntuK0eSR.mjs.map → uploadPrivacyRequestsFromCsv-BsYnCgbl.mjs.map} +1 -1
  298. package/dist/validateTranscendAuth-D-dDINof.mjs +2 -0
  299. package/dist/{validateTranscendAuth-D6Wr1cxY.mjs.map → validateTranscendAuth-D-dDINof.mjs.map} +1 -1
  300. package/dist/{writeCsv-D-2siSwE.mjs → writeCsv-CNZrq3zU.mjs} +1 -1
  301. package/dist/{writeCsv-D-2siSwE.mjs.map → writeCsv-CNZrq3zU.mjs.map} +1 -1
  302. package/package.json +8 -7
  303. package/dist/app-DhG-JhT3.mjs +0 -148
  304. package/dist/app-DhG-JhT3.mjs.map +0 -1
  305. package/dist/buildExamples-DOopJFYY.mjs +0 -2
  306. package/dist/buildExamples-DOopJFYY.mjs.map +0 -1
  307. package/dist/command-Ds6oNo0v.mjs +0 -9
  308. package/dist/command-Ds6oNo0v.mjs.map +0 -1
  309. package/dist/deno-runtime-DV52X8-P.mjs +0 -2
  310. package/dist/deno-runtime-DV52X8-P.mjs.map +0 -1
  311. package/dist/downloadPrivacyRequestFiles-D3bzcegH.mjs +0 -2
  312. package/dist/impl--JGnR3wp.mjs +0 -3
  313. package/dist/impl-7UqkSO3x2.mjs +0 -2
  314. package/dist/impl-7UqkSO3x2.mjs.map +0 -1
  315. package/dist/impl-B4BgGuF_.mjs +0 -3
  316. package/dist/impl-B4BgGuF_.mjs.map +0 -1
  317. package/dist/impl-B5oVsX-F2.mjs +0 -303
  318. package/dist/impl-B5oVsX-F2.mjs.map +0 -1
  319. package/dist/impl-BEA5cQOT2.mjs.map +0 -1
  320. package/dist/impl-BhfxcCgN2.mjs.map +0 -1
  321. package/dist/impl-BppXJ1AD2.mjs.map +0 -1
  322. package/dist/impl-C6HtWd1t.mjs +0 -2
  323. package/dist/impl-C6HtWd1t.mjs.map +0 -1
  324. package/dist/impl-CO4ZqlLV.mjs +0 -3
  325. package/dist/impl-CO4ZqlLV.mjs.map +0 -1
  326. package/dist/impl-COujMWgp.mjs.map +0 -1
  327. package/dist/impl-CUOVJsRg.mjs +0 -3
  328. package/dist/impl-CUOVJsRg.mjs.map +0 -1
  329. package/dist/impl-CUiYbk6G.mjs +0 -3
  330. package/dist/impl-CUiYbk6G.mjs.map +0 -1
  331. package/dist/impl-CfvxD3RI.mjs.map +0 -1
  332. package/dist/impl-CiBT9-GH2.mjs.map +0 -1
  333. package/dist/impl-Cli2XRp02.mjs +0 -2
  334. package/dist/impl-Cli2XRp02.mjs.map +0 -1
  335. package/dist/impl-D-AHlqlD2.mjs +0 -4
  336. package/dist/impl-DPN1En7L.mjs +0 -2
  337. package/dist/impl-DPN1En7L.mjs.map +0 -1
  338. package/dist/impl-DPtx5iZO.mjs +0 -5
  339. package/dist/impl-DQPmSYSE.mjs +0 -2
  340. package/dist/impl-DXRDWiB1.mjs +0 -2
  341. package/dist/impl-DXRDWiB1.mjs.map +0 -1
  342. package/dist/impl-DdIa0zla.mjs +0 -2
  343. package/dist/impl-DdIa0zla.mjs.map +0 -1
  344. package/dist/impl-Dp4bZvAV.mjs +0 -2
  345. package/dist/impl-Dp4bZvAV.mjs.map +0 -1
  346. package/dist/impl-DryC3OJu.mjs +0 -2
  347. package/dist/impl-DryC3OJu.mjs.map +0 -1
  348. package/dist/impl-DzUTmaID2.mjs.map +0 -1
  349. package/dist/impl-GytUVAMP.mjs +0 -2
  350. package/dist/impl-Z8oWVENM.mjs +0 -2
  351. package/dist/impl-Z8oWVENM.mjs.map +0 -1
  352. package/dist/impl-a_Y8bnSn.mjs.map +0 -1
  353. package/dist/impl-lsmXIGSo2.mjs.map +0 -1
  354. package/dist/logger-zplFSeXU.mjs +0 -2
  355. package/dist/logger-zplFSeXU.mjs.map +0 -1
  356. package/dist/manifest-BNIpO_zW.mjs +0 -2
  357. package/dist/manifest-BNIpO_zW.mjs.map +0 -1
  358. package/dist/markRequestDataSiloIdsCompleted-Br5gIS3S.mjs +0 -2
  359. package/dist/missing-manifest-DgcukXfg.mjs +0 -2
  360. package/dist/missing-manifest-DgcukXfg.mjs.map +0 -1
  361. package/dist/path-safety-D5Qwl40b.mjs +0 -2
  362. package/dist/path-safety-D5Qwl40b.mjs.map +0 -1
  363. package/dist/policy-bundle-manifest-D6dkbjNi.mjs +0 -7
  364. package/dist/policy-bundle-manifest-D6dkbjNi.mjs.map +0 -1
  365. package/dist/printResult-CHe3nRN4.mjs +0 -33
  366. package/dist/printResult-CHe3nRN4.mjs.map +0 -1
  367. package/dist/project-plan-apply-Dvndx455.mjs +0 -3
  368. package/dist/prompts-ClBXdELk.mjs +0 -4
  369. package/dist/prompts-ClBXdELk.mjs.map +0 -1
  370. package/dist/pullChunkedCustomSiloOutstandingIdentifiers-DbFFXAVM.mjs +0 -2
  371. package/dist/pullManualEnrichmentIdentifiersToCsv-D5is0Nrs.mjs +0 -2
  372. package/dist/pushManualEnrichmentIdentifiersFromCsv-0WHf6d_m.mjs +0 -2
  373. package/dist/resolveBundleIdByName-qXZBrUz_.mjs +0 -2
  374. package/dist/resolveBundleIdByName-qXZBrUz_.mjs.map +0 -1
  375. package/dist/resolvePolicyBundleVersion-BG7XqBBP.mjs +0 -2
  376. package/dist/resolvePolicyBundleVersion-BG7XqBBP.mjs.map +0 -1
  377. package/dist/scaffold-model-BAbYTR0q.mjs.map +0 -1
  378. package/dist/updateConsentManagerVersionToLatest-yZhBDcv8.mjs +0 -2
  379. package/dist/validateTranscendAuth-D6Wr1cxY.mjs +0 -2
package/README.md CHANGED
@@ -67,6 +67,7 @@ A command line interface that allows you to programatically interact with the Tr
67
67
  - [`transcend policy eval`](#transcend-policy-eval)
68
68
  - [`transcend policy init`](#transcend-policy-init)
69
69
  - [`transcend policy lint`](#transcend-policy-lint)
70
+ - [`transcend policy new`](#transcend-policy-new)
70
71
  - [`transcend policy bundles`](#transcend-policy-bundles)
71
72
  - [`transcend policy publish`](#transcend-policy-publish)
72
73
  - [`transcend policy test`](#transcend-policy-test)
@@ -2499,10 +2500,10 @@ FLAGS
2499
2500
  [--editor/--noEditor] Merge target-scoped Deno editor settings and recommendations
2500
2501
  [--skill/--noSkill] Install the canonical Custom Function coding-agent skill
2501
2502
  [--ci/--noCi] Generate credential-free GitHub Actions checks
2502
- [--noInteractive] Disable prompts and require every missing answer as a flag [default = false]
2503
- [--dryRun] Preview all changes without writing files [default = false]
2503
+ [--noInteractive] Disable prompts [default = false]
2504
+ [--dryRun] Preview changes without applying them [default = false]
2504
2505
  [--yes] Skip only the final plan confirmation [default = false]
2505
- [--json] Emit a stable JSON result and imply non-interactive output [default = false]
2506
+ [--json] Emit stable JSON output and disable prompts [default = false]
2506
2507
  -h --help Print help information and exit
2507
2508
 
2508
2509
  ARGUMENTS
@@ -2549,13 +2550,13 @@ USAGE
2549
2550
  Adds a deterministic starter for one of two Custom Function types: General functions triggered by Rules Automation, or DSR functions triggered by a Workflow step and supporting data point resolvers, preflight checks, or both.
2550
2551
 
2551
2552
  FLAGS
2552
- [--manifest] Path to an existing transcend-functions.yml
2553
+ [--manifest] Path to transcend-functions.yml; defaults inside the target directory
2553
2554
  [--name] Customer-visible Custom Function display name
2554
- [--template] Function type and generated handler shape [general|dsr-datapoint|dsr-enricher|dsr-both]
2555
- [--noInteractive] Disable prompts and require every missing answer as a flag [default = false]
2556
- [--dryRun] Preview all changes without writing files [default = false]
2557
- [--yes] Skip only the final plan confirmation [default = false]
2558
- [--json] Emit a stable JSON result and imply non-interactive output [default = false]
2555
+ [--template] Function type and generated handler shape [general|dsr-datapoint|dsr-enricher|dsr-both]
2556
+ [--noInteractive] Disable prompts [default = false]
2557
+ [--dryRun] Preview changes without applying them [default = false]
2558
+ [--yes] Skip only the final plan confirmation [default = false]
2559
+ [--json] Emit stable JSON output and disable prompts [default = false]
2559
2560
  -h --help Print help information and exit
2560
2561
 
2561
2562
  ARGUMENTS
@@ -2587,10 +2588,10 @@ Checks manifest semantics and published payload schemas, then uses Deno 2 withou
2587
2588
 
2588
2589
  FLAGS
2589
2590
  [--manifest] Path to transcend-functions.yml; defaults inside the target directory
2590
- [--variables] Comma-separated variables to template into the manifest [default = ""]
2591
- [--fix] Apply Deno formatting to manifest-referenced files [default = false]
2592
- [--noInteractive] Disable the optional formatting confirmation [default = false]
2593
- [--json] Emit a stable JSON result and imply non-interactive behavior [default = false]
2591
+ [--variables] Comma-separated variables to template into the manifest, such as API_KEY:value [default = ""]
2592
+ [--fix] Apply Deno formatting to manifest-referenced files [default = false]
2593
+ [--noInteractive] Disable prompts [default = false]
2594
+ [--json] Emit stable JSON output and disable prompts [default = false]
2594
2595
  -h --help Print help information and exit
2595
2596
 
2596
2597
  ARGUMENTS
@@ -2620,9 +2621,9 @@ Executes one self-contained manifest function against its configured test payloa
2620
2621
  FLAGS
2621
2622
  [--manifest] Path to transcend-functions.yml; defaults inside the target directory
2622
2623
  [--function] Exact Custom Function name or ID; prompts when omitted
2623
- [--variables] Comma-separated manifest variables such as API_KEY:value [default = ""]
2624
- [--noInteractive] Disable function selection prompts [default = false]
2625
- [--allowNetwork] Permit real native fetch calls to manifest allowed-hosts [default = false]
2624
+ [--variables] Comma-separated variables to template into the manifest, such as API_KEY:value [default = ""]
2625
+ [--noInteractive] Disable prompts [default = false]
2626
+ [--allowNetwork] Permit real native fetch calls to manifest allowed-hosts [default = false]
2626
2627
  -h --help Print help information and exit
2627
2628
 
2628
2629
  ARGUMENTS
@@ -2649,7 +2650,7 @@ Every `<<parameters.name>>` placeholder used by the selected function must be pr
2649
2650
 
2650
2651
  ```txt
2651
2652
  USAGE
2652
- transcend custom-functions push (--auth value) [--sombraAuth value] [--transcendUrl value] [--file value] [--variables value] [--dryRun] [--promote] [--force] [--skipTests] [--updateManifest] [--sombraId value]
2653
+ transcend custom-functions push (--auth value) [--sombraAuth value] [--transcendUrl value] [--manifest value] [--variables value] [--dryRun] [--json] [--promote] [--force] [--skipTests] [--updateManifest] [--sombraId value] [<directory>]
2653
2654
  transcend custom-functions push --help
2654
2655
 
2655
2656
  Sync custom function source code from your repository to Transcend.
@@ -2675,19 +2676,25 @@ FLAGS
2675
2676
  --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Manage Data Map"
2676
2677
  [--sombraAuth] The Sombra internal key, use for additional authentication when self-hosting Sombra
2677
2678
  [--transcendUrl] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
2678
- [--file] Path to the custom functions manifest YAML file [default = ./transcend-functions.yml]
2679
- [--variables] Variables to template into the manifest file (e.g. secret env values). Comma-separated list of key:value pairs. [default = ""]
2680
- [--dryRun] When true, report what would change without pushing anything [default = false]
2679
+ [--manifest] Path to transcend-functions.yml; defaults inside the target directory
2680
+ [--variables] Comma-separated variables to template into the manifest, such as API_KEY:value [default = ""]
2681
+ [--dryRun] Preview changes without applying them [default = false]
2682
+ [--json] Emit stable JSON output and disable prompts [default = false]
2681
2683
  [--promote/--noPromote] When true, promote new revisions to active. Set to false to leave new revisions as drafts for review in the dashboard. [default = true]
2682
2684
  [--force] Push a new revision even when no changes are detected. Useful when only environment variable values changed, which cannot be diffed. [default = false]
2683
2685
  [--skipTests] Skip test runs entirely, pushing functions without executing their test-payload files. Tests also do not run on --dryRun (nothing is signed on dry runs). [default = false]
2684
2686
  [--updateManifest] After pushing, write the assigned custom function IDs back into the manifest file so future pushes match by ID instead of by name. Comments and <<parameters.x>> placeholders are preserved. [default = false]
2685
2687
  [--sombraId] Default Sombra gateway for functions whose manifest entry (or existing function) does not pin one. Each function is signed against the gateway it belongs to. Defaults to the primary Sombra of the organization.
2686
2688
  -h --help Print help information and exit
2689
+
2690
+ ARGUMENTS
2691
+ [directory] Custom Function project directory [default = transcend/custom-functions]
2687
2692
  ```
2688
2693
 
2689
2694
  #### Manifest file
2690
2695
 
2696
+ By default, `push` reads `transcend-functions.yml` from the `transcend/custom-functions` project directory. Pass another project directory positionally, or use `--manifest` to select a specific manifest file. Use `--json` in automation to emit one structured result containing the manifest path, per-function outcomes, and aggregate counts.
2697
+
2691
2698
  The manifest maps custom function names to source files in your repository:
2692
2699
 
2693
2700
  ```yaml
@@ -2788,7 +2795,7 @@ DSR functions have two entry points — the default export (`DATA_POINT`) and th
2788
2795
 
2789
2796
  #### Examples
2790
2797
 
2791
- **Push all custom functions defined in ./transcend-functions.yml**
2798
+ **Push all custom functions defined in transcend/custom-functions/transcend-functions.yml**
2792
2799
 
2793
2800
  ```sh
2794
2801
  transcend custom-functions push --auth="$TRANSCEND_API_KEY"
@@ -2805,7 +2812,7 @@ transcend custom-functions push --auth="$TRANSCEND_API_KEY" --dryRun
2805
2812
  ```sh
2806
2813
  transcend custom-functions push \
2807
2814
  --auth="$TRANSCEND_API_KEY" \
2808
- --file=./transcend/functions.yml \
2815
+ --manifest=./transcend/functions.yml \
2809
2816
  --variables=CRM_API_KEY:example-secret-value
2810
2817
  ```
2811
2818
 
@@ -2849,7 +2856,7 @@ transcend custom-functions push --auth="$TRANSCEND_API_KEY" --transcendUrl=https
2849
2856
 
2850
2857
  ```txt
2851
2858
  USAGE
2852
- transcend custom-functions list (--auth value) [--transcendUrl value]
2859
+ transcend custom-functions list (--auth value) [--transcendUrl value] [--json]
2853
2860
  transcend custom-functions list --help
2854
2861
 
2855
2862
  List all custom functions in the organization along with their lifecycle state, active version, and any pending draft version.
@@ -2857,9 +2864,12 @@ List all custom functions in the organization along with their lifecycle state,
2857
2864
  FLAGS
2858
2865
  --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Data Map"
2859
2866
  [--transcendUrl] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
2867
+ [--json] Emit stable JSON output and disable prompts [default = false]
2860
2868
  -h --help Print help information and exit
2861
2869
  ```
2862
2870
 
2871
+ Use `--json` in automation to emit safe structured metadata for every Custom Function. Signed code and context tokens are never included in the JSON output.
2872
+
2863
2873
  ### `transcend inventory pull`
2864
2874
 
2865
2875
  ```txt
@@ -4132,20 +4142,20 @@ transcend migration sync-ot --source=file --file=./oneTrustAssessments.json --tr
4132
4142
 
4133
4143
  ```txt
4134
4144
  USAGE
4135
- transcend policy activate (--bundle-name value) [--version value] (--auth value) [--transcend-url value] [--dry-run] [--json] [--debug]
4145
+ transcend policy activate (--remote-bundle-name value) [--version value] (--auth value) [--transcend-url value] [--dry-run] [--json] [--debug]
4136
4146
  transcend policy activate --help
4137
4147
 
4138
4148
  Calls the Policy Engine activate endpoint to make an uploaded version live. Addressed by bundle name (resolved to the parent bundle UUID internally). When --version is omitted, activates the latest uploaded version by createdAt. Requires a Transcend API key with Activate Policy scope.
4139
4149
 
4140
4150
  FLAGS
4141
- --bundle-name Logical policy bundle name (the same string used in publish/bundles); resolved to the parent bundle UUID internally
4142
- [--version] Caller-supplied version label to activate; defaults to the latest uploaded version by createdAt
4143
- --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Activate Policy"
4144
- [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
4145
- [--dry-run] Validate activation without flipping the active version [default = false]
4146
- [--json] Print the raw JSON API response [default = false]
4147
- [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4148
- -h --help Print help information and exit
4151
+ --remote-bundle-name Remote Policy Engine bundle name (not the local folder or --name root)
4152
+ [--version] Caller-supplied version label to activate; defaults to the latest uploaded version by createdAt
4153
+ --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Activate Policy"
4154
+ [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcend-url may be omitted if it is exported. [default = https://api.transcend.io]
4155
+ [--dry-run] Validate activation without flipping the active version [default = false]
4156
+ [--json] Print the raw JSON API response [default = false]
4157
+ [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4158
+ -h --help Print help information and exit
4149
4159
  ```
4150
4160
 
4151
4161
  #### Examples
@@ -4153,25 +4163,25 @@ FLAGS
4153
4163
  **Activate the latest uploaded version for a bundle**
4154
4164
 
4155
4165
  ```sh
4156
- transcend policy activate --bundle-name=main --auth="$TRANSCEND_API_KEY"
4166
+ transcend policy activate --remote-bundle-name=main --auth="$TRANSCEND_API_KEY"
4157
4167
  ```
4158
4168
 
4159
4169
  **Activate a specific version label by bundle name**
4160
4170
 
4161
4171
  ```sh
4162
- transcend policy activate --version=abc123 --bundle-name=main --auth="$TRANSCEND_API_KEY"
4172
+ transcend policy activate --version=abc123 --remote-bundle-name=main --auth="$TRANSCEND_API_KEY"
4163
4173
  ```
4164
4174
 
4165
4175
  **Validate activation without flipping the active version**
4166
4176
 
4167
4177
  ```sh
4168
- transcend policy activate --version=abc123 --bundle-name=main --auth="$TRANSCEND_API_KEY" --dry-run
4178
+ transcend policy activate --version=abc123 --remote-bundle-name=main --auth="$TRANSCEND_API_KEY" --dry-run
4169
4179
  ```
4170
4180
 
4171
4181
  **Omit --auth by exporting TRANSCEND_API_KEY in the environment**
4172
4182
 
4173
4183
  ```sh
4174
- transcend policy activate --bundle-name=main
4184
+ transcend policy activate --remote-bundle-name=main
4175
4185
  ```
4176
4186
 
4177
4187
  Requires the **Activate Policy** scope on your API key.
@@ -4180,18 +4190,18 @@ Requires the **Activate Policy** scope on your API key.
4180
4190
 
4181
4191
  ```txt
4182
4192
  USAGE
4183
- transcend policy deactivate (--bundle-name value) (--auth value) [--transcend-url value] [--json] [--debug]
4193
+ transcend policy deactivate (--remote-bundle-name value) (--auth value) [--transcend-url value] [--json] [--debug]
4184
4194
  transcend policy deactivate --help
4185
4195
 
4186
4196
  Calls the Policy Engine deactivate endpoint to take the currently active version of a bundle offline, clearing its active version pointer. Addressed by bundle name (resolved to the parent bundle UUID internally). Requires a Transcend API key with Activate Policy scope.
4187
4197
 
4188
4198
  FLAGS
4189
- --bundle-name Logical policy bundle name (the same string used in publish/bundles); resolved to the parent bundle UUID internally
4190
- --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Activate Policy"
4191
- [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
4192
- [--json] Print the raw JSON API response [default = false]
4193
- [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4194
- -h --help Print help information and exit
4199
+ --remote-bundle-name Remote Policy Engine bundle name (not the local folder or --name root)
4200
+ --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Activate Policy"
4201
+ [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcend-url may be omitted if it is exported. [default = https://api.transcend.io]
4202
+ [--json] Print the raw JSON API response [default = false]
4203
+ [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4204
+ -h --help Print help information and exit
4195
4205
  ```
4196
4206
 
4197
4207
  #### Examples
@@ -4199,19 +4209,19 @@ FLAGS
4199
4209
  **Deactivate the active version of a bundle by name**
4200
4210
 
4201
4211
  ```sh
4202
- transcend policy deactivate --bundle-name=main --auth="$TRANSCEND_API_KEY"
4212
+ transcend policy deactivate --remote-bundle-name=main --auth="$TRANSCEND_API_KEY"
4203
4213
  ```
4204
4214
 
4205
4215
  **Print the raw JSON response**
4206
4216
 
4207
4217
  ```sh
4208
- transcend policy deactivate --bundle-name=main --auth="$TRANSCEND_API_KEY" --json
4218
+ transcend policy deactivate --remote-bundle-name=main --auth="$TRANSCEND_API_KEY" --json
4209
4219
  ```
4210
4220
 
4211
4221
  **Omit --auth by exporting TRANSCEND_API_KEY in the environment**
4212
4222
 
4213
4223
  ```sh
4214
- transcend policy deactivate --bundle-name=main
4224
+ transcend policy deactivate --remote-bundle-name=main
4215
4225
  ```
4216
4226
 
4217
4227
  Requires the **Activate Policy** scope on your API key.
@@ -4220,20 +4230,20 @@ Requires the **Activate Policy** scope on your API key.
4220
4230
 
4221
4231
  ```txt
4222
4232
  USAGE
4223
- transcend policy download (--bundle-name value) [--version value] [--output value] (--auth value) [--transcend-url value] [--json] [--debug]
4233
+ transcend policy download (--remote-bundle-name value) [--version value] [--output value] (--auth value) [--transcend-url value] [--json] [--debug]
4224
4234
  transcend policy download --help
4225
4235
 
4226
4236
  Resolves a bundle name and optional version label, fetches a short-lived presigned URL from the Policy Engine API, and downloads the compiled OPA bundle tarball (.tar.gz) to disk. When --version is omitted, downloads the currently active version (errors if none is active). With --json, prints metadata and the presigned URL without writing a file. Requires a Transcend API key with View Policy scope.
4227
4237
 
4228
4238
  FLAGS
4229
- --bundle-name Tenant-unique policy bundle name
4230
- [--version] Caller-supplied version label to download; defaults to the bundle's currently active version
4231
- [--output] Destination file path for the compiled .tar.gz bundle (defaults to {bundleName}-{version}.tar.gz)
4232
- --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Policy"
4233
- [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
4234
- [--json] Print version metadata and the presigned download URL as JSON without writing a file [default = false]
4235
- [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4236
- -h --help Print help information and exit
4239
+ --remote-bundle-name Remote Policy Engine bundle name (not the local folder or --name root)
4240
+ [--version] Caller-supplied version label to download; defaults to the bundle's currently active version
4241
+ [--output] Destination file path for the compiled .tar.gz bundle (defaults to {bundleName}-{version}.tar.gz)
4242
+ --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Policy"
4243
+ [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcend-url may be omitted if it is exported. [default = https://api.transcend.io]
4244
+ [--json] Print version metadata and the presigned download URL as JSON without writing a file [default = false]
4245
+ [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4246
+ -h --help Print help information and exit
4237
4247
  ```
4238
4248
 
4239
4249
  #### Examples
@@ -4241,20 +4251,20 @@ FLAGS
4241
4251
  **Download the currently active version of a policy bundle**
4242
4252
 
4243
4253
  ```sh
4244
- transcend policy download --bundle-name=main --auth="$TRANSCEND_API_KEY"
4254
+ transcend policy download --remote-bundle-name=main --auth="$TRANSCEND_API_KEY"
4245
4255
  ```
4246
4256
 
4247
4257
  **Download a specific compiled policy bundle version to the default path**
4248
4258
 
4249
4259
  ```sh
4250
- transcend policy download --bundle-name=main --version=2026-06-25 --auth="$TRANSCEND_API_KEY"
4260
+ transcend policy download --remote-bundle-name=main --version=2026-06-25 --auth="$TRANSCEND_API_KEY"
4251
4261
  ```
4252
4262
 
4253
4263
  **Download to an explicit output path**
4254
4264
 
4255
4265
  ```sh
4256
4266
  transcend policy download \
4257
- --bundle-name=main \
4267
+ --remote-bundle-name=main \
4258
4268
  --version=2026-06-25 \
4259
4269
  --auth="$TRANSCEND_API_KEY" \
4260
4270
  --output=./bundles/main-2026-06-25.tar.gz
@@ -4263,13 +4273,13 @@ transcend policy download \
4263
4273
  **Print version metadata and the presigned URL as JSON without writing a file**
4264
4274
 
4265
4275
  ```sh
4266
- transcend policy download --bundle-name=main --version=2026-06-25 --auth="$TRANSCEND_API_KEY" --json
4276
+ transcend policy download --remote-bundle-name=main --version=2026-06-25 --auth="$TRANSCEND_API_KEY" --json
4267
4277
  ```
4268
4278
 
4269
4279
  **Omit --auth by exporting TRANSCEND_API_KEY in the environment**
4270
4280
 
4271
4281
  ```sh
4272
- transcend policy download --bundle-name=main
4282
+ transcend policy download --remote-bundle-name=main
4273
4283
  ```
4274
4284
 
4275
4285
  Requires the **View Policy** scope on your API key.
@@ -4280,58 +4290,91 @@ The downloaded artifact is a compiled OPA bundle tarball (`.tar.gz`), not a `.zi
4280
4290
 
4281
4291
  ```txt
4282
4292
  USAGE
4283
- transcend policy eval (--pkg value) (--input value) [--bundle value]
4293
+ transcend policy eval (--package value) [--input value] [--stdin-input] [--format pretty|json|values|bindings|source|raw|discard] [--schema value] [--explain off|full|notes|fails|debug] [--metrics] [--instrument] [--profile] [--timeout value] [--var-values] [--show-builtin-errors] <bundle>
4284
4294
  transcend policy eval --help
4285
4295
 
4286
- Wraps `opa eval` for local policy debugging. Requires the `opa` CLI on PATH. No Transcend API key is needed.
4296
+ Wraps `opa eval` for local policy debugging against one bundle directory. Always loads the directory as a bundle (`-b`) and ignores local `*_test.rego` files (same as lint/publish — tests are not shipped to Evaluate). Provide input via `--input` or `--stdin-input` (exactly one). Pass-through flags cover format, schema, explain, metrics, instrument, profile, timeout, var-values, and show-builtin-errors. `-b` and `--ignore` stay owned by the CLI. Exit-on-result flags like OPA `--fail` are omitted: production Evaluate uses the Data API (policy deny is a successful evaluation; missing result is an engine failure), so process exit-on-result is not Evaluate parity. Requires an explicit directory containing a `.manifest`, and the `opa` CLI on PATH. No Transcend API key is needed.
4287
4297
 
4288
4298
  FLAGS
4289
- --pkg OPA package or query to evaluate (e.g. data.transcend.decision)
4290
- --input Path to a JSON envelope input file
4291
- [--bundle] Optional local policy bundle directory
4292
- -h --help Print help information and exit
4299
+ --package OPA query path to evaluate (e.g. data.example.result)
4300
+ [--input] Path to a JSON envelope input file (mutually exclusive with --stdin-input)
4301
+ [--stdin-input] Read the input document from stdin (opa eval --stdin-input) [default = false]
4302
+ [--format] Output format (opa eval --format) [pretty|json|values|bindings|source|raw|discard, default = pretty]
4303
+ [--schema] JSON Schema file or directory for input type-checking (opa eval --schema)
4304
+ [--explain] Explanation mode (opa eval --explain) [off|full|notes|fails|debug]
4305
+ [--metrics] Report evaluation metrics (opa eval --metrics) [default = false]
4306
+ [--instrument] Enable instrumentation; implies --metrics (opa eval --instrument) [default = false]
4307
+ [--profile] Enable performance profiling (opa eval --profile) [default = false]
4308
+ [--timeout] Evaluation timeout duration, e.g. 5s (opa eval --timeout)
4309
+ [--var-values] Show variable values with --explain (opa eval --var-values) [default = false]
4310
+ [--show-builtin-errors] Collect and report built-in errors (opa eval --show-builtin-errors) [default = false]
4311
+ -h --help Print help information and exit
4312
+
4313
+ ARGUMENTS
4314
+ bundle Local policy bundle directory containing a .manifest
4293
4315
  ```
4294
4316
 
4295
4317
  #### Examples
4296
4318
 
4297
- **Evaluate a decision query with a local envelope**
4319
+ **Evaluate a generic decision query with a local envelope**
4320
+
4321
+ ```sh
4322
+ transcend policy eval transcend/policy/example-bundle \
4323
+ --package=data.example.result \
4324
+ --input=transcend/policy/example-bundle/input.json
4325
+ ```
4326
+
4327
+ **Simulate the Permissions API (query + envelope + input schema)**
4298
4328
 
4299
4329
  ```sh
4300
- transcend policy eval --pkg=data.transcend.decision --input=./fixtures/envelope.json --bundle=./policies
4330
+ transcend policy eval transcend/policy/permissions-bundle \
4331
+ --package=data.permissions.purposes \
4332
+ --input=transcend/policy/permissions-bundle/input.json \
4333
+ --schema=transcend/policy/permissions-bundle/input.schema.json
4301
4334
  ```
4302
4335
 
4336
+ **Pipe an envelope on stdin**
4337
+
4338
+ ```sh
4339
+ cat transcend/policy/example-bundle/input.json | transcend policy eval transcend/policy/example-bundle --package=data.example.result --stdin-input
4340
+ ```
4341
+
4342
+ The `<bundle>` positional is required (one local publish directory with a `.manifest` per
4343
+ invocation). Pass `--schema` with the bundle's `input.schema.json` when you want OPA to
4344
+ type-check `input` (e.g. `transcend/policy/permissions-bundle/input.schema.json`).
4345
+
4303
4346
  ### `transcend policy init`
4304
4347
 
4305
4348
  ```txt
4306
4349
  USAGE
4307
- transcend policy init [--editor] [--skill] [--ci] [--noInteractive] [--dryRun] [--yes] [--json] [<directory>]
4350
+ transcend policy init [--editor] [--skill] [--ci] [--noInteractive] [--dryRun] [--yes] [--json] [<workspace>]
4308
4351
  transcend policy init --help
4309
4352
 
4310
- Probes OPA and Regal, previews one safe transactional plan, and creates a publishable fail-closed Rego v1 starter only in an empty target. Optional editor, Agent Skill, and validation-only CI setup preserve repository customization. No Transcend credentials are needed.
4353
+ Probes OPA and Regal, previews one safe transactional plan, and creates an empty multi-bundle workspace with shared Regal config and README. Add bundles with `transcend policy new`. Optional editor, Agent Skill, and validation-only CI setup preserve repository customization. No Transcend credentials are needed.
4311
4354
 
4312
4355
  FLAGS
4313
4356
  [--editor/--noEditor] Merge strict target-scoped VS Code settings, extensions, and lint task
4314
4357
  [--skill/--noSkill] Install the canonical Policy Engine coding-agent skill
4315
4358
  [--ci/--noCi] Generate credential-free validation-only GitHub Actions
4316
4359
  [--noInteractive] Disable prompts and enable optional setup only through explicit flags [default = false]
4317
- [--dryRun] Preview all changes without writing files [default = false]
4360
+ [--dryRun] Preview changes without applying them [default = false]
4318
4361
  [--yes] Skip only the final plan confirmation [default = false]
4319
- [--json] Emit one stable JSON result and imply non-interactive output [default = false]
4362
+ [--json] Emit stable JSON output and disable prompts [default = false]
4320
4363
  -h --help Print help information and exit
4321
4364
 
4322
4365
  ARGUMENTS
4323
- [directory] Policy project directory [default = transcend/policy]
4366
+ [workspace] Policy workspace directory [default = transcend/policy]
4324
4367
  ```
4325
4368
 
4326
- #### Create the safe default policy project
4369
+ #### Create an empty multi-bundle workspace
4327
4370
 
4328
4371
  ```sh
4329
4372
  transcend policy init
4330
4373
  ```
4331
4374
 
4332
- This creates a publishable, fail-closed Rego v1 starter under `transcend/policy`. The example policy is disposable teaching material, not an application contract. Initialization checks local OPA and Regal versions and prints official installation guidance when they are missing or incompatible; it never installs tools or creates runtime-manager configuration.
4375
+ This creates a multi-bundle Policy Engine workspace under `transcend/policy` with shared Regal config (`project.roots: []`) and a README. No bundles or Rego are created add them with `transcend policy new`.
4333
4376
 
4334
- The interactive checklist selects repository-level VS Code setup, the `transcend-policy-engine` Agent Skill, and credential-free validation-only GitHub Actions by default. VS Code setup recommends the official OPA extension, scopes bundle authoring and a default `policy: lint` task to the selected project, and configures strict Rego v1 formatting with Regal.
4377
+ The interactive checklist selects repository-level VS Code setup, the `transcend-policy-engine` Agent Skill, and credential-free validation-only GitHub Actions by default. VS Code setup recommends the official OPA extension and configures strict Rego v1 formatting.
4335
4378
 
4336
4379
  To give an agent the same policy guidance before initialization, install the standalone skill directly from this repository:
4337
4380
 
@@ -4346,39 +4389,41 @@ transcend policy init ./policies --dryRun --json
4346
4389
  transcend policy init ./policies --editor --skill --ci --noInteractive --yes
4347
4390
  ```
4348
4391
 
4349
- Non-interactive setup enables only the individual `--editor`, `--skill`, and `--ci` flags passed. There are no setup presets. The complete plan is applied transactionally. Existing or partially initialized policy targets are left unchanged with actionable warnings, including customized Rego, manifests, Regal configuration, README files, workflows, editor values and tasks, and managed skill content.
4392
+ Non-interactive setup enables only the individual `--editor`, `--skill`, and `--ci` flags passed. There are no setup presets. The complete plan is applied transactionally. Existing or partially initialized policy targets are left unchanged with actionable warnings.
4350
4393
 
4351
- Generated CI pins OPA 1.13.1, Regal 0.42.0, immutable setup action commits, and the current Transcend CLI release. It runs only `transcend policy lint --noInteractive --json`; it never publishes or adds Transcend API credentials. After successful initialization, copyable one-line next steps and an AI handoff prompt identify the disposable example, repository-specific CI adaptation, and the final lint gate.
4394
+ Generated CI pins OPA 1.18.2, Regal 0.42.0, immutable setup action commits, and the current Transcend CLI release. After initialization, the next step is `transcend policy new` to add a bundle from a template.
4352
4395
 
4353
4396
  ### `transcend policy lint`
4354
4397
 
4355
4398
  ```txt
4356
4399
  USAGE
4357
- transcend policy lint [--dir value] [--fix] [--noInteractive] [--json]
4400
+ transcend policy lint [--fix] [--noInteractive] [--json] [<workspace|bundle>]
4358
4401
  transcend policy lint --help
4359
4402
 
4360
- Validates manifest roots and package coverage, verifies OPA 1.x and Regal, checks or repairs OPA formatting, runs a production-only strict OPA check, treats Regal warnings as failures, and requires non-empty OPA tests. No Transcend API key is needed.
4403
+ Defaults to the policy workspace (`transcend/policy`) and verifies every publishable child directory that contains a `.manifest`. Pass one bundle path to verify a single unit. Validates manifest roots and package coverage, verifies OPA 1.x and Regal, checks or repairs OPA formatting, runs a production-only strict OPA check, treats Regal warnings as failures, and requires non-empty OPA tests. No Transcend API key is needed.
4361
4404
 
4362
4405
  FLAGS
4363
- [--dir] Directory containing the local policy project [default = transcend/policy]
4364
- [--fix] Apply OPA formatting without running broad Regal fixes [default = false]
4365
- [--noInteractive] Disable the optional formatting confirmation [default = false]
4366
- [--json] Emit one stable JSON result and imply non-interactive behavior [default = false]
4406
+ [--fix] Apply OPA formatting without running broad Regal fixes [default = false]
4407
+ [--noInteractive] Disable the optional formatting confirmation [default = false]
4408
+ [--json] Emit stable JSON output and disable prompts [default = false]
4367
4409
  -h --help Print help information and exit
4410
+
4411
+ ARGUMENTS
4412
+ [workspace|bundle] Policy workspace or bundle directory (workspace runs every .manifest child) [default = transcend/policy]
4368
4413
  ```
4369
4414
 
4370
4415
  #### Examples
4371
4416
 
4372
- **Verify the default local policy project**
4417
+ **Verify every bundle under the default workspace**
4373
4418
 
4374
4419
  ```sh
4375
4420
  transcend policy lint
4376
4421
  ```
4377
4422
 
4378
- **Verify and format a custom policy project**
4423
+ **Verify and format every bundle under the default workspace**
4379
4424
 
4380
4425
  ```sh
4381
- transcend policy lint --dir=./policies --fix
4426
+ transcend policy lint --fix
4382
4427
  ```
4383
4428
 
4384
4429
  **Run the verification gate in CI or an editor**
@@ -4387,6 +4432,73 @@ transcend policy lint --dir=./policies --fix
4387
4432
  transcend policy lint --noInteractive --json
4388
4433
  ```
4389
4434
 
4435
+ **Verify a single local publish directory**
4436
+
4437
+ ```sh
4438
+ transcend policy lint transcend/policy/example-bundle --fix
4439
+ ```
4440
+
4441
+ With no directory argument, `policy lint` verifies every immediate child under the default
4442
+ workspace (`transcend/policy`) that contains a `.manifest`. Pass one bundle path to verify a
4443
+ single unit.
4444
+
4445
+ ### `transcend policy new`
4446
+
4447
+ ```txt
4448
+ USAGE
4449
+ transcend policy new [--name value] [--bundle-dir value] [--template generic|permissions] [--noInteractive] [--dryRun] [--yes] [--json] [<workspace>]
4450
+ transcend policy new --help
4451
+
4452
+ Adds a publishable bundle directory to an initialized policy workspace. `--name` is the Rego package root; `--bundle-dir` is the local folder basename under the workspace (defaults to `{name}-bundle`). This is not the remote Policy Engine `--remote-bundle-name` used at publish time. Requires `.regal/config.yaml` (run `transcend policy init` first). Creates bundle files, merges the root into Regal config, and updates editor setup when present.
4453
+
4454
+ FLAGS
4455
+ [--name] Rego / .manifest package root (not the remote --remote-bundle-name); default folder is {name}-bundle/
4456
+ [--bundle-dir] Local publish folder basename under the workspace (default: {name}-bundle; not --remote-bundle-name)
4457
+ [--template] Bundle template [generic|permissions]
4458
+ [--noInteractive] Disable prompts and require explicit --name and --template [default = false]
4459
+ [--dryRun] Preview changes without applying them [default = false]
4460
+ [--yes] Skip only the final plan confirmation [default = false]
4461
+ [--json] Emit stable JSON output and disable prompts [default = false]
4462
+ -h --help Print help information and exit
4463
+
4464
+ ARGUMENTS
4465
+ [workspace] Policy workspace directory [default = transcend/policy]
4466
+ ```
4467
+
4468
+ #### Examples
4469
+
4470
+ **Add a generic example bundle**
4471
+
4472
+ ```sh
4473
+ transcend policy new --template=generic --name=example --yes
4474
+ ```
4475
+
4476
+ **Add a permissions bundle**
4477
+
4478
+ ```sh
4479
+ transcend policy new --template=permissions --name=permissions --yes
4480
+ ```
4481
+
4482
+ **Custom local folder, same package root**
4483
+
4484
+ ```sh
4485
+ transcend policy new --template=permissions --name=permissions --bundle-dir=my-bundle --yes
4486
+ ```
4487
+
4488
+ **Preview without writing**
4489
+
4490
+ ```sh
4491
+ transcend policy new --template=generic --name=myapp --dryRun --json
4492
+ ```
4493
+
4494
+ Requires an initialized workspace (`transcend policy init` first). Naming triad:
4495
+
4496
+ - `--name` — Rego / `.manifest` package root (default local folder: `{name}-bundle/`)
4497
+ - `--bundle-dir` — local publish directory basename under the workspace only
4498
+ - `--remote-bundle-name` (on `policy publish`) — remote Policy Engine name; unrelated to the local folder
4499
+
4500
+ The positional argument is the **workspace** (default `transcend/policy`).
4501
+
4390
4502
  ### `transcend policy bundles`
4391
4503
 
4392
4504
  ```txt
@@ -4398,10 +4510,10 @@ Lists policy bundles registered for the authenticated organization. Requires a T
4398
4510
 
4399
4511
  FLAGS
4400
4512
  --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Policy"
4401
- [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
4402
- [--limit] Maximum number of bundles to return (1-100) [default = 50]
4403
- [--offset] Number of records to skip before returning results [default = 0]
4404
- [--json] Print the raw JSON API response [default = false]
4513
+ [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcend-url may be omitted if it is exported. [default = https://api.transcend.io]
4514
+ [--limit] Maximum number of bundles to return (1-100) [default = 50]
4515
+ [--offset] Number of records to skip before returning results [default = 0]
4516
+ [--json] Print the raw JSON API response [default = false]
4405
4517
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4406
4518
  -h --help Print help information and exit
4407
4519
  ```
@@ -4432,38 +4544,39 @@ Requires the **View Policy** scope on your API key.
4432
4544
 
4433
4545
  ```txt
4434
4546
  USAGE
4435
- transcend policy publish (--dir value) (--bundle-name value) (--auth value) [--transcend-url value] [--version value] [--description value] [--json] [--yes] [--debug]
4547
+ transcend policy publish (--remote-bundle-name value) (--auth value) [--transcend-url value] [--version value] [--description value] [--json] [--yes] [--debug] <bundle>
4436
4548
  transcend policy publish --help
4437
4549
 
4438
- Packages manifest.json and .rego policy files from a local directory into a tarball and uploads it to Transcend. Creates the bundle on first upload, then appends immutable versions. Requires the `opa` CLI on PATH (for `opa check` and `opa build` validation) and a Transcend API key with Manage Policy scope.
4550
+ Packages `.manifest` and `.rego` policy files from one local bundle directory into a tarball and uploads it to Transcend. Requires an explicit directory containing a `.manifest`. Creates the bundle on first upload, then appends immutable versions. Requires the `opa` CLI on PATH (for `opa check` and `opa build` validation) and a Transcend API key with Manage Policy scope.
4439
4551
 
4440
4552
  FLAGS
4441
- --dir Directory containing manifest.json and Rego policy files
4442
- --bundle-name Tenant-unique policy bundle name
4443
- --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Manage Policy"
4444
- [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
4445
- [--version] Version label (defaults to {bundleName}-yyyy-mm-dd-hh-mm-ss)
4446
- [--description] Optional description for the uploaded version
4447
- [--json] Print the raw JSON API response [default = false]
4448
- [--yes] Skip the "create new bundle" confirmation (for CI/non-interactive use) [default = false]
4449
- [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4450
- -h --help Print help information and exit
4553
+ --remote-bundle-name Remote Policy Engine bundle name (not the local folder or --name root)
4554
+ --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Manage Policy"
4555
+ [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcend-url may be omitted if it is exported. [default = https://api.transcend.io]
4556
+ [--version] Version label (defaults to {bundleName}-yyyy-mm-dd-hh-mm-ss)
4557
+ [--description] Optional description for the uploaded version
4558
+ [--json] Print the raw JSON API response [default = false]
4559
+ [--yes] Skip the "create new bundle" confirmation (for CI/non-interactive use) [default = false]
4560
+ [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4561
+ -h --help Print help information and exit
4562
+
4563
+ ARGUMENTS
4564
+ bundle Local policy bundle directory containing a .manifest
4451
4565
  ```
4452
4566
 
4453
4567
  #### Examples
4454
4568
 
4455
- **Publish a local policy directory as the main bundle**
4569
+ **Publish a local policy bundle as the main bundle**
4456
4570
 
4457
4571
  ```sh
4458
- transcend policy publish --dir=./policies --bundle-name=main --auth="$TRANSCEND_API_KEY"
4572
+ transcend policy publish transcend/policy/example-bundle --remote-bundle-name=main --auth="$TRANSCEND_API_KEY"
4459
4573
  ```
4460
4574
 
4461
4575
  **Publish with an explicit version label and description**
4462
4576
 
4463
4577
  ```sh
4464
- transcend policy publish \
4465
- --dir=./policies \
4466
- --bundle-name=main \
4578
+ transcend policy publish transcend/policy/example-bundle \
4579
+ --remote-bundle-name=main \
4467
4580
  --auth="$TRANSCEND_API_KEY" \
4468
4581
  --version=2026-06-25 \
4469
4582
  --description="Quarterly policy update"
@@ -4472,61 +4585,104 @@ transcend policy publish \
4472
4585
  **Publish to the US-hosted Transcend API**
4473
4586
 
4474
4587
  ```sh
4475
- transcend policy publish \
4476
- --dir=./policies \
4477
- --bundle-name=common \
4588
+ transcend policy publish transcend/policy/example-bundle \
4589
+ --remote-bundle-name=common \
4478
4590
  --auth="$TRANSCEND_API_KEY" \
4479
4591
  --transcend-url=https://api.us.transcend.io
4480
4592
  ```
4481
4593
 
4594
+ **Publish the Permissions API bundle (fixed remote name)**
4595
+
4596
+ ```sh
4597
+ transcend policy publish transcend/policy/permissions-bundle \
4598
+ --remote-bundle-name=permissions \
4599
+ --auth="$TRANSCEND_API_KEY"
4600
+ ```
4601
+
4482
4602
  **Omit --auth by exporting TRANSCEND_API_KEY in the environment**
4483
4603
 
4484
4604
  ```sh
4485
- transcend policy publish --dir=./policies --bundle-name=main
4605
+ transcend policy publish transcend/policy/example-bundle --remote-bundle-name=main
4486
4606
  ```
4487
4607
 
4608
+ `--remote-bundle-name` is the remote Policy Engine name (not the local folder). The `<bundle>`
4609
+ positional is the local publish directory containing a `.manifest`.
4610
+
4488
4611
  Requires the **Manage Policy** scope on your API key.
4489
4612
 
4490
4613
  ### `transcend policy test`
4491
4614
 
4492
4615
  ```txt
4493
4616
  USAGE
4494
- transcend policy test (--dir value)
4617
+ transcend policy test [--format pretty|json|gobench] [--verbose] [--run value] [--coverage] [--threshold value] [--timeout value] [--var-values] [--explain fails|full|notes|debug] [--schema value] [--exit-zero-on-skipped] [<workspace|bundle>]
4495
4618
  transcend policy test --help
4496
4619
 
4497
- Wraps `opa test` for a local policy directory. Requires the `opa` CLI on PATH. No Transcend API key is needed.
4620
+ Defaults to the policy workspace (`transcend/policy`) and runs `opa test -b --fail-on-empty` for every child directory that contains a `.manifest`. Pass one bundle path to test a single unit. Pass-through flags cover format, verbose, run, coverage, threshold, timeout, var-values, explain, schema, and exit-zero-on-skipped; `-b` and `--fail-on-empty` stay owned by the CLI. Requires the `opa` CLI on PATH. No Transcend API key is needed.
4498
4621
 
4499
4622
  FLAGS
4500
- --dir Directory containing Rego policy files and tests
4501
- -h --help Print help information and exit
4623
+ [--format] Output format (opa test --format) [pretty|json|gobench, default = pretty]
4624
+ [--verbose] Show detailed test results (opa test --verbose) [default = false]
4625
+ [--run] Regex filter for test names (opa test --run)
4626
+ [--coverage] Report coverage (opa test --coverage) [default = false]
4627
+ [--threshold] Fail when coverage is below this % (requires --coverage)
4628
+ [--timeout] Test timeout duration, e.g. 5s (opa test --timeout)
4629
+ [--var-values] Show variable values in failures (opa test --var-values) [default = false]
4630
+ [--explain] Explanation mode (opa test --explain) [fails|full|notes|debug]
4631
+ [--schema] JSON Schema file or directory for input type-checking (opa test --schema)
4632
+ [--exit-zero-on-skipped] Exit 0 when all matching tests are skipped (opa test --exit-zero-on-skipped) [default = false]
4633
+ -h --help Print help information and exit
4634
+
4635
+ ARGUMENTS
4636
+ [workspace|bundle] Policy workspace or bundle directory (workspace runs every .manifest child) [default = transcend/policy]
4502
4637
  ```
4503
4638
 
4504
4639
  #### Examples
4505
4640
 
4506
- **Run tests in a local policy directory**
4641
+ **Run tests for every bundle under the default workspace**
4642
+
4643
+ ```sh
4644
+ transcend policy test
4645
+ ```
4646
+
4647
+ **Filter tests and emit JSON**
4648
+
4649
+ ```sh
4650
+ transcend policy test --format=json --run=test_allows --verbose
4651
+ ```
4652
+
4653
+ **Fail CI when coverage is below a threshold**
4654
+
4655
+ ```sh
4656
+ transcend policy test --coverage --threshold=80
4657
+ ```
4658
+
4659
+ **Test a single local publish directory**
4507
4660
 
4508
4661
  ```sh
4509
- transcend policy test --dir=./policies
4662
+ transcend policy test transcend/policy/example-bundle
4510
4663
  ```
4511
4664
 
4665
+ With no directory argument, `policy test` runs every immediate child under the default workspace
4666
+ (`transcend/policy`) that contains a `.manifest`. Pass one bundle path to test a single unit.
4667
+
4512
4668
  ### `transcend policy versions`
4513
4669
 
4514
4670
  ```txt
4515
4671
  USAGE
4516
- transcend policy versions (--bundle-name value) (--auth value) [--transcend-url value] [--limit value] [--after value] [--json] [--debug]
4672
+ transcend policy versions (--remote-bundle-name value) (--auth value) [--transcend-url value] [--limit value] [--after value] [--json] [--debug]
4517
4673
  transcend policy versions --help
4518
4674
 
4519
4675
  Resolves a bundle name to its UUID and lists uploaded versions. Requires a Transcend API key with View Policy scope.
4520
4676
 
4521
4677
  FLAGS
4522
- --bundle-name Tenant-unique policy bundle name
4523
- --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Policy"
4524
- [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
4525
- [--limit] Maximum number of versions to return (1-100) [default = 50]
4526
- [--after] Opaque cursor from a previous response pageInfo.endCursor
4527
- [--json] Print the raw JSON API response [default = false]
4528
- [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4529
- -h --help Print help information and exit
4678
+ --remote-bundle-name Remote Policy Engine bundle name (not the local folder or --name root)
4679
+ --auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Policy"
4680
+ [--transcend-url] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcend-url may be omitted if it is exported. [default = https://api.transcend.io]
4681
+ [--limit] Maximum number of versions to return (1-100) [default = 50]
4682
+ [--after] Opaque cursor from a previous response pageInfo.endCursor
4683
+ [--json] Print the raw JSON API response [default = false]
4684
+ [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4685
+ -h --help Print help information and exit
4530
4686
  ```
4531
4687
 
4532
4688
  #### Examples
@@ -4534,19 +4690,19 @@ FLAGS
4534
4690
  **List versions for a policy bundle**
4535
4691
 
4536
4692
  ```sh
4537
- transcend policy versions --bundle-name=main --auth="$TRANSCEND_API_KEY"
4693
+ transcend policy versions --remote-bundle-name=main --auth="$TRANSCEND_API_KEY"
4538
4694
  ```
4539
4695
 
4540
4696
  **Fetch the next page of versions using an after cursor**
4541
4697
 
4542
4698
  ```sh
4543
- transcend policy versions --bundle-name=main --auth="$TRANSCEND_API_KEY" --after="$POLICY_VERSION_CURSOR"
4699
+ transcend policy versions --remote-bundle-name=main --auth="$TRANSCEND_API_KEY" --after="$POLICY_VERSION_CURSOR"
4544
4700
  ```
4545
4701
 
4546
4702
  **Omit --auth by exporting TRANSCEND_API_KEY in the environment**
4547
4703
 
4548
4704
  ```sh
4549
- transcend policy versions --bundle-name=main
4705
+ transcend policy versions --remote-bundle-name=main
4550
4706
  ```
4551
4707
 
4552
4708
  Requires the **View Policy** scope on your API key.