@nexusclawhq/cli 0.3.26 → 0.3.27

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 (313) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/build-info.json +4 -4
  3. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/agent-executable-assets/cli-contract.types.d.ts +37 -1
  4. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/agent-executable-assets/contract-versions.d.ts +5 -1
  5. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/agent-executable-assets/contract-versions.js +6 -2
  6. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/agent-executable-assets/contract-versions.js.map +1 -1
  7. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/agent-executable-assets/index.d.ts +1 -1
  8. package/dist/nexus-cli/node_modules/@nexusclaw/shared/dist/agent-executable-assets/index.js.map +1 -1
  9. package/dist/nexus-cli/src/cli-runner.test.d.ts +1 -0
  10. package/dist/nexus-cli/src/cli-runner.test.js +156 -0
  11. package/dist/nexus-cli/src/cli-runner.test.js.map +1 -0
  12. package/dist/nexus-cli/src/cli.d.ts +8 -0
  13. package/dist/nexus-cli/src/cli.js +133 -7
  14. package/dist/nexus-cli/src/cli.js.map +1 -1
  15. package/dist/nexus-cli/src/commands/ai/context-export.js +6 -3
  16. package/dist/nexus-cli/src/commands/ai/context-export.js.map +1 -1
  17. package/dist/nexus-cli/src/commands/ai/help.d.ts +1 -1
  18. package/dist/nexus-cli/src/commands/ai/help.js +14 -2
  19. package/dist/nexus-cli/src/commands/ai/help.js.map +1 -1
  20. package/dist/nexus-cli/src/commands/ai/help.test.js +32 -0
  21. package/dist/nexus-cli/src/commands/ai/help.test.js.map +1 -1
  22. package/dist/nexus-cli/src/commands/changeset/index.js +68 -34
  23. package/dist/nexus-cli/src/commands/changeset/index.js.map +1 -1
  24. package/dist/nexus-cli/src/commands/customer-entitlement/activate.js +16 -9
  25. package/dist/nexus-cli/src/commands/customer-entitlement/activate.js.map +1 -1
  26. package/dist/nexus-cli/src/commands/customer-entitlement/create.js +22 -15
  27. package/dist/nexus-cli/src/commands/customer-entitlement/create.js.map +1 -1
  28. package/dist/nexus-cli/src/commands/customer-entitlement/deactivate.js +16 -9
  29. package/dist/nexus-cli/src/commands/customer-entitlement/deactivate.js.map +1 -1
  30. package/dist/nexus-cli/src/commands/customer-entitlement/get.js +25 -17
  31. package/dist/nexus-cli/src/commands/customer-entitlement/get.js.map +1 -1
  32. package/dist/nexus-cli/src/commands/customer-entitlement/list.js +14 -5
  33. package/dist/nexus-cli/src/commands/customer-entitlement/list.js.map +1 -1
  34. package/dist/nexus-cli/src/commands/customer-entitlement/result.d.ts +1 -0
  35. package/dist/nexus-cli/src/commands/customer-entitlement/result.js +11 -0
  36. package/dist/nexus-cli/src/commands/customer-entitlement/result.js.map +1 -0
  37. package/dist/nexus-cli/src/commands/customer-entitlement/validate.js +13 -4
  38. package/dist/nexus-cli/src/commands/customer-entitlement/validate.js.map +1 -1
  39. package/dist/nexus-cli/src/commands/data/delete-bulk.js +12 -6
  40. package/dist/nexus-cli/src/commands/data/delete-bulk.js.map +1 -1
  41. package/dist/nexus-cli/src/commands/data/export-tree.js +15 -8
  42. package/dist/nexus-cli/src/commands/data/export-tree.js.map +1 -1
  43. package/dist/nexus-cli/src/commands/data/import-tree.js +14 -8
  44. package/dist/nexus-cli/src/commands/data/import-tree.js.map +1 -1
  45. package/dist/nexus-cli/src/commands/data/query.js +11 -4
  46. package/dist/nexus-cli/src/commands/data/query.js.map +1 -1
  47. package/dist/nexus-cli/src/commands/data/recycle-bin.js +9 -2
  48. package/dist/nexus-cli/src/commands/data/recycle-bin.js.map +1 -1
  49. package/dist/nexus-cli/src/commands/deployment/employee-report.js +17 -12
  50. package/dist/nexus-cli/src/commands/deployment/employee-report.js.map +1 -1
  51. package/dist/nexus-cli/src/commands/deployment/index.js +26 -10
  52. package/dist/nexus-cli/src/commands/deployment/index.js.map +1 -1
  53. package/dist/nexus-cli/src/commands/deployment/quick.js +12 -13
  54. package/dist/nexus-cli/src/commands/deployment/quick.js.map +1 -1
  55. package/dist/nexus-cli/src/commands/deployment/report.js +9 -8
  56. package/dist/nexus-cli/src/commands/deployment/report.js.map +1 -1
  57. package/dist/nexus-cli/src/commands/deployment/resume.js +15 -8
  58. package/dist/nexus-cli/src/commands/deployment/resume.js.map +1 -1
  59. package/dist/nexus-cli/src/commands/dx-json-option.test.js +1 -1
  60. package/dist/nexus-cli/src/commands/dx-json-option.test.js.map +1 -1
  61. package/dist/nexus-cli/src/commands/dx-pages.d.ts +1 -0
  62. package/dist/nexus-cli/src/commands/dx-pages.js +6 -3
  63. package/dist/nexus-cli/src/commands/dx-pages.js.map +1 -1
  64. package/dist/nexus-cli/src/commands/dx-workflows.e2e.test.js +4 -2
  65. package/dist/nexus-cli/src/commands/dx-workflows.e2e.test.js.map +1 -1
  66. package/dist/nexus-cli/src/commands/dx.js +111 -54
  67. package/dist/nexus-cli/src/commands/dx.js.map +1 -1
  68. package/dist/nexus-cli/src/commands/employee/bundle.js +3 -2
  69. package/dist/nexus-cli/src/commands/employee/bundle.js.map +1 -1
  70. package/dist/nexus-cli/src/commands/employee/deploy.e2e.test.js +9 -5
  71. package/dist/nexus-cli/src/commands/employee/deploy.e2e.test.js.map +1 -1
  72. package/dist/nexus-cli/src/commands/employee/deploy.js +45 -23
  73. package/dist/nexus-cli/src/commands/employee/deploy.js.map +1 -1
  74. package/dist/nexus-cli/src/commands/entitlement/grant.js +21 -11
  75. package/dist/nexus-cli/src/commands/entitlement/grant.js.map +1 -1
  76. package/dist/nexus-cli/src/commands/entitlement/list.js +11 -2
  77. package/dist/nexus-cli/src/commands/entitlement/list.js.map +1 -1
  78. package/dist/nexus-cli/src/commands/entitlement/revoke.js +20 -10
  79. package/dist/nexus-cli/src/commands/entitlement/revoke.js.map +1 -1
  80. package/dist/nexus-cli/src/commands/generate/class.js +5 -3
  81. package/dist/nexus-cli/src/commands/generate/class.js.map +1 -1
  82. package/dist/nexus-cli/src/commands/generate/component.js +5 -3
  83. package/dist/nexus-cli/src/commands/generate/component.js.map +1 -1
  84. package/dist/nexus-cli/src/commands/generate/project.js +5 -3
  85. package/dist/nexus-cli/src/commands/generate/project.js.map +1 -1
  86. package/dist/nexus-cli/src/commands/generate/test.js +5 -3
  87. package/dist/nexus-cli/src/commands/generate/test.js.map +1 -1
  88. package/dist/nexus-cli/src/commands/generate/trigger.js +5 -3
  89. package/dist/nexus-cli/src/commands/generate/trigger.js.map +1 -1
  90. package/dist/nexus-cli/src/commands/install-contract/index.js +34 -24
  91. package/dist/nexus-cli/src/commands/install-contract/index.js.map +1 -1
  92. package/dist/nexus-cli/src/commands/log/get.js +9 -2
  93. package/dist/nexus-cli/src/commands/log/get.js.map +1 -1
  94. package/dist/nexus-cli/src/commands/log/list.js +9 -1
  95. package/dist/nexus-cli/src/commands/log/list.js.map +1 -1
  96. package/dist/nexus-cli/src/commands/log/tail.js +101 -50
  97. package/dist/nexus-cli/src/commands/log/tail.js.map +1 -1
  98. package/dist/nexus-cli/src/commands/log/tail.test.d.ts +1 -0
  99. package/dist/nexus-cli/src/commands/log/tail.test.js +45 -0
  100. package/dist/nexus-cli/src/commands/log/tail.test.js.map +1 -0
  101. package/dist/nexus-cli/src/commands/metadata/deploy.js +34 -18
  102. package/dist/nexus-cli/src/commands/metadata/deploy.js.map +1 -1
  103. package/dist/nexus-cli/src/commands/metadata/diff.js +9 -6
  104. package/dist/nexus-cli/src/commands/metadata/diff.js.map +1 -1
  105. package/dist/nexus-cli/src/commands/metadata/export.js +7 -5
  106. package/dist/nexus-cli/src/commands/metadata/export.js.map +1 -1
  107. package/dist/nexus-cli/src/commands/metadata/import.js +24 -9
  108. package/dist/nexus-cli/src/commands/metadata/import.js.map +1 -1
  109. package/dist/nexus-cli/src/commands/metadata/retrieve.js +17 -7
  110. package/dist/nexus-cli/src/commands/metadata/retrieve.js.map +1 -1
  111. package/dist/nexus-cli/src/commands/metadata/validate-source.js +28 -14
  112. package/dist/nexus-cli/src/commands/metadata/validate-source.js.map +1 -1
  113. package/dist/nexus-cli/src/commands/metadata/validate.js +25 -11
  114. package/dist/nexus-cli/src/commands/metadata/validate.js.map +1 -1
  115. package/dist/nexus-cli/src/commands/org/default-set.js +10 -4
  116. package/dist/nexus-cli/src/commands/org/default-set.js.map +1 -1
  117. package/dist/nexus-cli/src/commands/org/display.js +17 -15
  118. package/dist/nexus-cli/src/commands/org/display.js.map +1 -1
  119. package/dist/nexus-cli/src/commands/org/login-jwt.js +20 -14
  120. package/dist/nexus-cli/src/commands/org/login-jwt.js.map +1 -1
  121. package/dist/nexus-cli/src/commands/org/login-web-terminal.test.d.ts +1 -0
  122. package/dist/nexus-cli/src/commands/org/login-web-terminal.test.js +128 -0
  123. package/dist/nexus-cli/src/commands/org/login-web-terminal.test.js.map +1 -0
  124. package/dist/nexus-cli/src/commands/org/login-web.js +180 -137
  125. package/dist/nexus-cli/src/commands/org/login-web.js.map +1 -1
  126. package/dist/nexus-cli/src/commands/org/logout.js +10 -4
  127. package/dist/nexus-cli/src/commands/org/logout.js.map +1 -1
  128. package/dist/nexus-cli/src/commands/org/open.js +16 -7
  129. package/dist/nexus-cli/src/commands/org/open.js.map +1 -1
  130. package/dist/nexus-cli/src/commands/org/step-up.js +15 -12
  131. package/dist/nexus-cli/src/commands/org/step-up.js.map +1 -1
  132. package/dist/nexus-cli/src/commands/package/deprecate.js +23 -14
  133. package/dist/nexus-cli/src/commands/package/deprecate.js.map +1 -1
  134. package/dist/nexus-cli/src/commands/package/format.js +17 -6
  135. package/dist/nexus-cli/src/commands/package/format.js.map +1 -1
  136. package/dist/nexus-cli/src/commands/package/helpers.d.ts +5 -0
  137. package/dist/nexus-cli/src/commands/package/helpers.js +16 -0
  138. package/dist/nexus-cli/src/commands/package/helpers.js.map +1 -1
  139. package/dist/nexus-cli/src/commands/package/history.js +20 -21
  140. package/dist/nexus-cli/src/commands/package/history.js.map +1 -1
  141. package/dist/nexus-cli/src/commands/package/info.js +43 -43
  142. package/dist/nexus-cli/src/commands/package/info.js.map +1 -1
  143. package/dist/nexus-cli/src/commands/package/install.js +45 -29
  144. package/dist/nexus-cli/src/commands/package/install.js.map +1 -1
  145. package/dist/nexus-cli/src/commands/package/list.js +46 -48
  146. package/dist/nexus-cli/src/commands/package/list.js.map +1 -1
  147. package/dist/nexus-cli/src/commands/package/pack.js +30 -16
  148. package/dist/nexus-cli/src/commands/package/pack.js.map +1 -1
  149. package/dist/nexus-cli/src/commands/package/package-payload.e2e.test.js +12 -0
  150. package/dist/nexus-cli/src/commands/package/package-payload.e2e.test.js.map +1 -1
  151. package/dist/nexus-cli/src/commands/package/package-query-json.e2e.test.js +9 -4
  152. package/dist/nexus-cli/src/commands/package/package-query-json.e2e.test.js.map +1 -1
  153. package/dist/nexus-cli/src/commands/package/plan.js +20 -13
  154. package/dist/nexus-cli/src/commands/package/plan.js.map +1 -1
  155. package/dist/nexus-cli/src/commands/package/promote.js +16 -11
  156. package/dist/nexus-cli/src/commands/package/promote.js.map +1 -1
  157. package/dist/nexus-cli/src/commands/package/promotion-history.js +24 -18
  158. package/dist/nexus-cli/src/commands/package/promotion-history.js.map +1 -1
  159. package/dist/nexus-cli/src/commands/package/publish.js +23 -13
  160. package/dist/nexus-cli/src/commands/package/publish.js.map +1 -1
  161. package/dist/nexus-cli/src/commands/package/rollback.js +64 -43
  162. package/dist/nexus-cli/src/commands/package/rollback.js.map +1 -1
  163. package/dist/nexus-cli/src/commands/package/rollout-status.js +15 -9
  164. package/dist/nexus-cli/src/commands/package/rollout-status.js.map +1 -1
  165. package/dist/nexus-cli/src/commands/package/rollout-update.js +16 -9
  166. package/dist/nexus-cli/src/commands/package/rollout-update.js.map +1 -1
  167. package/dist/nexus-cli/src/commands/package/rollout-workspaces.js +18 -12
  168. package/dist/nexus-cli/src/commands/package/rollout-workspaces.js.map +1 -1
  169. package/dist/nexus-cli/src/commands/package/search.js +27 -25
  170. package/dist/nexus-cli/src/commands/package/search.js.map +1 -1
  171. package/dist/nexus-cli/src/commands/package/uninstall.js +23 -16
  172. package/dist/nexus-cli/src/commands/package/uninstall.js.map +1 -1
  173. package/dist/nexus-cli/src/commands/package/upgrade.js +37 -23
  174. package/dist/nexus-cli/src/commands/package/upgrade.js.map +1 -1
  175. package/dist/nexus-cli/src/commands/package/validate.js +75 -59
  176. package/dist/nexus-cli/src/commands/package/validate.js.map +1 -1
  177. package/dist/nexus-cli/src/commands/package/versions.js +13 -12
  178. package/dist/nexus-cli/src/commands/package/versions.js.map +1 -1
  179. package/dist/nexus-cli/src/commands/preflight/get.js +14 -11
  180. package/dist/nexus-cli/src/commands/preflight/get.js.map +1 -1
  181. package/dist/nexus-cli/src/commands/preflight/run.e2e.test.js +9 -10
  182. package/dist/nexus-cli/src/commands/preflight/run.e2e.test.js.map +1 -1
  183. package/dist/nexus-cli/src/commands/preflight/run.js +14 -10
  184. package/dist/nexus-cli/src/commands/preflight/run.js.map +1 -1
  185. package/dist/nexus-cli/src/commands/project/convert.js +45 -35
  186. package/dist/nexus-cli/src/commands/project/convert.js.map +1 -1
  187. package/dist/nexus-cli/src/commands/project/deploy-start.js +40 -26
  188. package/dist/nexus-cli/src/commands/project/deploy-start.js.map +1 -1
  189. package/dist/nexus-cli/src/commands/project/index.js +5 -3
  190. package/dist/nexus-cli/src/commands/project/index.js.map +1 -1
  191. package/dist/nexus-cli/src/commands/revision/baseline.js +23 -10
  192. package/dist/nexus-cli/src/commands/revision/baseline.js.map +1 -1
  193. package/dist/nexus-cli/src/commands/revision/diff.js +9 -5
  194. package/dist/nexus-cli/src/commands/revision/diff.js.map +1 -1
  195. package/dist/nexus-cli/src/commands/revision/history.js +5 -3
  196. package/dist/nexus-cli/src/commands/revision/history.js.map +1 -1
  197. package/dist/nexus-cli/src/commands/revision/revision.e2e.test.js +4 -4
  198. package/dist/nexus-cli/src/commands/revision/revision.e2e.test.js.map +1 -1
  199. package/dist/nexus-cli/src/commands/revision/rollback.js +13 -5
  200. package/dist/nexus-cli/src/commands/revision/rollback.js.map +1 -1
  201. package/dist/nexus-cli/src/commands/sandbox/create.js +7 -5
  202. package/dist/nexus-cli/src/commands/sandbox/create.js.map +1 -1
  203. package/dist/nexus-cli/src/commands/sandbox/delete.js +12 -6
  204. package/dist/nexus-cli/src/commands/sandbox/delete.js.map +1 -1
  205. package/dist/nexus-cli/src/commands/sandbox/list.js +9 -1
  206. package/dist/nexus-cli/src/commands/sandbox/list.js.map +1 -1
  207. package/dist/nexus-cli/src/commands/script/run.js +17 -10
  208. package/dist/nexus-cli/src/commands/script/run.js.map +1 -1
  209. package/dist/nexus-cli/src/commands/source/get.js +11 -4
  210. package/dist/nexus-cli/src/commands/source/get.js.map +1 -1
  211. package/dist/nexus-cli/src/commands/source/pull.js +3 -2
  212. package/dist/nexus-cli/src/commands/source/pull.js.map +1 -1
  213. package/dist/nexus-cli/src/commands/source/push.js +14 -11
  214. package/dist/nexus-cli/src/commands/source/push.js.map +1 -1
  215. package/dist/nexus-cli/src/commands/source/source-sync.e2e.test.js +3 -2
  216. package/dist/nexus-cli/src/commands/source/source-sync.e2e.test.js.map +1 -1
  217. package/dist/nexus-cli/src/commands/source/status.js +3 -2
  218. package/dist/nexus-cli/src/commands/source/status.js.map +1 -1
  219. package/dist/nexus-cli/src/commands/test/report.js +9 -2
  220. package/dist/nexus-cli/src/commands/test/report.js.map +1 -1
  221. package/dist/nexus-cli/src/commands/test/run.js +13 -7
  222. package/dist/nexus-cli/src/commands/test/run.js.map +1 -1
  223. package/dist/nexus-cli/src/commands/user/service-account.js +9 -5
  224. package/dist/nexus-cli/src/commands/user/service-account.js.map +1 -1
  225. package/dist/nexus-cli/src/commands/validate/index.js +20 -8
  226. package/dist/nexus-cli/src/commands/validate/index.js.map +1 -1
  227. package/dist/nexus-cli/src/commands/workforce/agent.js +3 -3
  228. package/dist/nexus-cli/src/commands/workforce/command-attribution.test.d.ts +1 -0
  229. package/dist/nexus-cli/src/commands/workforce/command-attribution.test.js +26 -0
  230. package/dist/nexus-cli/src/commands/workforce/command-attribution.test.js.map +1 -0
  231. package/dist/nexus-cli/src/commands/workforce/escalation.js +1 -1
  232. package/dist/nexus-cli/src/commands/workforce/knowledge.js +6 -6
  233. package/dist/nexus-cli/src/commands/workforce/learning.js +5 -5
  234. package/dist/nexus-cli/src/commands/workforce/notification.js +1 -1
  235. package/dist/nexus-cli/src/commands/workforce/observe.js +2 -2
  236. package/dist/nexus-cli/src/commands/workforce/orchestration.js +2 -2
  237. package/dist/nexus-cli/src/commands/workforce/permission.js +3 -3
  238. package/dist/nexus-cli/src/commands/workforce/provider.js +1 -1
  239. package/dist/nexus-cli/src/commands/workforce/rehearsal.js +2 -2
  240. package/dist/nexus-cli/src/commands/workforce/sop.js +1 -1
  241. package/dist/nexus-cli/src/commands/workforce/task.js +1 -1
  242. package/dist/nexus-cli/src/commands/workforce/test-case.js +9 -9
  243. package/dist/nexus-cli/src/commands/workspace/index.js +55 -19
  244. package/dist/nexus-cli/src/commands/workspace/index.js.map +1 -1
  245. package/dist/nexus-cli/src/contracts/command-contract-matrix.d.ts +39 -0
  246. package/dist/nexus-cli/src/contracts/command-contract-matrix.generated.test.d.ts +1 -0
  247. package/dist/nexus-cli/src/contracts/command-contract-matrix.generated.test.js +842 -0
  248. package/dist/nexus-cli/src/contracts/command-contract-matrix.generated.test.js.map +1 -0
  249. package/dist/nexus-cli/src/contracts/command-contract-matrix.js +114 -0
  250. package/dist/nexus-cli/src/contracts/command-contract-matrix.js.map +1 -0
  251. package/dist/nexus-cli/src/contracts/command-contract-matrix.runner.d.ts +28 -0
  252. package/dist/nexus-cli/src/contracts/command-contract-matrix.runner.js +159 -0
  253. package/dist/nexus-cli/src/contracts/command-contract-matrix.runner.js.map +1 -0
  254. package/dist/nexus-cli/src/contracts/command-contract-matrix.runner.test.d.ts +1 -0
  255. package/dist/nexus-cli/src/contracts/command-contract-matrix.runner.test.js +69 -0
  256. package/dist/nexus-cli/src/contracts/command-contract-matrix.runner.test.js.map +1 -0
  257. package/dist/nexus-cli/src/contracts/command-contract-matrix.scenarios.d.ts +2 -0
  258. package/dist/nexus-cli/src/contracts/command-contract-matrix.scenarios.js +145 -0
  259. package/dist/nexus-cli/src/contracts/command-contract-matrix.scenarios.js.map +1 -0
  260. package/dist/nexus-cli/src/contracts/command-contract-matrix.test.d.ts +1 -0
  261. package/dist/nexus-cli/src/contracts/command-contract-matrix.test.js +53 -0
  262. package/dist/nexus-cli/src/contracts/command-contract-matrix.test.js.map +1 -0
  263. package/dist/nexus-cli/src/contracts/command-inventory.d.ts +35 -0
  264. package/dist/nexus-cli/src/contracts/command-inventory.js +88 -0
  265. package/dist/nexus-cli/src/contracts/command-inventory.js.map +1 -0
  266. package/dist/nexus-cli/src/contracts/command-inventory.test.d.ts +1 -0
  267. package/dist/nexus-cli/src/contracts/command-inventory.test.js +46 -0
  268. package/dist/nexus-cli/src/contracts/command-inventory.test.js.map +1 -0
  269. package/dist/nexus-cli/src/contracts/command-policy.exporter.d.ts +24 -0
  270. package/dist/nexus-cli/src/contracts/command-policy.exporter.js +51 -0
  271. package/dist/nexus-cli/src/contracts/command-policy.exporter.js.map +1 -0
  272. package/dist/nexus-cli/src/contracts/command-policy.exporter.test.d.ts +1 -0
  273. package/dist/nexus-cli/src/contracts/command-policy.exporter.test.js +33 -0
  274. package/dist/nexus-cli/src/contracts/command-policy.exporter.test.js.map +1 -0
  275. package/dist/nexus-cli/src/contracts/command-policy.registry.d.ts +14 -0
  276. package/dist/nexus-cli/src/contracts/command-policy.registry.js +185 -0
  277. package/dist/nexus-cli/src/contracts/command-policy.registry.js.map +1 -0
  278. package/dist/nexus-cli/src/contracts/command-policy.registry.test.d.ts +1 -0
  279. package/dist/nexus-cli/src/contracts/command-policy.registry.test.js +43 -0
  280. package/dist/nexus-cli/src/contracts/command-policy.registry.test.js.map +1 -0
  281. package/dist/nexus-cli/src/contracts/command-policy.validator.d.ts +20 -0
  282. package/dist/nexus-cli/src/contracts/command-policy.validator.js +179 -0
  283. package/dist/nexus-cli/src/contracts/command-policy.validator.js.map +1 -0
  284. package/dist/nexus-cli/src/contracts/command-policy.validator.test.d.ts +1 -0
  285. package/dist/nexus-cli/src/contracts/command-policy.validator.test.js +70 -0
  286. package/dist/nexus-cli/src/contracts/command-policy.validator.test.js.map +1 -0
  287. package/dist/nexus-cli/src/contracts/index.d.ts +7 -0
  288. package/dist/nexus-cli/src/contracts/index.js +24 -1
  289. package/dist/nexus-cli/src/contracts/index.js.map +1 -1
  290. package/dist/nexus-cli/src/contracts/machine-result.d.ts +3 -3
  291. package/dist/nexus-cli/src/contracts/machine-result.js +6 -0
  292. package/dist/nexus-cli/src/contracts/machine-result.js.map +1 -1
  293. package/dist/nexus-cli/src/runtime/failure-normalizer.d.ts +7 -0
  294. package/dist/nexus-cli/src/runtime/failure-normalizer.js +78 -0
  295. package/dist/nexus-cli/src/runtime/failure-normalizer.js.map +1 -0
  296. package/dist/nexus-cli/src/runtime/failure-normalizer.test.d.ts +1 -0
  297. package/dist/nexus-cli/src/runtime/failure-normalizer.test.js +41 -0
  298. package/dist/nexus-cli/src/runtime/failure-normalizer.test.js.map +1 -0
  299. package/dist/nexus-cli/src/runtime/output-coordinator.d.ts +31 -0
  300. package/dist/nexus-cli/src/runtime/output-coordinator.js +75 -0
  301. package/dist/nexus-cli/src/runtime/output-coordinator.js.map +1 -0
  302. package/dist/nexus-cli/src/runtime/output-coordinator.test.d.ts +1 -0
  303. package/dist/nexus-cli/src/runtime/output-coordinator.test.js +80 -0
  304. package/dist/nexus-cli/src/runtime/output-coordinator.test.js.map +1 -0
  305. package/dist/nexus-cli/src/services/workforce-bundle-archive.d.ts +1 -1
  306. package/dist/nexus-cli/src/services/workforce-bundle-remote.d.ts +1 -1
  307. package/dist/nexus-cli/src/services/workforce-test-remote.d.ts +1 -1
  308. package/dist/nexus-cli/src/services/workforce-test-remote.js +1 -1
  309. package/dist/nexus-cli/src/services/workforce-test-remote.test.js +2 -2
  310. package/dist/nexus-cli/src/utils/error-handler.js +3 -0
  311. package/dist/nexus-cli/src/utils/error-handler.js.map +1 -1
  312. package/dist/tsconfig.tsbuildinfo +1 -1
  313. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.27 - 2026-08-03
