@transcend-io/cli 10.29.3 → 12.0.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 (367) hide show
  1. package/README.md +229 -84
  2. package/dist/app-CR3U95JW.mjs +148 -0
  3. package/dist/app-CR3U95JW.mjs.map +1 -0
  4. package/dist/{approvePrivacyRequests-DmQY27tf.mjs → approvePrivacyRequests-BDG82nlp.mjs} +2 -2
  5. package/dist/{approvePrivacyRequests-DmQY27tf.mjs.map → approvePrivacyRequests-BDG82nlp.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-COM0o0UR.mjs → buildExamples-B6BdW0FD.mjs} +2 -2
  10. package/dist/{buildExamples-COM0o0UR.mjs.map → buildExamples-B6BdW0FD.mjs.map} +1 -1
  11. package/dist/{buildXdiSyncEndpoint-5tSouA2b.mjs → buildXdiSyncEndpoint-FExEagKc.mjs} +2 -2
  12. package/dist/{buildXdiSyncEndpoint-5tSouA2b.mjs.map → buildXdiSyncEndpoint-FExEagKc.mjs.map} +1 -1
  13. package/dist/{bulkRestartRequests-CZrXs34U.mjs → bulkRestartRequests-OKwKXc52.mjs} +2 -2
  14. package/dist/{bulkRestartRequests-CZrXs34U.mjs.map → bulkRestartRequests-OKwKXc52.mjs.map} +1 -1
  15. package/dist/{bulkRetryEnrichers-BOXW2gK0.mjs → bulkRetryEnrichers-Dl-n8AFF.mjs} +2 -2
  16. package/dist/{bulkRetryEnrichers-BOXW2gK0.mjs.map → bulkRetryEnrichers-Dl-n8AFF.mjs.map} +1 -1
  17. package/dist/{cancelPrivacyRequests-CA8X4g4A.mjs → cancelPrivacyRequests-BIgX5SDz.mjs} +2 -2
  18. package/dist/{cancelPrivacyRequests-CA8X4g4A.mjs.map → cancelPrivacyRequests-BIgX5SDz.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-X7lkPELf.mjs +9 -0
  26. package/dist/command-X7lkPELf.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-BRsj50Nb.mjs +2 -0
  36. package/dist/{constants-XH8NIJGC.mjs.map → constants-BRsj50Nb.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-BtyIMQcK.mjs → createPoolingCommandUi-CyPZ3GqN.mjs} +5 -5
  44. package/dist/{createPoolingCommandUi-BtyIMQcK.mjs.map → createPoolingCommandUi-CyPZ3GqN.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-DbZjPjHw.mjs → downloadPrivacyRequestFiles-EBySRnvd.mjs} +2 -2
  52. package/dist/{downloadPrivacyRequestFiles-DbZjPjHw.mjs.map → downloadPrivacyRequestFiles-EBySRnvd.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-C1iD6Las.mjs → generateCrossAccountApiKeys-pWTrIUE6.mjs} +2 -2
  62. package/dist/{generateCrossAccountApiKeys-C1iD6Las.mjs.map → generateCrossAccountApiKeys-pWTrIUE6.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-CNgOWzOX.mjs → impl-1SsreZWo.mjs} +2 -2
  66. package/dist/{impl-CNgOWzOX.mjs.map → impl-1SsreZWo.mjs.map} +1 -1
  67. package/dist/{impl-BjoGaK1M.mjs → impl-7rdGuHOC.mjs} +2 -2
  68. package/dist/{impl-BjoGaK1M.mjs.map → impl-7rdGuHOC.mjs.map} +1 -1
  69. package/dist/{impl-DRpK-QLC.mjs → impl-ApZGIx6l.mjs} +2 -2
  70. package/dist/{impl-DRpK-QLC.mjs.map → impl-ApZGIx6l.mjs.map} +1 -1
  71. package/dist/{impl-DVeGQCrr.mjs → impl-Ay6JeH-7.mjs} +2 -2
  72. package/dist/{impl-DVeGQCrr.mjs.map → impl-Ay6JeH-7.mjs.map} +1 -1
  73. package/dist/{impl-BR4ReYFA.mjs → impl-B2ZXtnpX.mjs} +2 -2
  74. package/dist/{impl-BR4ReYFA.mjs.map → impl-B2ZXtnpX.mjs.map} +1 -1
  75. package/dist/impl-B440iuvL.mjs +3 -0
  76. package/dist/impl-B440iuvL.mjs.map +1 -0
  77. package/dist/{impl-v_P8hszk2.mjs → impl-B7l4bLG5.mjs} +2 -2
  78. package/dist/impl-B7l4bLG5.mjs.map +1 -0
  79. package/dist/{impl-BPoEH3Nf2.mjs → impl-B94dMG4x2.mjs} +2 -2
  80. package/dist/{impl-BPoEH3Nf2.mjs.map → impl-B94dMG4x2.mjs.map} +1 -1
  81. package/dist/{impl-DXowiNOz.mjs → impl-BH1fCPDh.mjs} +2 -2
  82. package/dist/{impl-DXowiNOz.mjs.map → impl-BH1fCPDh.mjs.map} +1 -1
  83. package/dist/{impl-CfvxD3RI.mjs → impl-BLOhoP-b2.mjs} +2 -2
  84. package/dist/impl-BLOhoP-b2.mjs.map +1 -0
  85. package/dist/{impl-CMxliF19.mjs → impl-BLQDgwxL.mjs} +2 -2
  86. package/dist/{impl-CMxliF19.mjs.map → impl-BLQDgwxL.mjs.map} +1 -1
  87. package/dist/{impl-Dqqb0lVN.mjs → impl-BWPPVXG3.mjs} +3 -3
  88. package/dist/{impl-Dqqb0lVN.mjs.map → impl-BWPPVXG3.mjs.map} +1 -1
  89. package/dist/{impl-DceiaFcK.mjs → impl-BdTxFv63.mjs} +2 -2
  90. package/dist/{impl-DceiaFcK.mjs.map → impl-BdTxFv63.mjs.map} +1 -1
  91. package/dist/impl-BpVe6fMe.mjs +3 -0
  92. package/dist/{impl--JGnR3wp.mjs.map → impl-BpVe6fMe.mjs.map} +1 -1
  93. package/dist/impl-BqTMPbwc2.mjs +2 -0
  94. package/dist/impl-BqTMPbwc2.mjs.map +1 -0
  95. package/dist/impl-CAoIp9Nl2.mjs +3 -0
  96. package/dist/impl-CAoIp9Nl2.mjs.map +1 -0
  97. package/dist/{impl-99xoQXHW.mjs → impl-CU38kdj8.mjs} +2 -2
  98. package/dist/{impl-99xoQXHW.mjs.map → impl-CU38kdj8.mjs.map} +1 -1
  99. package/dist/{impl-DxnrCWeR2.mjs → impl-CWP6AXSb.mjs} +2 -2
  100. package/dist/impl-CWP6AXSb.mjs.map +1 -0
  101. package/dist/impl-CY8C-Fvj2.mjs +2 -0
  102. package/dist/impl-CY8C-Fvj2.mjs.map +1 -0
  103. package/dist/{impl-CfPDnai_.mjs → impl-C_Ifcb00.mjs} +2 -2
  104. package/dist/{impl-CfPDnai_.mjs.map → impl-C_Ifcb00.mjs.map} +1 -1
  105. package/dist/{impl-CPSEzCc9.mjs → impl-Cb42aI60.mjs} +2 -2
  106. package/dist/{impl-CPSEzCc9.mjs.map → impl-Cb42aI60.mjs.map} +1 -1
  107. package/dist/impl-Cee7Q1Ne.mjs +2 -0
  108. package/dist/impl-Cee7Q1Ne.mjs.map +1 -0
  109. package/dist/impl-CieztjdM.mjs +2 -0
  110. package/dist/impl-CieztjdM.mjs.map +1 -0
  111. package/dist/{impl-DqhZR11m.mjs → impl-ClqrQo1M.mjs} +2 -2
  112. package/dist/{impl-DqhZR11m.mjs.map → impl-ClqrQo1M.mjs.map} +1 -1
  113. package/dist/impl-CnHfn7rr.mjs +5 -0
  114. package/dist/{impl-DPtx5iZO.mjs.map → impl-CnHfn7rr.mjs.map} +1 -1
  115. package/dist/{impl-jJnYd4tJ.mjs → impl-CrdqsTUy.mjs} +2 -2
  116. package/dist/{impl-jJnYd4tJ.mjs.map → impl-CrdqsTUy.mjs.map} +1 -1
  117. package/dist/{impl-DzUTmaID2.mjs → impl-CsaT3aM2.mjs} +2 -2
  118. package/dist/impl-CsaT3aM2.mjs.map +1 -0
  119. package/dist/{impl-DB8Kt2qF2.mjs → impl-CspH2ZWx.mjs} +2 -2
  120. package/dist/impl-CspH2ZWx.mjs.map +1 -0
  121. package/dist/{impl-H9kweQnu2.mjs → impl-CudSYx-g.mjs} +2 -2
  122. package/dist/impl-CudSYx-g.mjs.map +1 -0
  123. package/dist/{impl-DUBsZL5O.mjs → impl-Cxprr2hw.mjs} +2 -2
  124. package/dist/{impl-DUBsZL5O.mjs.map → impl-Cxprr2hw.mjs.map} +1 -1
  125. package/dist/{impl-C5Mq4wv0.mjs → impl-D-a5xGld.mjs} +2 -2
  126. package/dist/{impl-C5Mq4wv0.mjs.map → impl-D-a5xGld.mjs.map} +1 -1
  127. package/dist/{impl-CGioITgZ.mjs → impl-D1UogVAq.mjs} +2 -2
  128. package/dist/{impl-CGioITgZ.mjs.map → impl-D1UogVAq.mjs.map} +1 -1
  129. package/dist/{impl-B37wtYBz.mjs → impl-D1f9mJL_.mjs} +2 -2
  130. package/dist/{impl-B37wtYBz.mjs.map → impl-D1f9mJL_.mjs.map} +1 -1
  131. package/dist/{impl-Cl9ndadE.mjs → impl-DJcNhpbx.mjs} +2 -2
  132. package/dist/{impl-Cl9ndadE.mjs.map → impl-DJcNhpbx.mjs.map} +1 -1
  133. package/dist/impl-DQG1pMzD2.mjs +2 -0
  134. package/dist/impl-DQG1pMzD2.mjs.map +1 -0
  135. package/dist/impl-DQcgEx7V2.mjs +298 -0
  136. package/dist/impl-DQcgEx7V2.mjs.map +1 -0
  137. package/dist/impl-DRKPx_I9.mjs +2 -0
  138. package/dist/impl-DRKPx_I9.mjs.map +1 -0
  139. package/dist/{impl-CXQ3OYR9.mjs → impl-DTadLabu.mjs} +2 -2
  140. package/dist/{impl-CXQ3OYR9.mjs.map → impl-DTadLabu.mjs.map} +1 -1
  141. package/dist/{impl-B9lSnjby.mjs → impl-DXbxO2VJ.mjs} +2 -2
  142. package/dist/{impl-B9lSnjby.mjs.map → impl-DXbxO2VJ.mjs.map} +1 -1
  143. package/dist/{impl-Cel22rUg2.mjs → impl-DcL-8NEa2.mjs} +2 -2
  144. package/dist/{impl-Cel22rUg2.mjs.map → impl-DcL-8NEa2.mjs.map} +1 -1
  145. package/dist/{impl-DKepRc812.mjs → impl-DeCRXfAh2.mjs} +2 -2
  146. package/dist/{impl-DKepRc812.mjs.map → impl-DeCRXfAh2.mjs.map} +1 -1
  147. package/dist/impl-DezV3QMo.mjs +3 -0
  148. package/dist/impl-DezV3QMo.mjs.map +1 -0
  149. package/dist/{impl-COujMWgp.mjs → impl-Dg7XSQdO2.mjs} +2 -2
  150. package/dist/impl-Dg7XSQdO2.mjs.map +1 -0
  151. package/dist/{impl-a_Y8bnSn.mjs → impl-DhXzxQDN2.mjs} +5 -5
  152. package/dist/impl-DhXzxQDN2.mjs.map +1 -0
  153. package/dist/impl-DiwxYcux.mjs +2 -0
  154. package/dist/{impl-BKmibZoG.mjs.map → impl-DiwxYcux.mjs.map} +1 -1
  155. package/dist/{impl-p_M16BEd.mjs → impl-Do2TNA3-.mjs} +2 -2
  156. package/dist/{impl-p_M16BEd.mjs.map → impl-Do2TNA3-.mjs.map} +1 -1
  157. package/dist/{impl-DaH1_ZzK.mjs → impl-DqHEIzpj.mjs} +2 -2
  158. package/dist/{impl-DaH1_ZzK.mjs.map → impl-DqHEIzpj.mjs.map} +1 -1
  159. package/dist/{impl-GH9uVaGu.mjs → impl-Dr_l_SLd.mjs} +2 -2
  160. package/dist/{impl-GH9uVaGu.mjs.map → impl-Dr_l_SLd.mjs.map} +1 -1
  161. package/dist/{impl-Dt5Iik_-.mjs → impl-Ds-gQfdc.mjs} +2 -2
  162. package/dist/{impl-Dt5Iik_-.mjs.map → impl-Ds-gQfdc.mjs.map} +1 -1
  163. package/dist/{impl-CJML1Gwo.mjs → impl-DtnYcktN.mjs} +2 -2
  164. package/dist/{impl-CJML1Gwo.mjs.map → impl-DtnYcktN.mjs.map} +1 -1
  165. package/dist/impl-DtpgD_as.mjs +2 -0
  166. package/dist/{impl-DWD4fAPO.mjs.map → impl-DtpgD_as.mjs.map} +1 -1
  167. package/dist/{impl-CL0y3SFr.mjs → impl-DxQ9yj3H.mjs} +2 -2
  168. package/dist/{impl-CL0y3SFr.mjs.map → impl-DxQ9yj3H.mjs.map} +1 -1
  169. package/dist/impl-FerHBNJx2.mjs +4 -0
  170. package/dist/{impl-BFn-S-Wy2.mjs.map → impl-FerHBNJx2.mjs.map} +1 -1
  171. package/dist/{impl-Cs1z9k1h2.mjs → impl-HUfaARep.mjs} +2 -2
  172. package/dist/impl-HUfaARep.mjs.map +1 -0
  173. package/dist/impl-btKJ1-VJ.mjs +3 -0
  174. package/dist/impl-btKJ1-VJ.mjs.map +1 -0
  175. package/dist/impl-eeS2lVi5.mjs +2 -0
  176. package/dist/impl-eeS2lVi5.mjs.map +1 -0
  177. package/dist/impl-iD6Fknfe.mjs +2 -0
  178. package/dist/impl-iD6Fknfe.mjs.map +1 -0
  179. package/dist/impl-ijoNwhGI.mjs +2 -0
  180. package/dist/impl-ijoNwhGI.mjs.map +1 -0
  181. package/dist/{impl-C83WRl40.mjs → impl-vmLq6HCI.mjs} +2 -2
  182. package/dist/{impl-C83WRl40.mjs.map → impl-vmLq6HCI.mjs.map} +1 -1
  183. package/dist/{impl-C8vx7N5j.mjs → impl-wBcVYHlA.mjs} +2 -2
  184. package/dist/{impl-C8vx7N5j.mjs.map → impl-wBcVYHlA.mjs.map} +1 -1
  185. package/dist/index.d.mts +2 -2
  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-B5JCHcqh.mjs → markRequestDataSiloIdsCompleted-BYNMCkhy.mjs} +2 -2
  201. package/dist/{markRequestDataSiloIdsCompleted-B5JCHcqh.mjs.map → markRequestDataSiloIdsCompleted-BYNMCkhy.mjs.map} +1 -1
  202. package/dist/{markSilentPrivacyRequests-BAIZ97iB.mjs → markSilentPrivacyRequests-gKYivzH1.mjs} +2 -2
  203. package/dist/{markSilentPrivacyRequests-BAIZ97iB.mjs.map → markSilentPrivacyRequests-gKYivzH1.mjs.map} +1 -1
  204. package/dist/{mergeTranscendInputs-DFQcbh8b.mjs → mergeTranscendInputs-D1CvxQu0.mjs} +2 -2
  205. package/dist/{mergeTranscendInputs-DFQcbh8b.mjs.map → mergeTranscendInputs-D1CvxQu0.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-C2lUoWKP.mjs → notifyPrivacyRequestsAdditionalTime-DbERhQ1Q.mjs} +2 -2
  211. package/dist/{notifyPrivacyRequestsAdditionalTime-C2lUoWKP.mjs.map → notifyPrivacyRequestsAdditionalTime-DbERhQ1Q.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-BZnBMZQq.mjs +7 -0
  221. package/dist/policy-bundle-manifest-BZnBMZQq.mjs.map +1 -0
  222. package/dist/policy-project-discovery-C29UxWwt.mjs +427 -0
  223. package/dist/policy-project-discovery-C29UxWwt.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-BUKAyPad.mjs +76 -0
  227. package/dist/policy-scaffold-config-BUKAyPad.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-CHe3nRN4.mjs → printResult-C2K9ODeE.mjs} +3 -3
  231. package/dist/printResult-C2K9ODeE.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-Bm-Orhse.mjs} +2 -2
  243. package/dist/{pullAllDatapoints-uk5ggk6O.mjs.map → pullAllDatapoints-Bm-Orhse.mjs.map} +1 -1
  244. package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-BmhJiquf.mjs → pullChunkedCustomSiloOutstandingIdentifiers-DTGQOw--.mjs} +2 -2
  245. package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-BmhJiquf.mjs.map → pullChunkedCustomSiloOutstandingIdentifiers-DTGQOw--.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-BbQc9MDM.mjs → pullManualEnrichmentIdentifiersToCsv-DMC5CQtE.mjs} +2 -2
  249. package/dist/{pullManualEnrichmentIdentifiersToCsv-BbQc9MDM.mjs.map → pullManualEnrichmentIdentifiersToCsv-DMC5CQtE.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-Cfo2GibV.mjs → pushCronIdentifiersFromCsv-DhS2z8IG.mjs} +2 -2
  255. package/dist/{pushCronIdentifiersFromCsv-Cfo2GibV.mjs.map → pushCronIdentifiersFromCsv-DhS2z8IG.mjs.map} +1 -1
  256. package/dist/{pushManualEnrichmentIdentifiersFromCsv-DokcIxh1.mjs → pushManualEnrichmentIdentifiersFromCsv-BTJGOmdU.mjs} +2 -2
  257. package/dist/{pushManualEnrichmentIdentifiersFromCsv-DokcIxh1.mjs.map → pushManualEnrichmentIdentifiersFromCsv-BTJGOmdU.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-p4gFagI0.mjs → removeUnverifiedRequestIdentifiers-BkAcUZZN.mjs} +2 -2
  263. package/dist/{removeUnverifiedRequestIdentifiers-p4gFagI0.mjs.map → removeUnverifiedRequestIdentifiers-BkAcUZZN.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-qXZBrUz_.mjs → resolveBundleIdByName-Dm_o5_bg.mjs} +2 -2
  269. package/dist/{resolveBundleIdByName-qXZBrUz_.mjs.map → resolveBundleIdByName-Dm_o5_bg.mjs.map} +1 -1
  270. package/dist/{resolvePolicyBundleVersion-BG7XqBBP.mjs → resolvePolicyBundleVersion-DRUwe7fA.mjs} +2 -2
  271. package/dist/{resolvePolicyBundleVersion-BG7XqBBP.mjs.map → resolvePolicyBundleVersion-DRUwe7fA.mjs.map} +1 -1
  272. package/dist/{retryRequestDataSilos-C6mvi-ET.mjs → retryRequestDataSilos-BoPmcB8-.mjs} +2 -2
  273. package/dist/{retryRequestDataSilos-C6mvi-ET.mjs.map → retryRequestDataSilos-BoPmcB8-.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-CgUcTgzf.mjs → skipPreflightJobs-DkBdYw-r.mjs} +2 -2
  285. package/dist/{skipPreflightJobs-CgUcTgzf.mjs.map → skipPreflightJobs-DkBdYw-r.mjs.map} +1 -1
  286. package/dist/{skipRequestDataSilos-Be-6OhWe.mjs → skipRequestDataSilos-BRFiokix.mjs} +2 -2
  287. package/dist/{skipRequestDataSilos-Be-6OhWe.mjs.map → skipRequestDataSilos-BRFiokix.mjs.map} +1 -1
  288. package/dist/{streamPrivacyRequestsToCsv-BaeFrrGF.mjs → streamPrivacyRequestsToCsv-Bt-H5J-y.mjs} +2 -2
  289. package/dist/{streamPrivacyRequestsToCsv-BaeFrrGF.mjs.map → streamPrivacyRequestsToCsv-Bt-H5J-y.mjs.map} +1 -1
  290. package/dist/{syncCodePackages-BHE2Tn1Q.mjs → syncCodePackages-CPkEukDm.mjs} +2 -2
  291. package/dist/{syncCodePackages-BHE2Tn1Q.mjs.map → syncCodePackages-CPkEukDm.mjs.map} +1 -1
  292. package/dist/{updateConsentManagerVersionToLatest-3mQX2U8F.mjs → updateConsentManagerVersionToLatest-DWblAwus.mjs} +2 -2
  293. package/dist/{updateConsentManagerVersionToLatest-3mQX2U8F.mjs.map → updateConsentManagerVersionToLatest-DWblAwus.mjs.map} +1 -1
  294. package/dist/{uploadConsents-Dnbtx9P5.mjs → uploadConsents-D7Vg8ZRW.mjs} +2 -2
  295. package/dist/{uploadConsents-Dnbtx9P5.mjs.map → uploadConsents-D7Vg8ZRW.mjs.map} +1 -1
  296. package/dist/{uploadPrivacyRequestsFromCsv-BIW2JPjA.mjs → uploadPrivacyRequestsFromCsv-B_hQwIn6.mjs} +2 -2
  297. package/dist/{uploadPrivacyRequestsFromCsv-BIW2JPjA.mjs.map → uploadPrivacyRequestsFromCsv-B_hQwIn6.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 +6 -5
  303. package/dist/app-D-IPyX64.mjs +0 -148
  304. package/dist/app-D-IPyX64.mjs.map +0 -1
  305. package/dist/command-Ddx7b9ik.mjs +0 -9
  306. package/dist/command-Ddx7b9ik.mjs.map +0 -1
  307. package/dist/constants-XH8NIJGC.mjs +0 -2
  308. package/dist/deno-runtime-DV52X8-P.mjs +0 -2
  309. package/dist/deno-runtime-DV52X8-P.mjs.map +0 -1
  310. package/dist/impl--JGnR3wp.mjs +0 -3
  311. package/dist/impl-7UqkSO3x2.mjs +0 -2
  312. package/dist/impl-7UqkSO3x2.mjs.map +0 -1
  313. package/dist/impl-B4BgGuF_.mjs +0 -3
  314. package/dist/impl-B4BgGuF_.mjs.map +0 -1
  315. package/dist/impl-BFn-S-Wy2.mjs +0 -4
  316. package/dist/impl-BKmibZoG.mjs +0 -2
  317. package/dist/impl-C6HtWd1t.mjs +0 -2
  318. package/dist/impl-C6HtWd1t.mjs.map +0 -1
  319. package/dist/impl-CO4ZqlLV.mjs +0 -3
  320. package/dist/impl-CO4ZqlLV.mjs.map +0 -1
  321. package/dist/impl-COujMWgp.mjs.map +0 -1
  322. package/dist/impl-CUOVJsRg.mjs +0 -3
  323. package/dist/impl-CUOVJsRg.mjs.map +0 -1
  324. package/dist/impl-CUiYbk6G.mjs +0 -3
  325. package/dist/impl-CUiYbk6G.mjs.map +0 -1
  326. package/dist/impl-CbAvM_1J.mjs +0 -2
  327. package/dist/impl-CbAvM_1J.mjs.map +0 -1
  328. package/dist/impl-CfvxD3RI.mjs.map +0 -1
  329. package/dist/impl-Cli2XRp02.mjs +0 -2
  330. package/dist/impl-Cli2XRp02.mjs.map +0 -1
  331. package/dist/impl-Cs1z9k1h2.mjs.map +0 -1
  332. package/dist/impl-DB8Kt2qF2.mjs.map +0 -1
  333. package/dist/impl-DHQh34Eh2.mjs +0 -303
  334. package/dist/impl-DHQh34Eh2.mjs.map +0 -1
  335. package/dist/impl-DN6CgOI6.mjs +0 -2
  336. package/dist/impl-DN6CgOI6.mjs.map +0 -1
  337. package/dist/impl-DPtx5iZO.mjs +0 -5
  338. package/dist/impl-DWD4fAPO.mjs +0 -2
  339. package/dist/impl-DXRDWiB1.mjs +0 -2
  340. package/dist/impl-DXRDWiB1.mjs.map +0 -1
  341. package/dist/impl-DdIa0zla.mjs +0 -2
  342. package/dist/impl-DdIa0zla.mjs.map +0 -1
  343. package/dist/impl-DryC3OJu.mjs +0 -2
  344. package/dist/impl-DryC3OJu.mjs.map +0 -1
  345. package/dist/impl-DxnrCWeR2.mjs.map +0 -1
  346. package/dist/impl-DzUTmaID2.mjs.map +0 -1
  347. package/dist/impl-H9kweQnu2.mjs.map +0 -1
  348. package/dist/impl-Z8oWVENM.mjs +0 -2
  349. package/dist/impl-Z8oWVENM.mjs.map +0 -1
  350. package/dist/impl-a_Y8bnSn.mjs.map +0 -1
  351. package/dist/impl-v_P8hszk2.mjs.map +0 -1
  352. package/dist/logger-zplFSeXU.mjs +0 -2
  353. package/dist/logger-zplFSeXU.mjs.map +0 -1
  354. package/dist/manifest-BNIpO_zW.mjs +0 -2
  355. package/dist/manifest-BNIpO_zW.mjs.map +0 -1
  356. package/dist/missing-manifest-DgcukXfg.mjs +0 -2
  357. package/dist/missing-manifest-DgcukXfg.mjs.map +0 -1
  358. package/dist/path-safety-D5Qwl40b.mjs +0 -2
  359. package/dist/path-safety-D5Qwl40b.mjs.map +0 -1
  360. package/dist/policy-bundle-manifest-D6dkbjNi.mjs +0 -7
  361. package/dist/policy-bundle-manifest-D6dkbjNi.mjs.map +0 -1
  362. package/dist/printResult-CHe3nRN4.mjs.map +0 -1
  363. package/dist/project-plan-apply-Dvndx455.mjs +0 -3
  364. package/dist/prompts-ClBXdELk.mjs +0 -4
  365. package/dist/prompts-ClBXdELk.mjs.map +0 -1
  366. package/dist/scaffold-model-BAbYTR0q.mjs.map +0 -1
  367. 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
@@ -4138,12 +4148,12 @@ USAGE
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
4151
+ --bundle-name Tenant-unique policy bundle name
4142
4152
  [--version] Caller-supplied version label to activate; defaults to the latest uploaded version by createdAt
4143
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"
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]
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]
4147
4157
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4148
4158
  -h --help Print help information and exit