4
+
5
+ - Introduce the complete v2 CLI command-contract inventory for every executable
6
+ leaf and mode, with one canonical machine-result envelope and outermost error
7
+ boundary across legacy and current command families.
8
+ - Add registry-derived success, empty, failure, and dry-run contract coverage,
9
+ including exit-code equality, stdout/stderr isolation, redaction, resource
10
+ hygiene, and persistent side-effect checks.
11
+ - Make the focused CLI command-contract gate release-blocking and expose the
12
+ complete implemented inventory through machine-readable AI help.
13
+
3
14
  ## 0.3.26 - 2026-08-02
4
15
 
5
16
  - Keep `workspace health` JSON envelope and process exit semantics aligned for
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "packageName": "@nexusclawhq/cli",
3
- "version": "0.3.26",
4
- "gitSha": "c4922a47e26700c8f121d74921eb40d417cbdfa2",
3
+ "version": "0.3.27",
4
+ "gitSha": "11a23ccec61ac33bd99331a5517019fd01d457bf",
5
5
  "ciRunId": null,
6
- "contentDigest": "sha256:a2e5fa18c91dc3676a872532be375c83f695f7f3633286c45ff1c1741184cebf",
7
- "generatedAt": "2026-08-02T13:17:53.782Z"
6
+ "contentDigest": "sha256:91e277b464f261562326f77735a60cf1fb9d29e30147831b1353774d404f0918",
7
+ "generatedAt": "2026-08-02T23:23:46.412Z"
8
8
  }