4149
4159
  ```
@@ -4186,10 +4196,10 @@ USAGE
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
4199
+ --bundle-name Tenant-unique policy bundle name
4190
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"
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]
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]
4193
4203
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4194
4204
  -h --help Print help information and exit
4195
4205
  ```
@@ -4230,8 +4240,8 @@ FLAGS
4230
4240
  [--version] Caller-supplied version label to download; defaults to the bundle's currently active version
4231
4241
  [--output] Destination file path for the compiled .tar.gz bundle (defaults to {bundleName}-{version}.tar.gz)
4232
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"
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]
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]
4235
4245
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4236
4246
  -h --help Print help information and exit
4237
4247
  ```
@@ -4280,16 +4290,28 @@ 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] <directory>
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`). 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. 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 to evaluate (e.g. data.example.result)
4300
+ [--input] Path to a JSON envelope input file (mutually exclusive with --stdin-input)
4301
+ [--stdin-input] opa eval --stdin-input (read input document from stdin) [default = false]
4302
+ [--format] opa eval --format [pretty|json|values|bindings|source|raw|discard, default = pretty]
4303
+ [--schema] opa eval --schema (file or directory)
4304
+ [--explain] opa eval --explain [off|full|notes|fails|debug]
4305
+ [--metrics] opa eval --metrics [default = false]
4306
+ [--instrument] opa eval --instrument (implies --metrics) [default = false]
4307
+ [--profile] opa eval --profile [default = false]
4308
+ [--timeout] opa eval --timeout (e.g. 5s)
4309
+ [--var-values] opa eval --var-values (with --explain) [default = false]
4310
+ [--show-builtin-errors] opa eval --show-builtin-errors [default = false]
4311
+ -h --help Print help information and exit
4312
+
4313
+ ARGUMENTS
4314
+ directory Policy bundle directory containing a .manifest
4293
4315
  ```
4294
4316
 
4295
4317
  #### Examples
@@ -4297,7 +4319,39 @@ FLAGS
4297
4319
  **Evaluate a decision query with a local envelope**
4298
4320
 
4299
4321
  ```sh
4300
- transcend policy eval --pkg=data.transcend.decision --input=./fixtures/envelope.json --bundle=./policies
4322
+ transcend policy eval --package=data.example.result --input=./fixtures/envelope.json
4323
+ ```
4324
+
4325
+ **Emit JSON and attach workspace schemas**
4326
+
4327
+ ```sh
4328
+ transcend policy eval \
4329
+ --package=data.example.result \
4330
+ --input=./fixtures/envelope.json \
4331
+ --format=json \
4332
+ --schema=transcend/policy/schemas
4333
+ ```
4334
+
4335
+ **Pipe an envelope on stdin**
4336
+
4337
+ ```sh
4338
+ transcend policy eval --package=data.example.result --stdin-input
4339
+ ```
4340
+
4341
+ Pass the bundle directory positionally (required — one bundle per invocation):
4342
+
4343
+ ```sh
4344
+ transcend policy eval transcend/policy/example-bundle \
4345
+ --package=data.example.result \
4346
+ --input=./fixtures/envelope.json
4347
+ ```
4348
+
4349
+ Or pipe the envelope:
4350
+
4351
+ ```sh
4352
+ cat ./fixtures/envelope.json | transcend policy eval transcend/policy/example-bundle \
4353
+ --package=data.example.result \
4354
+ --stdin-input
4301
4355
  ```
4302
4356
 
4303
4357
  ### `transcend policy init`
@@ -4307,31 +4361,31 @@ USAGE
4307
4361
  transcend policy init [--editor] [--skill] [--ci] [--noInteractive] [--dryRun] [--yes] [--json] [<directory>]
4308
4362
  transcend policy init --help
4309
4363
 
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.
4364
+ 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
4365
 
4312
4366
  FLAGS
4313
4367
  [--editor/--noEditor] Merge strict target-scoped VS Code settings, extensions, and lint task
4314
4368
  [--skill/--noSkill] Install the canonical Policy Engine coding-agent skill
4315
4369
  [--ci/--noCi] Generate credential-free validation-only GitHub Actions
4316
4370
  [--noInteractive] Disable prompts and enable optional setup only through explicit flags [default = false]
4317
- [--dryRun] Preview all changes without writing files [default = false]
4371
+ [--dryRun] Preview changes without applying them [default = false]
4318
4372
  [--yes] Skip only the final plan confirmation [default = false]
4319
- [--json] Emit one stable JSON result and imply non-interactive output [default = false]
4373
+ [--json] Emit stable JSON output and disable prompts [default = false]
4320
4374
  -h --help Print help information and exit
4321
4375
 
4322
4376
  ARGUMENTS
4323
- [directory] Policy project directory [default = transcend/policy]
4377
+ [directory] Policy workspace directory [default = transcend/policy]
4324
4378
  ```