@@ -7,7 +7,7 @@
7
7
  * registry is owned by the CLI package; these types are the shared import
8
8
  * surface consumed by backend guard parity checks as well.
9
9
  */
10
- import { CLI_COMMAND_CONTRACT_SCHEMA_VERSION, CLI_RESULT_SCHEMA_VERSION } from './contract-versions';
10
+ import { CLI_COMMAND_CONTRACT_SCHEMA_VERSION, CLI_COMMAND_CONTRACT_SCHEMA_VERSION_V2, CLI_RESULT_SCHEMA_VERSION } from './contract-versions';
11
11
  import type { JsonValue } from './json-value';
12
12
  export type CliExitCode = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 64 | 70;
13
13
  export type CliArgvSchemaMatcher = 'uuid' | 'sha256' | 'positive_integer';
@@ -93,6 +93,42 @@ export interface CliCommandContractV1 {
93
93
  }>;
94
94
  readonly contractCompleteness: 'complete' | 'derived' | 'partial';
95
95
  }
96
+ export type CliOutputModeV2 = 'human' | 'machine' | 'dual';
97
+ export type CliMutabilityV2 = 'read-only' | 'local-write' | 'remote-write';
98
+ export interface CliDryRunExemptionV2 {
99
+ readonly owner: string;
100
+ readonly reason: string;
101
+ readonly exitCriteria: string;
102
+ /** ISO-8601 calendar date. An expired exemption fails the CLI owner gate. */
103
+ readonly expiresOn: string;
104
+ }
105
+ export interface CliInvocationPolicyV2 {
106
+ readonly outputMode: CliOutputModeV2;
107
+ readonly mutability: CliMutabilityV2;
108
+ readonly supportsDryRun: boolean;
109
+ readonly dryRunExemption?: CliDryRunExemptionV2;
110
+ readonly environmentOption: '--env' | null;
111
+ readonly environmentAliases: ReadonlyArray<string>;
112
+ readonly workspaceOption: '--workspace-id' | null;
113
+ readonly localWorkspaceOption: '--workspace' | null;
114
+ readonly exitCodes: {
115
+ readonly success: ReadonlyArray<CliExitCode>;
116
+ readonly warning: ReadonlyArray<CliExitCode>;
117
+ readonly error: ReadonlyArray<CliExitCode>;
118
+ };
119
+ }
120
+ export interface CliExecutionModeV2 extends CliExecutionModeV1 {
121
+ readonly invocationPolicy: CliInvocationPolicyV2;
122
+ }
123
+ /**
124
+ * v2 covers every executable Commander leaf. v1 stays frozen for consumers of
125
+ * the original executable-asset subset; callers must never treat a partial
126
+ * v1-to-v2 projection as satisfying the completeness gate.
127
+ */
128
+ export interface CliCommandContractV2 extends Omit<CliCommandContractV1, 'schemaVersion' | 'executionModes'> {
129
+ readonly schemaVersion: typeof CLI_COMMAND_CONTRACT_SCHEMA_VERSION_V2;
130
+ readonly executionModes: ReadonlyArray<CliExecutionModeV2>;
131
+ }
96
132
  export interface CliDiagnosticV1 {
97
133
  readonly code: string;
98
134
  readonly severity: 'error' | 'warning' | 'info';
@@ -66,8 +66,12 @@ export declare const WORKFORCE_RELEASE_HEAD_CHANGED_EVENT: "ai.workforce.release
66
66
  export declare const CODE_ACTION_REVOKED_EVENT: "ai.workforce.code-action.revoked.v1";
67
67
  /** Machine-readable command-contract registry version. */
68
68
  export declare const CLI_COMMAND_CONTRACT_SCHEMA_VERSION: "nexusclaw.cli-command-contract/v1";
69
+ /** Complete all-Commander-leaf contract with invocation/output policy. */
70
+ export declare const CLI_COMMAND_CONTRACT_SCHEMA_VERSION_V2: "nexusclaw.cli-command-contract/v2";
69
71
  /** Exported registry document containing every command contract. */
70
72
  export declare const CLI_COMMAND_REGISTRY_SCHEMA_VERSION: "nexusclaw.cli-command-registry/v1";
73
+ /** Complete all-Commander-leaf registry. */
74
+ export declare const CLI_COMMAND_REGISTRY_SCHEMA_VERSION_V2: "nexusclaw.cli-command-registry/v2";
71
75
  /** The single machine result envelope emitted on `--json` stdout. */
72
76
  export declare const CLI_RESULT_SCHEMA_VERSION: "nexusclaw.cli-result/v1";
73
77
  /** Deterministic command-order DAG (implemented modes only). */
@@ -122,4 +126,4 @@ export declare const APPROVAL_SUBJECT_LEGACY: "legacy";
122
126
  export declare const APPROVAL_POLICY_PURPOSE_TOOL_CALL: "tool_call";
123
127
  export declare const APPROVAL_POLICY_PURPOSE_WORKFORCE_RELEASE: "workforce_release";
124
128
  /** All schema-version string literals as a discriminated alias. */
125
- export type AgentExecutableAssetSchemaVersion = typeof BUNDLE_SCHEMA_VERSION | typeof RUNTIME_BINDINGS_SCHEMA_VERSION | typeof BUNDLE_LOCK_SCHEMA_VERSION | typeof CONNECTOR_BINDING_REVISION_SCHEMA_VERSION | typeof AGENT_CODE_TOOL_CATALOG_SCHEMA_VERSION | typeof AGENT_CODE_TOOL_EXPORT_SCHEMA_VERSION | typeof ACTION_CONTRACT_VERSION | typeof RUNTIME_API_VERSION_V2 | typeof FLOWS_PAYLOAD_V2 | typeof FLOWS_PAYLOAD_V1 | typeof CLI_COMMAND_CONTRACT_SCHEMA_VERSION | typeof CLI_COMMAND_REGISTRY_SCHEMA_VERSION | typeof CLI_RESULT_SCHEMA_VERSION | typeof COMMAND_ORDER_SCHEMA_VERSION | typeof AI_AUTHORING_CONTEXT_SCHEMA_VERSION | typeof AI_AUTHORING_CONTEXT_LOCK_SCHEMA_VERSION;
129
+ export type AgentExecutableAssetSchemaVersion = typeof BUNDLE_SCHEMA_VERSION | typeof RUNTIME_BINDINGS_SCHEMA_VERSION | typeof BUNDLE_LOCK_SCHEMA_VERSION | typeof CONNECTOR_BINDING_REVISION_SCHEMA_VERSION | typeof AGENT_CODE_TOOL_CATALOG_SCHEMA_VERSION | typeof AGENT_CODE_TOOL_EXPORT_SCHEMA_VERSION | typeof ACTION_CONTRACT_VERSION | typeof RUNTIME_API_VERSION_V2 | typeof FLOWS_PAYLOAD_V2 | typeof FLOWS_PAYLOAD_V1 | typeof CLI_COMMAND_CONTRACT_SCHEMA_VERSION | typeof CLI_COMMAND_CONTRACT_SCHEMA_VERSION_V2 | typeof CLI_COMMAND_REGISTRY_SCHEMA_VERSION | typeof CLI_COMMAND_REGISTRY_SCHEMA_VERSION_V2 | typeof CLI_RESULT_SCHEMA_VERSION | typeof COMMAND_ORDER_SCHEMA_VERSION | typeof AI_AUTHORING_CONTEXT_SCHEMA_VERSION | typeof AI_AUTHORING_CONTEXT_LOCK_SCHEMA_VERSION;
@@ -11,8 +11,8 @@
11
11
  * edit: it requires paired schema/test/release-evidence updates.
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.CODE_ACTION_CASES_SCHEMA_VERSION = exports.WORKFORCE_RELEASE_EVIDENCE_SCHEMA_VERSION = exports.EMPLOYEE_PACKAGE_V2_SCHEMA_VERSION = exports.FLOW_PACKAGE_SCHEMA_VERSION = exports.FLOW_NODE_CATALOG_SCHEMA_VERSION = exports.INVOKABLE_AUTHORING_CATALOG_SCHEMA_VERSION = exports.APPROVAL_POLICY_AUTHORING_CATALOG_SCHEMA_VERSION = exports.AI_POLICY_AUTHORING_CATALOG_SCHEMA_VERSION = exports.CONNECTOR_AUTHORING_CATALOG_SCHEMA_VERSION = exports.OBJECT_AUTHORING_CATALOG_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNING_KEY_CACHE_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNING_KEYRING_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNING_KEY_SET_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNATURE_ALG_NONE = exports.AI_CONTEXT_SIGNATURE_ALG_ED25519 = exports.AI_CONTEXT_SIGNATURE_TYP = exports.WORKSPACE_AUTHORING_CONTRACT_SCHEMA_VERSION = exports.AI_AUTHORING_CONTEXT_LOCK_SCHEMA_VERSION = exports.AI_AUTHORING_CONTEXT_SCHEMA_VERSION = exports.CLI_CONTRACT_HUMAN_HELP_POINTER = exports.COMMAND_ORDER_SCHEMA_VERSION = exports.CLI_RESULT_SCHEMA_VERSION = exports.CLI_COMMAND_REGISTRY_SCHEMA_VERSION = exports.CLI_COMMAND_CONTRACT_SCHEMA_VERSION = exports.CODE_ACTION_REVOKED_EVENT = exports.WORKFORCE_RELEASE_HEAD_CHANGED_EVENT = exports.RELEASE_SET_ELIGIBILITY_REJECTED = exports.RELEASE_SET_ELIGIBILITY_ELIGIBLE = exports.RELEASE_SET_ELIGIBILITY_STAGED = exports.APPROVAL_SUBJECT_DECIDED_EVENT = exports.FLOW_ACTION_TYPE_INVOKE_UNIT = exports.RULE_SUGAR_INVOKE_ACTION = exports.FLOWS_PAYLOAD_V1 = exports.FLOWS_PAYLOAD_V2 = exports.CODE_RUNTIME_ISOLATION_EVIDENCE_SCHEMA_VERSION = exports.SANDBOX_PAYLOAD_CIPHER_SCHEMA_VERSION = exports.SANDBOX_EXECUTION_RESULT_SCHEMA_VERSION = exports.SANDBOX_EXECUTION_TICKET_SCHEMA_VERSION = exports.WORKER_THREAD_PROVIDER_ID = exports.VERIFIED_ISOLATE_PROVIDER_ID = exports.RUNTIME_API_VERSION_V2 = exports.ACTION_CONTRACT_VERSION = exports.AGENT_CODE_TOOL_EXPORT_SCHEMA_VERSION = exports.AGENT_CODE_TOOL_CATALOG_SCHEMA_VERSION = exports.CODE_EXTENSION_GOVERNANCE_V1 = exports.CODE_EXTENSION_GOVERNANCE_V2 = exports.CONNECTOR_BINDING_REVISION_SCHEMA_VERSION = exports.BUNDLE_LOCK_SCHEMA_VERSION = exports.RUNTIME_BINDINGS_SCHEMA_VERSION = exports.BUNDLE_SCHEMA_VERSION = void 0;
15
- exports.APPROVAL_POLICY_PURPOSE_WORKFORCE_RELEASE = exports.APPROVAL_POLICY_PURPOSE_TOOL_CALL = exports.APPROVAL_SUBJECT_LEGACY = exports.APPROVAL_SUBJECT_FLOW_TOOL = exports.APPROVAL_SUBJECT_AGENT_TOOL = exports.APPROVAL_SUBJECT_WORKFORCE_RELEASE = exports.IDEMPOTENCY_DOMAIN_CODE_ACTION_WRITE = exports.IDEMPOTENCY_DOMAIN_RECORD_CURSOR = exports.CANONICAL_ARCHIVE_FORMAT = exports.JSZIP_VERSION = exports.AJV_VERSION = exports.TYPESCRIPT_VERSION = void 0;
14
+ exports.EMPLOYEE_PACKAGE_V2_SCHEMA_VERSION = exports.FLOW_PACKAGE_SCHEMA_VERSION = exports.FLOW_NODE_CATALOG_SCHEMA_VERSION = exports.INVOKABLE_AUTHORING_CATALOG_SCHEMA_VERSION = exports.APPROVAL_POLICY_AUTHORING_CATALOG_SCHEMA_VERSION = exports.AI_POLICY_AUTHORING_CATALOG_SCHEMA_VERSION = exports.CONNECTOR_AUTHORING_CATALOG_SCHEMA_VERSION = exports.OBJECT_AUTHORING_CATALOG_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNING_KEY_CACHE_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNING_KEYRING_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNING_KEY_SET_SCHEMA_VERSION = exports.AI_CONTEXT_SIGNATURE_ALG_NONE = exports.AI_CONTEXT_SIGNATURE_ALG_ED25519 = exports.AI_CONTEXT_SIGNATURE_TYP = exports.WORKSPACE_AUTHORING_CONTRACT_SCHEMA_VERSION = exports.AI_AUTHORING_CONTEXT_LOCK_SCHEMA_VERSION = exports.AI_AUTHORING_CONTEXT_SCHEMA_VERSION = exports.CLI_CONTRACT_HUMAN_HELP_POINTER = exports.COMMAND_ORDER_SCHEMA_VERSION = exports.CLI_RESULT_SCHEMA_VERSION = exports.CLI_COMMAND_REGISTRY_SCHEMA_VERSION_V2 = exports.CLI_COMMAND_REGISTRY_SCHEMA_VERSION = exports.CLI_COMMAND_CONTRACT_SCHEMA_VERSION_V2 = exports.CLI_COMMAND_CONTRACT_SCHEMA_VERSION = exports.CODE_ACTION_REVOKED_EVENT = exports.WORKFORCE_RELEASE_HEAD_CHANGED_EVENT = exports.RELEASE_SET_ELIGIBILITY_REJECTED = exports.RELEASE_SET_ELIGIBILITY_ELIGIBLE = exports.RELEASE_SET_ELIGIBILITY_STAGED = exports.APPROVAL_SUBJECT_DECIDED_EVENT = exports.FLOW_ACTION_TYPE_INVOKE_UNIT = exports.RULE_SUGAR_INVOKE_ACTION = exports.FLOWS_PAYLOAD_V1 = exports.FLOWS_PAYLOAD_V2 = exports.CODE_RUNTIME_ISOLATION_EVIDENCE_SCHEMA_VERSION = exports.SANDBOX_PAYLOAD_CIPHER_SCHEMA_VERSION = exports.SANDBOX_EXECUTION_RESULT_SCHEMA_VERSION = exports.SANDBOX_EXECUTION_TICKET_SCHEMA_VERSION = exports.WORKER_THREAD_PROVIDER_ID = exports.VERIFIED_ISOLATE_PROVIDER_ID = exports.RUNTIME_API_VERSION_V2 = exports.ACTION_CONTRACT_VERSION = exports.AGENT_CODE_TOOL_EXPORT_SCHEMA_VERSION = exports.AGENT_CODE_TOOL_CATALOG_SCHEMA_VERSION = exports.CODE_EXTENSION_GOVERNANCE_V1 = exports.CODE_EXTENSION_GOVERNANCE_V2 = exports.CONNECTOR_BINDING_REVISION_SCHEMA_VERSION = exports.BUNDLE_LOCK_SCHEMA_VERSION = exports.RUNTIME_BINDINGS_SCHEMA_VERSION = exports.BUNDLE_SCHEMA_VERSION = void 0;
15
+ exports.APPROVAL_POLICY_PURPOSE_WORKFORCE_RELEASE = exports.APPROVAL_POLICY_PURPOSE_TOOL_CALL = exports.APPROVAL_SUBJECT_LEGACY = exports.APPROVAL_SUBJECT_FLOW_TOOL = exports.APPROVAL_SUBJECT_AGENT_TOOL = exports.APPROVAL_SUBJECT_WORKFORCE_RELEASE = exports.IDEMPOTENCY_DOMAIN_CODE_ACTION_WRITE = exports.IDEMPOTENCY_DOMAIN_RECORD_CURSOR = exports.CANONICAL_ARCHIVE_FORMAT = exports.JSZIP_VERSION = exports.AJV_VERSION = exports.TYPESCRIPT_VERSION = exports.CODE_ACTION_CASES_SCHEMA_VERSION = exports.WORKFORCE_RELEASE_EVIDENCE_SCHEMA_VERSION = void 0;
16
16
  // ---- Composite workforce bundle & bindings (design §5) ----------------------
17
17
  /** Source bundle contract. */
18
18
  exports.BUNDLE_SCHEMA_VERSION = 'ai-workforce-executable-bundle/v1';
@@ -76,8 +76,12 @@ exports.CODE_ACTION_REVOKED_EVENT = 'ai.workforce.code-action.revoked.v1';
76
76
  // ---- CLI machine contract (design §16) --------------------------------------
77
77
  /** Machine-readable command-contract registry version. */
78
78
  exports.CLI_COMMAND_CONTRACT_SCHEMA_VERSION = 'nexusclaw.cli-command-contract/v1';
79
+ /** Complete all-Commander-leaf contract with invocation/output policy. */
80
+ exports.CLI_COMMAND_CONTRACT_SCHEMA_VERSION_V2 = 'nexusclaw.cli-command-contract/v2';
79
81
  /** Exported registry document containing every command contract. */
80
82
  exports.CLI_COMMAND_REGISTRY_SCHEMA_VERSION = 'nexusclaw.cli-command-registry/v1';
83
+ /** Complete all-Commander-leaf registry. */
84
+ exports.CLI_COMMAND_REGISTRY_SCHEMA_VERSION_V2 = 'nexusclaw.cli-command-registry/v2';
81
85
  /** The single machine result envelope emitted on `--json` stdout. */
82
86
  exports.CLI_RESULT_SCHEMA_VERSION = 'nexusclaw.cli-result/v1';
83
87
  /** Deterministic command-order DAG (implemented modes only). */
@@ -1 +1 @@
1
- {"version":3,"file":"contract-versions.js","sourceRoot":"","sources":["../../src/agent-executable-assets/contract-versions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-versions.js","sourceRoot":"","sources":["../../src/agent-executable-assets/contract-versions.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export { validateWorkforceReleaseEvidencePayload, type CandidateEvidenceExecutio
20
20
  export { buildWorkforceReleaseGateReceipt } from './workforce-release-gate-receipt';
21
21
  export { FLOW_PAYLOAD_V2_VERSION, type FlowActionTypeV2, type FlowInvokeUnitActionSettingV2, type FlowInputMappingV2, type FlowErrorPolicyV2, type FlowFaultMarkerV2, type FlowRuleSugarActionTypeV2, type FlowRevisionIdentityV1, type WorkflowVersionLifecycleStatus, type ApprovalSubjectDecidedEventV1, type FlowBindingRiskLevelV2, } from './flow-payload-v2.types';
22
22
  export { type FlowRevisionDefinitionV2, canonicalizeFlowJsonPointer, normalizeFlowInputMappings, buildCanonicalFlowMappedInput, normalizeFlowRevisionDefinition, computeFlowRevisionIdentity, } from './flow-v2-canonical';
23
- export { type CliExitCode, type CliArgvSchemaMatcher, type CliArgvPredicateAtomV1, type CliArgvPredicateExprV1, type CliPermissionFactV1, type CliPermissionRuleV1, type CliPermissionProfileId, type CliEffectKind, type CliArgumentContract, type CliOptionContract, type CliExecutionModeV1, type CliCommandContractV1, type CliDiagnosticV1, type CliNextCommandV1, type CliEvidenceEntryV1, type CliResultV1, } from './cli-contract.types';
23
+ export { type CliExitCode, type CliArgvSchemaMatcher, type CliArgvPredicateAtomV1, type CliArgvPredicateExprV1, type CliPermissionFactV1, type CliPermissionRuleV1, type CliPermissionProfileId, type CliEffectKind, type CliArgumentContract, type CliOptionContract, type CliExecutionModeV1, type CliCommandContractV1, type CliOutputModeV2, type CliMutabilityV2, type CliDryRunExemptionV2, type CliInvocationPolicyV2, type CliExecutionModeV2, type CliCommandContractV2, type CliDiagnosticV1, type CliNextCommandV1, type CliEvidenceEntryV1, type CliResultV1, } from './cli-contract.types';
24
24
  export { type AiContextPrincipalKind, type AiContextOnlineSelector, type AiContextSurface, type AiContextSha256, type DescribeAiAuthoringContextRequestV2, type AiAuthoringCandidateReleaseStampV1, type AiAuthoringCatalogDocumentV1, type AiAuthoringContextHashesV1, type AiAuthoringContextSnapshotV2, type VerifyAiAuthoringContextFreshnessRequestV2, type SignAiAuthoringContextLockRequestV2, type AiAuthoringContextVerificationV1, type AiAuthoringContextManifestV2, type AiAuthoringContextLockV2, type AiAuthoringContextDigestSetV1, type AiContextSignatureHeaderV1, type AiContextSignaturePayloadV1, type AiContextSigningPublicJwkV1, type AiContextSigningKeySetV1, type AiContextCommonFileEntry, AI_CONTEXT_COMMON_FILES, AI_CONTEXT_SURFACE_FILES, resolveAiContextFileMatrix, resolveAiContextManifestFileMatrix, assertAiContextDeclaredPaths, } from './ai-authoring-context.types';
25
25
  export { type Sha256Digest as CanonicalSha256Digest, canonicalJsonString, canonicalJsonDigest, rawByteDigest, rawStringDigest, aiAuthoringContextDigests, unsignedAiAuthoringContextLock, releaseItemSetDigest, type ReleaseItemDigestInput, portableBundleDigest, materializedItemRefsDigest, releaseEnvelopeDigest, selfExcludingDigest, escapeJsonPointer, parseSha256, isSha256Digest, } from './canonical-hash';
26
26
  export { type AiContextSigningErrorCode, AiContextSigningError, type AiContextDetachedSigningInput, type VerifyAiContextDetachedJwsInput, assertAiContextSigningKeySet, buildAiContextDetachedSigningInput, verifyAiContextDetachedJws, } from './ai-authoring-context-signing';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-executable-assets/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;AAEH,+EAA+E;AAC/E,sDAAoC;AAEpC,oCAAoC;AACpC,2CASsB;AAHpB,yGAAA,WAAW,OAAA;AACX,4GAAA,cAAc,OAAA;AACd,6GAAA,eAAe,OAAA;AAGjB,2EAA2E;AAC3E,sDAAoC;AAEpC,kFAAkF;AAClF,kEAAgD;AAChD,wEAAsD;AACtD,8EAA4D;AAC5D,mEAAiD;AAkCjD,6EAIuC;AAHrC,sJAAA,uCAAuC,OAAA;AAIzC,mFAAoF;AAA3E,kJAAA,gCAAgC,OAAA;AAEzC,mBAAmB;AACnB,iEAYiC;AAX/B,gIAAA,uBAAuB,OAAA;AAYzB,yDAO6B;AAL3B,gIAAA,2BAA2B,OAAA;AAC3B,+HAAA,0BAA0B,OAAA;AAC1B,kIAAA,6BAA6B,OAAA;AAC7B,oIAAA,+BAA+B,OAAA;AAC/B,gIAAA,2BAA2B,OAAA;AAuB7B,6BAA6B;AAC7B,2EA0BsC;AALpC,qIAAA,uBAAuB,OAAA;AACvB,sIAAA,wBAAwB,OAAA;AACxB,wIAAA,0BAA0B,OAAA;AAC1B,gJAAA,kCAAkC,OAAA;AAClC,0IAAA,4BAA4B,OAAA;AAG9B,qCAAqC;AACrC,mDAiB0B;AAfxB,qHAAA,mBAAmB,OAAA;AACnB,qHAAA,mBAAmB,OAAA;AACnB,+GAAA,aAAa,OAAA;AACb,iHAAA,eAAe,OAAA;AACf,2HAAA,yBAAyB,OAAA;AACzB,gIAAA,8BAA8B,OAAA;AAC9B,sHAAA,oBAAoB,OAAA;AAEpB,sHAAA,oBAAoB,OAAA;AACpB,4HAAA,0BAA0B,OAAA;AAC1B,uHAAA,qBAAqB,OAAA;AACrB,qHAAA,mBAAmB,OAAA;AACnB,mHAAA,iBAAiB,OAAA;AACjB,6GAAA,WAAW,OAAA;AACX,gHAAA,cAAc,OAAA;AAEhB,+EAQwC;AANtC,qIAAA,qBAAqB,OAAA;AAGrB,4IAAA,4BAA4B,OAAA;AAC5B,kJAAA,kCAAkC,OAAA;AAClC,0IAAA,0BAA0B,OAAA;AAG5B,6EAA6E;AAC7E,6FAM+C;AAL7C,yKAAA,kDAAkD,OAAA;AAGlD,gJAAA,yBAAyB,OAAA;AACzB,wIAAA,iBAAiB,OAAA;AAGnB,6CAA6C;AAC7C,uDAa4B;AAZ1B,qHAAA,iBAAiB,OAAA;AACjB,iHAAA,aAAa,OAAA;AACb,yHAAA,qBAAqB,OAAA;AACrB,oHAAA,gBAAgB,OAAA;AAChB,qHAAA,iBAAiB,OAAA;AACjB,kHAAA,cAAc,OAAA;AACd,sHAAA,kBAAkB,OAAA;AAClB,6HAAA,yBAAyB,OAAA;AACzB,mHAAA,eAAe,OAAA;AACf,qIAAA,iCAAiC,OAAA;AACjC,iIAAA,6BAA6B,OAAA;AAC7B,2HAAA,uBAAuB,OAAA;AAGzB,uCAAuC;AACvC,iDAMyB;AALvB,6HAAA,4BAA4B,OAAA;AAE5B,mHAAA,kBAAkB,OAAA;AAClB,gHAAA,eAAe,OAAA;AACf,gHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-executable-assets/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;AAEH,+EAA+E;AAC/E,sDAAoC;AAEpC,oCAAoC;AACpC,2CASsB;AAHpB,yGAAA,WAAW,OAAA;AACX,4GAAA,cAAc,OAAA;AACd,6GAAA,eAAe,OAAA;AAGjB,2EAA2E;AAC3E,sDAAoC;AAEpC,kFAAkF;AAClF,kEAAgD;AAChD,wEAAsD;AACtD,8EAA4D;AAC5D,mEAAiD;AAkCjD,6EAIuC;AAHrC,sJAAA,uCAAuC,OAAA;AAIzC,mFAAoF;AAA3E,kJAAA,gCAAgC,OAAA;AAEzC,mBAAmB;AACnB,iEAYiC;AAX/B,gIAAA,uBAAuB,OAAA;AAYzB,yDAO6B;AAL3B,gIAAA,2BAA2B,OAAA;AAC3B,+HAAA,0BAA0B,OAAA;AAC1B,kIAAA,6BAA6B,OAAA;AAC7B,oIAAA,+BAA+B,OAAA;AAC/B,gIAAA,2BAA2B,OAAA;AA6B7B,6BAA6B;AAC7B,2EA0BsC;AALpC,qIAAA,uBAAuB,OAAA;AACvB,sIAAA,wBAAwB,OAAA;AACxB,wIAAA,0BAA0B,OAAA;AAC1B,gJAAA,kCAAkC,OAAA;AAClC,0IAAA,4BAA4B,OAAA;AAG9B,qCAAqC;AACrC,mDAiB0B;AAfxB,qHAAA,mBAAmB,OAAA;AACnB,qHAAA,mBAAmB,OAAA;AACnB,+GAAA,aAAa,OAAA;AACb,iHAAA,eAAe,OAAA;AACf,2HAAA,yBAAyB,OAAA;AACzB,gIAAA,8BAA8B,OAAA;AAC9B,sHAAA,oBAAoB,OAAA;AAEpB,sHAAA,oBAAoB,OAAA;AACpB,4HAAA,0BAA0B,OAAA;AAC1B,uHAAA,qBAAqB,OAAA;AACrB,qHAAA,mBAAmB,OAAA;AACnB,mHAAA,iBAAiB,OAAA;AACjB,6GAAA,WAAW,OAAA;AACX,gHAAA,cAAc,OAAA;AAEhB,+EAQwC;AANtC,qIAAA,qBAAqB,OAAA;AAGrB,4IAAA,4BAA4B,OAAA;AAC5B,kJAAA,kCAAkC,OAAA;AAClC,0IAAA,0BAA0B,OAAA;AAG5B,6EAA6E;AAC7E,6FAM+C;AAL7C,yKAAA,kDAAkD,OAAA;AAGlD,gJAAA,yBAAyB,OAAA;AACzB,wIAAA,iBAAiB,OAAA;AAGnB,6CAA6C;AAC7C,uDAa4B;AAZ1B,qHAAA,iBAAiB,OAAA;AACjB,iHAAA,aAAa,OAAA;AACb,yHAAA,qBAAqB,OAAA;AACrB,oHAAA,gBAAgB,OAAA;AAChB,qHAAA,iBAAiB,OAAA;AACjB,kHAAA,cAAc,OAAA;AACd,sHAAA,kBAAkB,OAAA;AAClB,6HAAA,yBAAyB,OAAA;AACzB,mHAAA,eAAe,OAAA;AACf,qIAAA,iCAAiC,OAAA;AACjC,iIAAA,6BAA6B,OAAA;AAC7B,2HAAA,uBAAuB,OAAA;AAGzB,uCAAuC;AACvC,iDAMyB;AALvB,6HAAA,4BAA4B,OAAA;AAE5B,mHAAA,kBAAkB,OAAA;AAClB,gHAAA,eAAe,OAAA;AACf,gHAAA,eAAe,OAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const strict_1 = __importDefault(require("node:assert/strict"));
7
+ const node_test_1 = __importDefault(require("node:test"));
8
+ const commander_1 = require("commander");
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_os_1 = __importDefault(require("node:os"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const cli_1 = require("./cli");
13
+ function streams() {
14
+ let stdout = '';
15
+ let stderr = '';
16
+ return {
17
+ stdout: { write: (chunk) => { stdout += String(chunk); return true; } },
18
+ stderr: { write: (chunk) => { stderr += String(chunk); return true; } },
19
+ read: () => ({ stdout, stderr }),
20
+ };
21
+ }
22
+ function throwingProgram(kind) {
23
+ const program = new commander_1.Command('nexus').option('--json');
24
+ program.command('boom').action(kind === 'sync'
25
+ ? () => { throw new Error('Bearer super-secret stack must-not-leak'); }
26
+ : async () => { await Promise.resolve(); throw new Error('token=super-secret rejected'); });
27
+ return program;
28
+ }
29
+ for (const kind of ['sync', 'async']) {
30
+ (0, node_test_1.default)(`outer machine boundary catches ${kind} failures as one redacted result`, async () => {
31
+ const output = streams();
32
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', '--json', 'boom'], {
33
+ program: throwingProgram(kind), stdout: output.stdout, stderr: output.stderr,
34
+ });
35
+ const captured = output.read();
36
+ strict_1.default.equal(exitCode, 1);
37
+ strict_1.default.equal(captured.stderr, '');
38
+ strict_1.default.equal(captured.stdout.trim().split('\n').length, 1);
39
+ const result = JSON.parse(captured.stdout);
40
+ strict_1.default.equal(result.command, 'boom');
41
+ strict_1.default.equal(result.ok, false);
42
+ strict_1.default.equal(result.exitCode, exitCode);
43
+ strict_1.default.equal(captured.stdout.includes('super-secret'), false);
44
+ if (kind === 'sync')
45
+ strict_1.default.equal(captured.stdout.includes('stack must-not-leak'), true);
46
+ strict_1.default.equal(captured.stdout.includes(' at '), false);
47
+ });
48
+ }
49
+ (0, node_test_1.default)('outer human boundary sends errors only to stderr without a stack', async () => {
50
+ const output = streams();
51
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', 'boom'], {
52
+ program: throwingProgram('async'), stdout: output.stdout, stderr: output.stderr,
53
+ });
54
+ const captured = output.read();
55
+ strict_1.default.equal(exitCode, 1);
56
+ strict_1.default.equal(captured.stdout, '');
57
+ strict_1.default.match(captured.stderr, /^Error: /);
58
+ strict_1.default.equal(captured.stderr.includes('super-secret'), false);
59
+ strict_1.default.equal(captured.stderr.includes('\n at '), false);
60
+ });
61
+ (0, node_test_1.default)('Commander usage failures use exit 64 and one machine result', async () => {
62
+ const program = new commander_1.Command('nexus').option('--json');
63
+ program.command('get <id>');
64
+ const output = streams();
65
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', '--json', 'get'], {
66
+ program, stdout: output.stdout, stderr: output.stderr,
67
+ });
68
+ const captured = output.read();
69
+ strict_1.default.equal(exitCode, 64);
70
+ strict_1.default.equal(captured.stderr, '');
71
+ const result = JSON.parse(captured.stdout);
72
+ strict_1.default.equal(result.exitCode, 64);
73
+ strict_1.default.equal(result.diagnostics[0].code, 'commander.missingArgument');
74
+ });
75
+ (0, node_test_1.default)('missing mandatory options are also usage exit 64', async () => {
76
+ const program = new commander_1.Command('nexus').option('--json');
77
+ program.command('get').requiredOption('--id <id>');
78
+ const output = streams();
79
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', '--json', 'get'], {
80
+ program, stdout: output.stdout, stderr: output.stderr,
81
+ });
82
+ const result = JSON.parse(output.read().stdout);
83
+ strict_1.default.equal(exitCode, 64);
84
+ strict_1.default.equal(result.exitCode, 64);
85
+ strict_1.default.equal(result.diagnostics[0].code, 'commander.missingMandatoryOptionValue');
86
+ });
87
+ (0, node_test_1.default)('machine help is captured inside one successful result document', async () => {
88
+ const program = new commander_1.Command('nexus').option('--json');
89
+ program.command('get').description('Get records');
90
+ const output = streams();
91
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', '--json', 'get', '--help'], {
92
+ program, stdout: output.stdout, stderr: output.stderr,
93
+ });
94
+ const captured = output.read();
95
+ strict_1.default.equal(exitCode, 0);
96
+ strict_1.default.equal(captured.stderr, '');
97
+ const result = JSON.parse(captured.stdout);
98
+ strict_1.default.equal(result.ok, true);
99
+ strict_1.default.equal(result.phase, 'help');
100
+ strict_1.default.match(result.data.output, /Get records/);
101
+ });
102
+ for (const [name, expectedExit] of [['PermissionError', 3], ['ContractConflictError', 2]]) {
103
+ (0, node_test_1.default)(`outer boundary keeps ${name} envelope and actual exit codes equal`, async () => {
104
+ const program = new commander_1.Command('nexus').option('--json');
105
+ program.command('fail').action(() => {
106
+ const error = new Error('operation rejected');
107
+ error.name = name;
108
+ throw error;
109
+ });
110
+ const output = streams();
111
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', '--json', 'fail'], {
112
+ program, stdout: output.stdout, stderr: output.stderr,
113
+ });
114
+ const result = JSON.parse(output.read().stdout);
115
+ strict_1.default.equal(exitCode, expectedExit);
116
+ strict_1.default.equal(result.exitCode, expectedExit);
117
+ strict_1.default.equal(result.ok, false);
118
+ });
119
+ }
120
+ (0, node_test_1.default)('bootstrap failures are contained by the same outer machine boundary', async () => {
121
+ const output = streams();
122
+ const exitCode = await (0, cli_1.runCli)(['node', 'nexus', '--json', 'anything'], {
123
+ programFactory: () => { throw new Error('Bearer bootstrap-secret failed'); },
124
+ stdout: output.stdout, stderr: output.stderr,
125
+ });
126
+ const captured = output.read();
127
+ const result = JSON.parse(captured.stdout);
128
+ strict_1.default.equal(exitCode, 1);
129
+ strict_1.default.equal(captured.stderr, '');
130
+ strict_1.default.equal(result.phase, 'bootstrap');
131
+ strict_1.default.equal(result.exitCode, exitCode);
132
+ strict_1.default.equal(captured.stdout.includes('bootstrap-secret'), false);
133
+ });
134
+ (0, node_test_1.default)('a real workspace write command emits one result only after creating its artifact', async () => {
135
+ const tempDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), 'nexus-cli-runner-'));
136
+ const output = streams();
137
+ try {
138
+ const exitCode = await (0, cli_1.runCli)([
139
+ 'node', 'nexus', '--json', 'workspace', 'init',
140
+ '--name', 'contract-fixture', '--dir', tempDir, '--template', 'base-crm',
141
+ ], { program: (0, cli_1.buildCliProgram)(), stdout: output.stdout, stderr: output.stderr });
142
+ const captured = output.read();
143
+ const result = JSON.parse(captured.stdout);
144
+ strict_1.default.equal(exitCode, 0);
145
+ strict_1.default.equal(captured.stderr, '');
146
+ strict_1.default.equal(captured.stdout.trim().split('\n').length, 1);
147
+ strict_1.default.equal(result.command, 'workspace.init');
148
+ strict_1.default.equal(result.exitCode, exitCode);
149
+ strict_1.default.equal(result.data.projectName, 'contract-fixture');
150
+ strict_1.default.equal(node_fs_1.default.existsSync(node_path_1.default.join(result.data.projectDir, 'nexus-project.yaml')), true);
151
+ }
152
+ finally {
153
+ node_fs_1.default.rmSync(tempDir, { recursive: true, force: true });
154
+ }
155
+ });
156
+ //# sourceMappingURL=cli-runner.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-runner.test.js","sourceRoot":"","sources":["../../../src/cli-runner.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
+ import { type CliOutputStream } from './runtime/output-coordinator';
3
4
  export declare function buildCliProgram(): Command;