4325
4379
 
4326
- #### Create the safe default policy project
4380
+ #### Create an empty multi-bundle workspace
4327
4381
 
4328
4382
  ```sh
4329
4383
  transcend policy init
4330
4384
  ```
4331
4385
 
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.
4386
+ 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
4387
 
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.
4388
+ 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, configures strict Rego v1 formatting, and sets `opa.schema` to the workspace schemas directory.
4335
4389
 
4336
4390
  To give an agent the same policy guidance before initialization, install the standalone skill directly from this repository:
4337
4391
 
@@ -4346,25 +4400,27 @@ transcend policy init ./policies --dryRun --json
4346
4400
  transcend policy init ./policies --editor --skill --ci --noInteractive --yes
4347
4401
  ```
4348
4402
 
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.
4403
+ 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
4404
 
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.
4405
+ 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
4406
 
4353
4407
  ### `transcend policy lint`
4354
4408
 
4355
4409
  ```txt
4356
4410
  USAGE
4357
- transcend policy lint [--dir value] [--fix] [--noInteractive] [--json]
4411
+ transcend policy lint [--fix] [--noInteractive] [--json] [<directory>]
4358
4412
  transcend policy lint --help
4359
4413
 
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.
4414
+ 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
4415
 
4362
4416
  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]
4417
+ [--fix] Apply OPA formatting without running broad Regal fixes [default = false]
4418
+ [--noInteractive] Disable the optional formatting confirmation [default = false]
4419
+ [--json] Emit stable JSON output and disable prompts [default = false]
4367
4420
  -h --help Print help information and exit
4421
+
4422
+ ARGUMENTS
4423
+ [directory] Policy workspace or bundle directory (workspace runs every .manifest child) [default = transcend/policy]
4368
4424
  ```
4369
4425
 
4370
4426
  #### Examples
@@ -4375,10 +4431,10 @@ FLAGS
4375
4431
  transcend policy lint
4376
4432
  ```
4377
4433
 
4378
- **Verify and format a custom policy project**
4434
+ **Verify and format the default policy project**
4379
4435
 
4380
4436
  ```sh
4381
- transcend policy lint --dir=./policies --fix
4437
+ transcend policy lint --fix
4382
4438
  ```
4383
4439
 
4384
4440
  **Run the verification gate in CI or an editor**
@@ -4387,6 +4443,54 @@ transcend policy lint --dir=./policies --fix
4387
4443
  transcend policy lint --noInteractive --json
4388
4444
  ```
4389
4445
 
4446
+ With no directory argument, `policy lint` verifies every immediate child under the default workspace (`transcend/policy`) that contains a `.manifest`. Pass one bundle path to verify a single unit:
4447
+
4448
+ ```sh
4449
+ transcend policy lint ./policies/example-bundle --fix
4450
+ ```
4451
+
4452
+ ### `transcend policy new`
4453
+
4454
+ ```txt
4455
+ USAGE
4456
+ transcend policy new [--name value] [--template generic|permissions] [--noInteractive] [--dryRun] [--yes] [--json] [<directory>]
4457
+ transcend policy new --help
4458
+
4459
+ Adds a publishable `{name}-bundle/` directory to an initialized policy workspace. Requires `.regal/config.yaml` (run `transcend policy init` first). Creates bundle files, merges the root into Regal config, and updates editor setup when present.
4460
+
4461
+ FLAGS
4462
+ [--name] Package root name (used as {name}-bundle/ directory)
4463
+ [--template] Bundle template [generic|permissions]
4464
+ [--noInteractive] Disable prompts and require explicit --name and --template [default = false]
4465
+ [--dryRun] Preview changes without applying them [default = false]
4466
+ [--yes] Skip only the final plan confirmation [default = false]
4467
+ [--json] Emit stable JSON output and disable prompts [default = false]
4468
+ -h --help Print help information and exit
4469
+
4470
+ ARGUMENTS
4471
+ [directory] Policy workspace directory [default = transcend/policy]
4472
+ ```
4473
+
4474
+ #### Add a generic example bundle
4475
+
4476
+ ```sh
4477
+ transcend policy new --template generic --name example --yes
4478
+ ```
4479
+
4480
+ #### Add a permissions bundle
4481
+
4482
+ ```sh
4483
+ transcend policy new --template permissions --name permissions --yes
4484
+ ```
4485
+
4486
+ #### Preview without writing
4487
+
4488
+ ```sh
4489
+ transcend policy new --template generic --name myapp --dryRun --json
4490
+ ```
4491
+
4492
+ Requires an initialized workspace (`transcend policy init` first).
4493
+
4390
4494
  ### `transcend policy bundles`
4391
4495
 
4392
4496
  ```txt