5
+ export interface RunCliOptions {
6
+ readonly program?: Command;
7
+ readonly programFactory?: () => Command;
8
+ readonly stdout?: CliOutputStream;
9
+ readonly stderr?: CliOutputStream;
10
+ }
11
+ export declare function runCli(argv: ReadonlyArray<string>, options?: RunCliOptions): Promise<number>;
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.buildCliProgram = buildCliProgram;
38
+ exports.runCli = runCli;
38
39
  const fs = __importStar(require("fs"));
39
40
  const path = __importStar(require("path"));
40
41
  const commander_1 = require("commander");
@@ -64,6 +65,9 @@ const preflight_1 = require("./commands/preflight");
64
65
  const install_contract_1 = require("./commands/install-contract");
65
66
  const user_1 = require("./commands/user");
66
67
  const build_info_1 = require("./services/build-info");
68
+ const machine_result_1 = require("./contracts/machine-result");
69
+ const output_coordinator_1 = require("./runtime/output-coordinator");
70
+ const failure_normalizer_1 = require("./runtime/failure-normalizer");
67
71
  function resolveCliVersion() {
68
72
  let dir = __dirname;
69
73
  for (let i = 0; i < 6; i++) {
@@ -119,14 +123,10 @@ function buildCliProgram() {
119
123
  (0, preflight_1.registerPreflightCommands)(program);
120
124
  (0, install_contract_1.registerInstallContractCommands)(program);
121
125
  (0, user_1.registerUserCommands)(program);
122
- return program;
123
- }
124
- if (require.main === module) {
125
- const program = buildCliProgram();
126
126
  program.action((_, cmd) => {
127
127
  if (cmd.args?.includes('--build-info') || process.argv.includes('--build-info')) {
128
128
  const info = (0, build_info_1.loadBuildInfo)();
129
- if (process.argv.includes('--json')) {
129
+ if (cmd.optsWithGlobals().json === true || process.argv.includes('--json')) {
130
130
  process.stdout.write(`${JSON.stringify(info, null, 2)}\n`);
131
131
  }
132
132
  else {
@@ -135,10 +135,136 @@ if (require.main === module) {
135
135
  `contentDigest: ${info.contentDigest}\n` +
136
136
  `generatedAt: ${info.generatedAt}\n`);
137
137
  }
138
- process.exit(0);
138
+ process.exitCode = 0;
139
+ return;
139
140
  }
140
141
  program.help();
141
142
  });
142
- program.parse(process.argv);
143
+ return program;
144
+ }
145
+ if (require.main === module) {
146
+ void runCli(process.argv).then((exitCode) => {
147
+ process.exitCode = exitCode;
148
+ });
149
+ }
150
+ function commandIdFromArgv(program, argv) {
151
+ const tokens = argv.slice(2).filter((token) => token !== '--json');
152
+ const candidates = [];
153
+ const visit = (command, path) => {
154
+ for (const child of command.commands) {
155
+ const next = [...path, child.name()];
156
+ if (child.commands.length === 0 && next.every((token, index) => tokens[index] === token)) {
157
+ candidates.push({ id: next.join('.'), length: next.length });
158
+ }
159
+ visit(child, next);
160
+ }
161
+ };
162
+ visit(program, []);
163
+ candidates.sort((left, right) => right.length - left.length || left.id.localeCompare(right.id));
164
+ return candidates[0]?.id ?? 'unknown';
165
+ }
166
+ function safeErrorMessage(error) {
167
+ const message = error instanceof Error ? error.message : String(error);
168
+ return (0, machine_result_1.scrubMachineValue)(message);
169
+ }
170
+ function commanderExitCode(error) {
171
+ if (!(error instanceof commander_1.CommanderError))
172
+ return 1;
173
+ if (error.exitCode === 0)
174
+ return 0;
175
+ return 64;
176
+ }
177
+ async function runCli(argv, options = {}) {
178
+ const stdout = options.stdout ?? process.stdout;
179
+ const stderr = options.stderr ?? process.stderr;
180
+ const machine = (0, output_coordinator_1.isMachineOutputArgv)(argv);
181
+ let program;
182
+ try {
183
+ program = options.program ?? options.programFactory?.() ?? buildCliProgram();
184
+ }
185
+ catch (error) {
186
+ const normalized = (0, failure_normalizer_1.normalizeCliFailure)(error, 'bootstrap');
187
+ const coordinator = new output_coordinator_1.CliOutputCoordinator({
188
+ command: 'unknown', machine, stdout, stderr,
189
+ setExitCode: () => undefined,
190
+ });
191
+ if (machine) {
192
+ coordinator.emitMachineResult((0, machine_result_1.buildCliResult)({
193
+ command: 'unknown', phase: 'bootstrap',
194
+ contractVersion: 'nexusclaw.cli-command-contract/v2', ok: false,
195
+ exitCode: normalized.exitCode, data: normalized.data,
196
+ diagnostics: normalized.diagnostics,
197
+ }));
198
+ }
199
+ else {
200
+ coordinator.writeHumanStderr(`Error: ${safeErrorMessage(error)}\n`);
201
+ }
202
+ return normalized.exitCode;
203
+ }
204
+ const command = commandIdFromArgv(program, argv);
205
+ const capturedCommanderStdout = [];
206
+ let humanStderrWritten = false;
207
+ let actualExitCode = 0;
208
+ const coordinator = new output_coordinator_1.CliOutputCoordinator({
209
+ command,
210
+ machine,
211
+ stdout,
212
+ stderr,
213
+ setExitCode: (exitCode) => { actualExitCode = exitCode; },
214
+ renderResult: (result) => JSON.stringify((0, machine_result_1.scrubMachineValue)(result)),
215
+ });
216
+ try {
217
+ const commanderOutput = {
218
+ writeOut: (message) => {
219
+ if (machine)
220
+ capturedCommanderStdout.push(message);
221
+ else
222
+ stdout.write(message);
223
+ },
224
+ writeErr: (message) => {
225
+ if (!machine) {
226
+ humanStderrWritten = true;
227
+ stderr.write(message);
228
+ }
229
+ },
230
+ };
231
+ const configureCommand = (commandNode) => {
232
+ commandNode.exitOverride();
233
+ commandNode.configureOutput(commanderOutput);
234
+ for (const child of commandNode.commands)
235
+ configureCommand(child);
236
+ };
237
+ configureCommand(program);
238
+ await (0, output_coordinator_1.runWithCliOutputCoordinator)(coordinator, () => program.parseAsync([...argv], { from: 'node' }));
239
+ return actualExitCode;
240
+ }
241
+ catch (error) {
242
+ const normalized = error instanceof commander_1.CommanderError
243
+ ? null
244
+ : (0, failure_normalizer_1.normalizeCliFailure)(error);
245
+ const exitCode = normalized?.exitCode ?? commanderExitCode(error);
246
+ actualExitCode = exitCode;
247
+ if (machine) {
248
+ if (!coordinator.hasEmittedTerminalResult()) {
249
+ const helpDisplayed = error instanceof commander_1.CommanderError && error.exitCode === 0;
250
+ coordinator.emitMachineResult((0, machine_result_1.buildCliResult)({
251
+ command,
252
+ phase: helpDisplayed ? 'help' : 'failed',
253
+ contractVersion: 'nexusclaw.cli-command-contract/v2',
254
+ ok: helpDisplayed,
255
+ exitCode,
256
+ data: helpDisplayed ? { output: capturedCommanderStdout.join('') } : normalized?.data ?? null,
257
+ diagnostics: helpDisplayed ? [] : normalized?.diagnostics ?? [{
258
+ code: error.code,
259
+ severity: 'error', phase: 'failed', message: safeErrorMessage(error), retryable: false,
260
+ }],
261
+ }));
262
+ }
263
+ }
264
+ else if (exitCode !== 0 && !humanStderrWritten) {
265
+ coordinator.writeHumanStderr(`Error: ${safeErrorMessage(error)}\n`);
266
+ }
267
+ return actualExitCode;
268
+ }
143
269
  }
144
270
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,0CAsDC;AAvHD,uCAAyB;AACzB,2CAA6B;AAC7B,yCAAoC;AACpC,yCAAsD;AACtD,wCAAqD;AACrD,8CAA2D;AAC3D,0CAAuD;AACvD,0CAAuD;AACvD,wCAAqD;AACrD,gDAA6D;AAC7D,8CAA2D;AAC3D,kDAA+D;AAC/D,gDAA6D;AAC7D,sCAAmD;AACnD,wDAAqE;AACrE,0EAAsF;AACtF,kDAA+D;AAC/D,oDAAiE;AACjE,kDAA+D;AAC/D,oDAAiE;AACjE,sDAAmE;AACnE,gDAA6D;AAC7D,sCAAmD;AACnD,kDAA+D;AAC/D,oDAAiE;AACjE,oDAAiE;AACjE,kEAA8E;AAC9E,0CAAuD;AACvD,sDAAsD;AAKtD,SAAS,iBAAiB;IACxB,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAGzD,CAAC;gBACF,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACvE,OAAO,GAAG,CAAC,OAAO,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAUD,SAAgB,eAAe;IAC7B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,qCAAqC,CAAC;SAClD,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAM5B,MAAM,CAAC,cAAc,EAAE,+DAA+D,CAAC;SACvF,MAAM,CAAC,QAAQ,EAAE,qDAAqD,CAAC;SACvE,WAAW,CAAC,OAAO,EAAE,iDAAiD,CAAC,CAAC;IAI3E,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;IAC7B,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,0DAAmC,EAAC,OAAO,CAAC,CAAC;IAC7C,IAAA,yCAA2B,EAAC,OAAO,CAAC,CAAC;IACrC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,uBAAkB,EAAC,OAAO,CAAC,CAAC;IAC5B,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAClC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC;IACpC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,uBAAkB,EAAC,OAAO,CAAC,CAAC;IAM5B,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;IAKlC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,qCAAyB,EAAC,OAAO,CAAC,CAAC;IACnC,IAAA,kDAA+B,EAAC,OAAO,CAAC,CAAC;IACzC,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAGlC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAExB,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,GAAG,IAAA,0BAAa,GAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,IAAI;oBACrC,WAAW,IAAI,CAAC,MAAM,IAAI;oBAC1B,kBAAkB,IAAI,CAAC,aAAa,IAAI;oBACxC,gBAAgB,IAAI,CAAC,WAAW,IAAI,CACvC,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
10
  const commander_1 = require("commander");
11
11
  const chalk_1 = __importDefault(require("chalk"));
12
+ const machine_result_1 = require("../../contracts/machine-result");
13
+ const command_options_1 = require("../../utils/command-options");
12
14
  const LEGACY_V1_WARNING = {
13
15
  code: 'AI_CONTEXT_V1_RUNTIME_INCOMPATIBLE',
14
16
  message: 'Legacy v1 context is non-authoritative and cannot be used for bundle deploy or promote.',
@@ -285,7 +287,8 @@ exports.aiContextExportCommand = new commander_1.Command('export-legacy')
285
287
  .option('--assets-root <path>', 'Assets repo root used with --industry')
286
288
  .option('--out <dir>', 'Output directory for generated AI authoring files', '.nexusclaw')
287
289
  .option('--json', 'Print export result as JSON', false)
288
- .action((options) => {
290
+ .action((options, command) => {
291
+ const json = (0, command_options_1.isJsonOutputRequested)(options, command);
289
292
  const result = exportAiAuthoringContext({
290
293
  source: options.source,
291
294
  industry: options.industry,
@@ -294,8 +297,8 @@ exports.aiContextExportCommand = new commander_1.Command('export-legacy')
294
297
  outDir: options.out,
295
298
  legacyV1: options.legacyV1,
296
299
  });
297
- if (options.json) {
298
- console.log(JSON.stringify(result, null, 2));
300
+ if (json) {
301
+ (0, machine_result_1.emitCliResult)((0, machine_result_1.buildCliResult)({ command: 'ai context export-legacy', phase: 'complete', contractVersion: 'nexusclaw.cli-command-contract/v1', ok: true, data: result }));
299
302
  return;
300
303
  }
301
304
  console.log(chalk_1.default.cyan(`AI context exported: ${result.contextId}`));