@@ -4398,10 +4502,10 @@ Lists policy bundles registered for the authenticated organization. Requires a T
4398
4502
 
4399
4503
  FLAGS
4400
4504
  --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]
4505
+ [--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]
4506
+ [--limit] Maximum number of bundles to return (1-100) [default = 50]
4507
+ [--offset] Number of records to skip before returning results [default = 0]
4508
+ [--json] Print the raw JSON API response [default = false]
4405
4509
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4406
4510
  -h --help Print help information and exit
4407
4511
  ```
@@ -4432,37 +4536,38 @@ Requires the **View Policy** scope on your API key.
4432
4536
 
4433
4537
  ```txt
4434
4538
  USAGE
4435
- transcend policy publish (--dir value) (--bundle-name value) (--auth value) [--transcend-url value] [--version value] [--description value] [--json] [--yes] [--debug]
4539
+ transcend policy publish (--bundle-name value) (--auth value) [--transcend-url value] [--version value] [--description value] [--json] [--yes] [--debug] <directory>
4436
4540
  transcend policy publish --help
4437
4541
 
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.
4542
+ 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
4543
 
4440
4544
  FLAGS
4441
- --dir Directory containing manifest.json and Rego policy files
4442
4545
  --bundle-name Tenant-unique policy bundle name
4443
4546
  --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]
4547
+ [--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]
4445
4548
  [--version] Version label (defaults to {bundleName}-yyyy-mm-dd-hh-mm-ss)
4446
4549
  [--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]
4550
+ [--json] Print the raw JSON API response [default = false]
4551
+ [--yes] Skip the "create new bundle" confirmation (for CI/non-interactive use) [default = false]
4449
4552
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4450
4553
  -h --help Print help information and exit
4554
+
4555
+ ARGUMENTS
4556
+ directory Policy bundle directory containing a .manifest
4451
4557
  ```
4452
4558
 
4453
4559
  #### Examples
4454
4560
 
4455
- **Publish a local policy directory as the main bundle**
4561
+ **Publish a local policy bundle as the main bundle**
4456
4562
 
4457
4563
  ```sh
4458
- transcend policy publish --dir=./policies --bundle-name=main --auth="$TRANSCEND_API_KEY"
4564
+ transcend policy publish --bundle-name=main --auth="$TRANSCEND_API_KEY"
4459
4565
  ```
4460
4566
 
4461
4567
  **Publish with an explicit version label and description**
4462
4568
 
4463
4569
  ```sh
4464
4570
  transcend policy publish \
4465
- --dir=./policies \
4466
4571
  --bundle-name=main \
4467
4572
  --auth="$TRANSCEND_API_KEY" \
4468
4573
  --version=2026-06-25 \
@@ -4472,17 +4577,27 @@ transcend policy publish \
4472
4577
  **Publish to the US-hosted Transcend API**
4473
4578
 
4474
4579
  ```sh
4475
- transcend policy publish \
4476
- --dir=./policies \
4477
- --bundle-name=common \
4478
- --auth="$TRANSCEND_API_KEY" \
4479
- --transcend-url=https://api.us.transcend.io
4580
+ transcend policy publish --bundle-name=common --auth="$TRANSCEND_API_KEY" --transcend-url=https://api.us.transcend.io
4581
+ ```
4582
+
4583
+ **Publish the Permissions API bundle (fixed remote name)**
4584
+
4585
+ ```sh
4586
+ transcend policy publish --bundle-name=permissions --auth="$TRANSCEND_API_KEY"
4480
4587
  ```
4481
4588
 
4482
4589
  **Omit --auth by exporting TRANSCEND_API_KEY in the environment**
4483
4590
 
4484
4591
  ```sh
4485
- transcend policy publish --dir=./policies --bundle-name=main
4592
+ transcend policy publish --bundle-name=main
4593
+ ```
4594
+
4595
+ Pass the bundle directory positionally (required — one bundle per invocation):
4596
+
4597
+ ```sh
4598
+ transcend policy publish transcend/policy/example-bundle \
4599
+ --bundle-name=main \
4600
+ --auth="$TRANSCEND_API_KEY"
4486
4601
  ```
4487
4602
 
4488
4603
  Requires the **Manage Policy** scope on your API key.
@@ -4491,22 +4606,52 @@ Requires the **Manage Policy** scope on your API key.
4491
4606
 
4492
4607
  ```txt
4493
4608
  USAGE
4494
- transcend policy test (--dir value)
4609
+ 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] [<directory>]
4495
4610
  transcend policy test --help
4496
4611
 
4497
- Wraps `opa test` for a local policy directory. Requires the `opa` CLI on PATH. No Transcend API key is needed.
4612
+ 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
4613
 
4499
4614
  FLAGS
4500
- --dir Directory containing Rego policy files and tests
4501
- -h --help Print help information and exit
4615
+ [--format] opa test --format [pretty|json|gobench, default = pretty]
4616
+ [--verbose] opa test --verbose [default = false]
4617
+ [--run] opa test --run (regex filter)
4618
+ [--coverage] opa test --coverage [default = false]
4619
+ [--threshold] opa test --threshold (coverage %, requires --coverage)
4620
+ [--timeout] opa test --timeout (e.g. 5s)
4621
+ [--var-values] opa test --var-values [default = false]
4622
+ [--explain] opa test --explain [fails|full|notes|debug]
4623
+ [--schema] opa test --schema (file or directory)
4624
+ [--exit-zero-on-skipped] opa test --exit-zero-on-skipped [default = false]
4625
+ -h --help Print help information and exit
4626
+
4627
+ ARGUMENTS
4628
+ [directory] Policy workspace or bundle directory (workspace runs every .manifest child) [default = transcend/policy]
4502
4629
  ```
4503
4630
 
4504
4631
  #### Examples
4505
4632
 
4506
- **Run tests in a local policy directory**
4633
+ **Run tests for every bundle under the default workspace**
4634
+
4635
+ ```sh
4636
+ transcend policy test
4637
+ ```
4638
+
4639
+ **Filter tests and emit JSON**
4640
+
4641
+ ```sh
4642
+ transcend policy test --format=json --run=test_allows --verbose
4643
+ ```
4644
+
4645
+ **Fail CI when coverage is below a threshold**
4646
+
4647
+ ```sh
4648
+ transcend policy test --coverage --threshold=80
4649
+ ```
4650
+
4651
+ Pass one bundle directory to test a single unit:
4507
4652
 
4508
4653
  ```sh
4509
- transcend policy test --dir=./policies
4654
+ transcend policy test transcend/policy/example-bundle
4510
4655
  ```
4511
4656
 
4512
4657
  ### `transcend policy versions`
@@ -4521,10 +4666,10 @@ Resolves a bundle name to its UUID and lists uploaded versions. Requires a Trans
4521
4666
  FLAGS
4522
4667
  --bundle-name Tenant-unique policy bundle name
4523
4668
  --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]
4669
+ [--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]
4670
+ [--limit] Maximum number of versions to return (1-100) [default = 50]
4526
4671
  [--after] Opaque cursor from a previous response pageInfo.endCursor
4527
- [--json] Print the raw JSON API response [default = false]
4672
+ [--json] Print the raw JSON API response [default = false]
4528
4673
  [--debug/--noDebug] Include technical error details (underlying API message and stack trace) when a command fails
4529
4674
  -h --help Print help information and exit
4530
4675
  ```