@cleocode/core 2026.9.26 → 2026.10.2

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 (410) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/journal.d.ts +9 -5
  3. package/dist/cloud/journal.d.ts.map +1 -1
  4. package/dist/cloud/journal.js +29 -8
  5. package/dist/cloud/journal.js.map +1 -1
  6. package/dist/cloud/manifest-check.d.ts +140 -4
  7. package/dist/cloud/manifest-check.d.ts.map +1 -1
  8. package/dist/cloud/manifest-check.js +309 -10
  9. package/dist/cloud/manifest-check.js.map +1 -1
  10. package/dist/cloud/nexus-attach.d.ts +119 -0
  11. package/dist/cloud/nexus-attach.d.ts.map +1 -0
  12. package/dist/cloud/nexus-attach.js +267 -0
  13. package/dist/cloud/nexus-attach.js.map +1 -0
  14. package/dist/cloud/nexus-auth.d.ts +15 -3
  15. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  16. package/dist/cloud/nexus-auth.js +90 -6
  17. package/dist/cloud/nexus-auth.js.map +1 -1
  18. package/dist/cloud/nexus-cloud-activity.d.ts +37 -0
  19. package/dist/cloud/nexus-cloud-activity.d.ts.map +1 -0
  20. package/dist/cloud/nexus-cloud-activity.js +79 -0
  21. package/dist/cloud/nexus-cloud-activity.js.map +1 -0
  22. package/dist/cloud/nexus-cloud-status.d.ts +132 -0
  23. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -0
  24. package/dist/cloud/nexus-cloud-status.js +476 -0
  25. package/dist/cloud/nexus-cloud-status.js.map +1 -0
  26. package/dist/cloud/nexus-cloud.d.ts +179 -0
  27. package/dist/cloud/nexus-cloud.d.ts.map +1 -0
  28. package/dist/cloud/nexus-cloud.js +296 -0
  29. package/dist/cloud/nexus-cloud.js.map +1 -0
  30. package/dist/cloud/nexus-device.d.ts +32 -7
  31. package/dist/cloud/nexus-device.d.ts.map +1 -1
  32. package/dist/cloud/nexus-device.js +54 -7
  33. package/dist/cloud/nexus-device.js.map +1 -1
  34. package/dist/cloud/nexus-enrol.d.ts +35 -4
  35. package/dist/cloud/nexus-enrol.d.ts.map +1 -1
  36. package/dist/cloud/nexus-enrol.js +192 -47
  37. package/dist/cloud/nexus-enrol.js.map +1 -1
  38. package/dist/cloud/nexus-home.d.ts +74 -0
  39. package/dist/cloud/nexus-home.d.ts.map +1 -0
  40. package/dist/cloud/nexus-home.js +97 -0
  41. package/dist/cloud/nexus-home.js.map +1 -0
  42. package/dist/cloud/nexus-link.d.ts +8 -1
  43. package/dist/cloud/nexus-link.d.ts.map +1 -1
  44. package/dist/cloud/nexus-link.js +138 -11
  45. package/dist/cloud/nexus-link.js.map +1 -1
  46. package/dist/cloud/nexus-logout.d.ts +114 -0
  47. package/dist/cloud/nexus-logout.d.ts.map +1 -0
  48. package/dist/cloud/nexus-logout.js +429 -0
  49. package/dist/cloud/nexus-logout.js.map +1 -0
  50. package/dist/cloud/nexus-vault-keys.d.ts +129 -0
  51. package/dist/cloud/nexus-vault-keys.d.ts.map +1 -0
  52. package/dist/cloud/nexus-vault-keys.js +277 -0
  53. package/dist/cloud/nexus-vault-keys.js.map +1 -0
  54. package/dist/cloud/nexus-vault-state.d.ts +121 -0
  55. package/dist/cloud/nexus-vault-state.d.ts.map +1 -0
  56. package/dist/cloud/nexus-vault-state.js +274 -0
  57. package/dist/cloud/nexus-vault-state.js.map +1 -0
  58. package/dist/cloud/nexus-vault.d.ts +160 -0
  59. package/dist/cloud/nexus-vault.d.ts.map +1 -0
  60. package/dist/cloud/nexus-vault.js +1733 -0
  61. package/dist/cloud/nexus-vault.js.map +1 -0
  62. package/dist/cloud/signing.d.ts +24 -8
  63. package/dist/cloud/signing.d.ts.map +1 -1
  64. package/dist/cloud/signing.js +61 -15
  65. package/dist/cloud/signing.js.map +1 -1
  66. package/dist/docs/export-document.js +8341 -3317
  67. package/dist/docs/export-document.js.map +3 -3
  68. package/dist/doctor/migrations.d.ts +75 -0
  69. package/dist/doctor/migrations.d.ts.map +1 -0
  70. package/dist/doctor/migrations.js +136 -0
  71. package/dist/doctor/migrations.js.map +1 -0
  72. package/dist/doctor/sync-sealer.d.ts +48 -0
  73. package/dist/doctor/sync-sealer.d.ts.map +1 -0
  74. package/dist/doctor/sync-sealer.js +109 -0
  75. package/dist/doctor/sync-sealer.js.map +1 -0
  76. package/dist/doctor/sync-triggers.d.ts +53 -0
  77. package/dist/doctor/sync-triggers.d.ts.map +1 -0
  78. package/dist/doctor/sync-triggers.js +157 -0
  79. package/dist/doctor/sync-triggers.js.map +1 -0
  80. package/dist/init.d.ts.map +1 -1
  81. package/dist/init.js +5 -1
  82. package/dist/init.js.map +1 -1
  83. package/dist/internal.d.ts +1 -1
  84. package/dist/internal.d.ts.map +1 -1
  85. package/dist/internal.js +1 -1
  86. package/dist/internal.js.map +1 -1
  87. package/dist/llm/plugin-facade.js +8668 -3644
  88. package/dist/llm/plugin-facade.js.map +3 -3
  89. package/dist/nexus/projects-clean.d.ts +3 -0
  90. package/dist/nexus/projects-clean.d.ts.map +1 -1
  91. package/dist/nexus/projects-clean.js +9 -3
  92. package/dist/nexus/projects-clean.js.map +1 -1
  93. package/dist/nexus/registry-roots.d.ts +3 -1
  94. package/dist/nexus/registry-roots.d.ts.map +1 -1
  95. package/dist/nexus/registry-roots.js +5 -2
  96. package/dist/nexus/registry-roots.js.map +1 -1
  97. package/dist/nexus/registry.d.ts +8 -1
  98. package/dist/nexus/registry.d.ts.map +1 -1
  99. package/dist/nexus/registry.js +24 -10
  100. package/dist/nexus/registry.js.map +1 -1
  101. package/dist/nexus/workspace.d.ts +4 -1
  102. package/dist/nexus/workspace.d.ts.map +1 -1
  103. package/dist/nexus/workspace.js +10 -4
  104. package/dist/nexus/workspace.js.map +1 -1
  105. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  106. package/dist/orchestrate/spawn-ops.js +7 -2
  107. package/dist/orchestrate/spawn-ops.js.map +1 -1
  108. package/dist/orchestrate/worker-verify.d.ts +121 -12
  109. package/dist/orchestrate/worker-verify.d.ts.map +1 -1
  110. package/dist/orchestrate/worker-verify.js +172 -21
  111. package/dist/orchestrate/worker-verify.js.map +1 -1
  112. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  113. package/dist/orchestration/spawn-prompt.js +15 -9
  114. package/dist/orchestration/spawn-prompt.js.map +1 -1
  115. package/dist/release/ci-evidence.d.ts +9 -0
  116. package/dist/release/ci-evidence.d.ts.map +1 -1
  117. package/dist/release/ci-evidence.js +9 -2
  118. package/dist/release/ci-evidence.js.map +1 -1
  119. package/dist/resources/backend.d.ts +15 -3
  120. package/dist/resources/backend.d.ts.map +1 -1
  121. package/dist/resources/backend.js +7 -3
  122. package/dist/resources/backend.js.map +1 -1
  123. package/dist/resources/darwin-backend.d.ts +142 -0
  124. package/dist/resources/darwin-backend.d.ts.map +1 -0
  125. package/dist/resources/darwin-backend.js +288 -0
  126. package/dist/resources/darwin-backend.js.map +1 -0
  127. package/dist/resources/governor.d.ts +44 -1
  128. package/dist/resources/governor.d.ts.map +1 -1
  129. package/dist/resources/governor.js +100 -36
  130. package/dist/resources/governor.js.map +1 -1
  131. package/dist/resources/heavy-command.d.ts +132 -0
  132. package/dist/resources/heavy-command.d.ts.map +1 -0
  133. package/dist/resources/heavy-command.js +768 -0
  134. package/dist/resources/heavy-command.js.map +1 -0
  135. package/dist/resources/monitor.d.ts +50 -1
  136. package/dist/resources/monitor.d.ts.map +1 -1
  137. package/dist/resources/monitor.js +83 -1
  138. package/dist/resources/monitor.js.map +1 -1
  139. package/dist/resources/run-admission.d.ts +303 -0
  140. package/dist/resources/run-admission.d.ts.map +1 -0
  141. package/dist/resources/run-admission.js +648 -0
  142. package/dist/resources/run-admission.js.map +1 -0
  143. package/dist/resources/run-class.d.ts +111 -0
  144. package/dist/resources/run-class.d.ts.map +1 -0
  145. package/dist/resources/run-class.js +658 -0
  146. package/dist/resources/run-class.js.map +1 -0
  147. package/dist/resources/run-governed.d.ts +158 -0
  148. package/dist/resources/run-governed.d.ts.map +1 -0
  149. package/dist/resources/run-governed.js +406 -0
  150. package/dist/resources/run-governed.js.map +1 -0
  151. package/dist/resources/slot-holder.d.ts +267 -0
  152. package/dist/resources/slot-holder.d.ts.map +1 -0
  153. package/dist/resources/slot-holder.js +505 -0
  154. package/dist/resources/slot-holder.js.map +1 -0
  155. package/dist/resources/tool-groups.d.ts +74 -0
  156. package/dist/resources/tool-groups.d.ts.map +1 -0
  157. package/dist/resources/tool-groups.js +118 -0
  158. package/dist/resources/tool-groups.js.map +1 -0
  159. package/dist/routing/build-command-groups.d.ts.map +1 -1
  160. package/dist/routing/build-command-groups.js +1 -0
  161. package/dist/routing/build-command-groups.js.map +1 -1
  162. package/dist/selfimprove/fix-gen.js +8676 -3652
  163. package/dist/selfimprove/fix-gen.js.map +3 -3
  164. package/dist/sentient/cross-project-hygiene.d.ts +3 -2
  165. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  166. package/dist/sentient/cross-project-hygiene.js +5 -2
  167. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  168. package/dist/sentient/state.d.ts +7 -0
  169. package/dist/sentient/state.d.ts.map +1 -1
  170. package/dist/sentient/state.js.map +1 -1
  171. package/dist/sentient/tick.d.ts +14 -2
  172. package/dist/sentient/tick.d.ts.map +1 -1
  173. package/dist/sentient/tick.js +63 -4
  174. package/dist/sentient/tick.js.map +1 -1
  175. package/dist/setup/sections/nexus-account.d.ts +8 -6
  176. package/dist/setup/sections/nexus-account.d.ts.map +1 -1
  177. package/dist/setup/sections/nexus-account.js +53 -9
  178. package/dist/setup/sections/nexus-account.js.map +1 -1
  179. package/dist/store/backup-recover.d.ts.map +1 -1
  180. package/dist/store/backup-recover.js +5 -0
  181. package/dist/store/backup-recover.js.map +1 -1
  182. package/dist/store/data-accessor.d.ts +1 -0
  183. package/dist/store/data-accessor.d.ts.map +1 -1
  184. package/dist/store/data-accessor.js +7 -0
  185. package/dist/store/data-accessor.js.map +1 -1
  186. package/dist/store/dual-scope-db.d.ts +23 -1
  187. package/dist/store/dual-scope-db.d.ts.map +1 -1
  188. package/dist/store/dual-scope-db.js +126 -36
  189. package/dist/store/dual-scope-db.js.map +1 -1
  190. package/dist/store/exodus/recovery.d.ts.map +1 -1
  191. package/dist/store/exodus/recovery.js +15 -0
  192. package/dist/store/exodus/recovery.js.map +1 -1
  193. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  194. package/dist/store/legacy-tasks-lineage.js +5 -0
  195. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  196. package/dist/store/lock.d.ts +8 -1
  197. package/dist/store/lock.d.ts.map +1 -1
  198. package/dist/store/lock.js +10 -2
  199. package/dist/store/lock.js.map +1 -1
  200. package/dist/store/migration-manager.d.ts +5 -0
  201. package/dist/store/migration-manager.d.ts.map +1 -1
  202. package/dist/store/migration-manager.js +11 -0
  203. package/dist/store/migration-manager.js.map +1 -1
  204. package/dist/store/migration-runner.d.ts +158 -0
  205. package/dist/store/migration-runner.d.ts.map +1 -0
  206. package/dist/store/migration-runner.js +493 -0
  207. package/dist/store/migration-runner.js.map +1 -0
  208. package/dist/store/portable-bundle-import.d.ts +15 -1
  209. package/dist/store/portable-bundle-import.d.ts.map +1 -1
  210. package/dist/store/portable-bundle-import.js +24 -4
  211. package/dist/store/portable-bundle-import.js.map +1 -1
  212. package/dist/store/portable-bundle-relocate.d.ts +43 -0
  213. package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
  214. package/dist/store/portable-bundle-relocate.js +79 -5
  215. package/dist/store/portable-bundle-relocate.js.map +1 -1
  216. package/dist/store/portable-bundle-scan.d.ts +20 -0
  217. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  218. package/dist/store/portable-bundle-scan.js +38 -3
  219. package/dist/store/portable-bundle-scan.js.map +1 -1
  220. package/dist/store/portable-bundle.d.ts +33 -0
  221. package/dist/store/portable-bundle.d.ts.map +1 -1
  222. package/dist/store/portable-bundle.js +34 -7
  223. package/dist/store/portable-bundle.js.map +1 -1
  224. package/dist/store/row-identity-registry.d.ts +137 -7
  225. package/dist/store/row-identity-registry.d.ts.map +1 -1
  226. package/dist/store/row-identity-registry.js +364 -9
  227. package/dist/store/row-identity-registry.js.map +1 -1
  228. package/dist/store/row-identity.d.ts.map +1 -1
  229. package/dist/store/row-identity.js +9 -10
  230. package/dist/store/row-identity.js.map +1 -1
  231. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  232. package/dist/store/sqlite-data-accessor.js +10 -0
  233. package/dist/store/sqlite-data-accessor.js.map +1 -1
  234. package/dist/store/sqlite.d.ts +31 -0
  235. package/dist/store/sqlite.d.ts.map +1 -1
  236. package/dist/store/sqlite.js +5 -1
  237. package/dist/store/sqlite.js.map +1 -1
  238. package/dist/store/sync/capture.d.ts +203 -0
  239. package/dist/store/sync/capture.d.ts.map +1 -0
  240. package/dist/store/sync/capture.js +562 -0
  241. package/dist/store/sync/capture.js.map +1 -0
  242. package/dist/store/sync/clock-store.d.ts.map +1 -1
  243. package/dist/store/sync/clock-store.js +2 -0
  244. package/dist/store/sync/clock-store.js.map +1 -1
  245. package/dist/store/sync/fk-orphans.d.ts +133 -0
  246. package/dist/store/sync/fk-orphans.d.ts.map +1 -0
  247. package/dist/store/sync/fk-orphans.js +265 -0
  248. package/dist/store/sync/fk-orphans.js.map +1 -0
  249. package/dist/store/sync/flags.d.ts +7 -0
  250. package/dist/store/sync/flags.d.ts.map +1 -1
  251. package/dist/store/sync/flags.js +16 -0
  252. package/dist/store/sync/flags.js.map +1 -1
  253. package/dist/store/sync/hlc.d.ts.map +1 -1
  254. package/dist/store/sync/hlc.js +4 -0
  255. package/dist/store/sync/hlc.js.map +1 -1
  256. package/dist/store/sync/identity-fill.d.ts +45 -0
  257. package/dist/store/sync/identity-fill.d.ts.map +1 -0
  258. package/dist/store/sync/identity-fill.js +85 -0
  259. package/dist/store/sync/identity-fill.js.map +1 -0
  260. package/dist/store/sync/machinery.d.ts +27 -0
  261. package/dist/store/sync/machinery.d.ts.map +1 -0
  262. package/dist/store/sync/machinery.js +44 -0
  263. package/dist/store/sync/machinery.js.map +1 -0
  264. package/dist/store/sync/netting.d.ts +120 -0
  265. package/dist/store/sync/netting.d.ts.map +1 -0
  266. package/dist/store/sync/netting.js +336 -0
  267. package/dist/store/sync/netting.js.map +1 -0
  268. package/dist/store/sync/replica.d.ts +59 -3
  269. package/dist/store/sync/replica.d.ts.map +1 -1
  270. package/dist/store/sync/replica.js +84 -3
  271. package/dist/store/sync/replica.js.map +1 -1
  272. package/dist/store/sync/schema.d.ts +18 -3
  273. package/dist/store/sync/schema.d.ts.map +1 -1
  274. package/dist/store/sync/schema.js +27 -3
  275. package/dist/store/sync/schema.js.map +1 -1
  276. package/dist/store/sync/seal-backlog.d.ts +21 -0
  277. package/dist/store/sync/seal-backlog.d.ts.map +1 -0
  278. package/dist/store/sync/seal-backlog.js +24 -0
  279. package/dist/store/sync/seal-backlog.js.map +1 -0
  280. package/dist/store/sync/sealer-values.d.ts +34 -0
  281. package/dist/store/sync/sealer-values.d.ts.map +1 -0
  282. package/dist/store/sync/sealer-values.js +53 -0
  283. package/dist/store/sync/sealer-values.js.map +1 -0
  284. package/dist/store/sync/sealer.d.ts +145 -0
  285. package/dist/store/sync/sealer.d.ts.map +1 -0
  286. package/dist/store/sync/sealer.js +906 -0
  287. package/dist/store/sync/sealer.js.map +1 -0
  288. package/dist/store/sync/structural.d.ts +63 -0
  289. package/dist/store/sync/structural.d.ts.map +1 -0
  290. package/dist/store/sync/structural.js +180 -0
  291. package/dist/store/sync/structural.js.map +1 -0
  292. package/dist/store/sync/timestamps.d.ts +92 -0
  293. package/dist/store/sync/timestamps.d.ts.map +1 -0
  294. package/dist/store/sync/timestamps.js +228 -0
  295. package/dist/store/sync/timestamps.js.map +1 -0
  296. package/dist/store/sync/tombstones.d.ts +75 -0
  297. package/dist/store/sync/tombstones.d.ts.map +1 -0
  298. package/dist/store/sync/tombstones.js +103 -0
  299. package/dist/store/sync/tombstones.js.map +1 -0
  300. package/dist/store/sync/trigger-classes.d.ts +221 -0
  301. package/dist/store/sync/trigger-classes.d.ts.map +1 -0
  302. package/dist/store/sync/trigger-classes.js +441 -0
  303. package/dist/store/sync/trigger-classes.js.map +1 -0
  304. package/dist/store/sync/trigger-suspend-at-path.d.ts +23 -0
  305. package/dist/store/sync/trigger-suspend-at-path.d.ts.map +1 -0
  306. package/dist/store/sync/trigger-suspend-at-path.js +44 -0
  307. package/dist/store/sync/trigger-suspend-at-path.js.map +1 -0
  308. package/dist/store/sync/writer-version.d.ts +43 -0
  309. package/dist/store/sync/writer-version.d.ts.map +1 -0
  310. package/dist/store/sync/writer-version.js +90 -0
  311. package/dist/store/sync/writer-version.js.map +1 -0
  312. package/dist/store/table-classification.d.ts.map +1 -1
  313. package/dist/store/table-classification.js +102 -0
  314. package/dist/store/table-classification.js.map +1 -1
  315. package/dist/store/trigger-suspend-schema.d.ts +44 -0
  316. package/dist/store/trigger-suspend-schema.d.ts.map +1 -0
  317. package/dist/store/trigger-suspend-schema.js +25 -0
  318. package/dist/store/trigger-suspend-schema.js.map +1 -0
  319. package/dist/store/vault-manifest.d.ts +365 -0
  320. package/dist/store/vault-manifest.d.ts.map +1 -0
  321. package/dist/store/vault-manifest.js +812 -0
  322. package/dist/store/vault-manifest.js.map +1 -0
  323. package/dist/store/writer-lease.d.ts +31 -0
  324. package/dist/store/writer-lease.d.ts.map +1 -1
  325. package/dist/store/writer-lease.js +65 -2
  326. package/dist/store/writer-lease.js.map +1 -1
  327. package/dist/system/health.d.ts.map +1 -1
  328. package/dist/system/health.js +21 -0
  329. package/dist/system/health.js.map +1 -1
  330. package/dist/system/project-health.d.ts.map +1 -1
  331. package/dist/system/project-health.js +3 -1
  332. package/dist/system/project-health.js.map +1 -1
  333. package/dist/tasks/affected-packages.d.ts +58 -0
  334. package/dist/tasks/affected-packages.d.ts.map +1 -1
  335. package/dist/tasks/affected-packages.js +75 -6
  336. package/dist/tasks/affected-packages.js.map +1 -1
  337. package/dist/tasks/affected-scope.d.ts +150 -23
  338. package/dist/tasks/affected-scope.d.ts.map +1 -1
  339. package/dist/tasks/affected-scope.js +320 -32
  340. package/dist/tasks/affected-scope.js.map +1 -1
  341. package/dist/tasks/change-set.d.ts +96 -0
  342. package/dist/tasks/change-set.d.ts.map +1 -1
  343. package/dist/tasks/change-set.js +169 -4
  344. package/dist/tasks/change-set.js.map +1 -1
  345. package/dist/tasks/complete-ci.d.ts +115 -0
  346. package/dist/tasks/complete-ci.d.ts.map +1 -0
  347. package/dist/tasks/complete-ci.js +171 -0
  348. package/dist/tasks/complete-ci.js.map +1 -0
  349. package/dist/tasks/complete.d.ts.map +1 -1
  350. package/dist/tasks/complete.js +50 -17
  351. package/dist/tasks/complete.js.map +1 -1
  352. package/dist/tasks/compute-task-view.d.ts.map +1 -1
  353. package/dist/tasks/compute-task-view.js +7 -0
  354. package/dist/tasks/compute-task-view.js.map +1 -1
  355. package/dist/tasks/done-plan.d.ts.map +1 -1
  356. package/dist/tasks/done-plan.js +51 -30
  357. package/dist/tasks/done-plan.js.map +1 -1
  358. package/dist/tasks/done-record.d.ts +6 -0
  359. package/dist/tasks/done-record.d.ts.map +1 -1
  360. package/dist/tasks/done-record.js +9 -3
  361. package/dist/tasks/done-record.js.map +1 -1
  362. package/dist/tasks/evidence.d.ts +3 -2
  363. package/dist/tasks/evidence.d.ts.map +1 -1
  364. package/dist/tasks/evidence.js +143 -12
  365. package/dist/tasks/evidence.js.map +1 -1
  366. package/dist/tasks/gate-notes.d.ts +22 -0
  367. package/dist/tasks/gate-notes.d.ts.map +1 -0
  368. package/dist/tasks/gate-notes.js +33 -0
  369. package/dist/tasks/gate-notes.js.map +1 -0
  370. package/dist/tasks/index.d.ts +2 -1
  371. package/dist/tasks/index.d.ts.map +1 -1
  372. package/dist/tasks/index.js +2 -1
  373. package/dist/tasks/index.js.map +1 -1
  374. package/dist/tasks/test-run-binding.d.ts +117 -0
  375. package/dist/tasks/test-run-binding.d.ts.map +1 -0
  376. package/dist/tasks/test-run-binding.js +365 -0
  377. package/dist/tasks/test-run-binding.js.map +1 -0
  378. package/dist/tasks/tool-cache-env.d.ts +123 -0
  379. package/dist/tasks/tool-cache-env.d.ts.map +1 -0
  380. package/dist/tasks/tool-cache-env.js +287 -0
  381. package/dist/tasks/tool-cache-env.js.map +1 -0
  382. package/dist/tasks/tool-cache-failed-first.d.ts +155 -0
  383. package/dist/tasks/tool-cache-failed-first.d.ts.map +1 -0
  384. package/dist/tasks/tool-cache-failed-first.js +285 -0
  385. package/dist/tasks/tool-cache-failed-first.js.map +1 -0
  386. package/dist/tasks/tool-cache.d.ts +375 -55
  387. package/dist/tasks/tool-cache.d.ts.map +1 -1
  388. package/dist/tasks/tool-cache.js +912 -303
  389. package/dist/tasks/tool-cache.js.map +1 -1
  390. package/dist/tasks/tool-resolver.d.ts +4 -3
  391. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  392. package/dist/tasks/tool-resolver.js +15 -4
  393. package/dist/tasks/tool-resolver.js.map +1 -1
  394. package/dist/tasks/tool-semaphore.d.ts +67 -7
  395. package/dist/tasks/tool-semaphore.d.ts.map +1 -1
  396. package/dist/tasks/tool-semaphore.js +134 -56
  397. package/dist/tasks/tool-semaphore.js.map +1 -1
  398. package/dist/upgrade.d.ts.map +1 -1
  399. package/dist/upgrade.js +4 -0
  400. package/dist/upgrade.js.map +1 -1
  401. package/dist/validation/engine-ops.d.ts +6 -0
  402. package/dist/validation/engine-ops.d.ts.map +1 -1
  403. package/dist/validation/engine-ops.js +8 -0
  404. package/dist/validation/engine-ops.js.map +1 -1
  405. package/migrations/drizzle-cleo-project/20260930170000_t12819-trigger-suspend-clause/migration.sql +367 -0
  406. package/migrations/sync-journal/20260930120000_t12343-capture/migration.sql +47 -0
  407. package/migrations/sync-journal/20261001170000_t12984-sealer/migration.sql +101 -0
  408. package/package.json +13 -13
  409. package/templates/CLEO-INJECTION.md +5 -5
  410. package/templates/CLEO-REFERENCE.md +8 -4
@@ -0,0 +1,179 @@
1
+ /**
2
+ * `cleo cloud whoami|devices|projects`: read-only Cleo Nexus reads with the
3
+ * device credential (cleo-nexus device contract v2.15, §4.2 E2, E5, E13, E14,
4
+ * E15; CLI mapping §4.4).
5
+ *
6
+ * - Every request is a `GET`. Nothing here writes to the server or to a
7
+ * project store. The one side effect is the one every device-credential
8
+ * command has: {@link ensureNexusDeviceCredential} retries unsettled
9
+ * logouts and upgrades a 9.24 session once (§3.4, §3.5).
10
+ * - Lists follow `nextCursor` (§4.0.3) with the largest page the server takes,
11
+ * up to a page budget, and report the server's `truncated` flags.
12
+ * - Failures are mapped by {@link nexusApiErrorToAccountError}, whose table
13
+ * lives in `@cleocode/contracts` (§4.0.4).
14
+ *
15
+ * No function here logs, and no result or error carries a token.
16
+ *
17
+ * @task T12871
18
+ * @epic T12323
19
+ */
20
+ import { type CloudDevicesResult, type CloudPaging, type CloudProjectShowResult, type CloudProjectsResult, type CloudWarning, type CloudWhoamiResult, type NexusCloudReplica, type NexusDeviceListState, type NexusProjectLink } from '@cleocode/contracts';
21
+ import { type ResponseSchema } from './http.js';
22
+ import { NexusDeviceStore, type SealedNexusDevice } from './nexus-device.js';
23
+ import { type NexusDeviceCredentialOptions } from './nexus-enrol.js';
24
+ /** Timeout of one `cleo cloud` request. */
25
+ export declare const NEXUS_CLOUD_TIMEOUT_MS = 15000;
26
+ /** Warning code for a non-fatal problem met while getting the device credential. */
27
+ export declare const W_NEXUS_CREDENTIAL = "W_NEXUS_CREDENTIAL";
28
+ /** Warning code: a list stopped at its page budget while the server had more. */
29
+ export declare const W_NEXUS_PAGE_LIMIT = "W_NEXUS_PAGE_LIMIT";
30
+ /** Warning code: a server ceiling cut a list (§4.0.3 `truncated`). */
31
+ export declare const W_NEXUS_TRUNCATED = "W_NEXUS_TRUNCATED";
32
+ /** Options shared by every `cleo cloud` read; all optional (tests inject them). */
33
+ export interface NexusCloudOptions extends NexusDeviceCredentialOptions {
34
+ /** Project root; defaults to the current project (when there is one). */
35
+ projectRoot?: string;
36
+ /** Per-request timeout; default {@link NEXUS_CLOUD_TIMEOUT_MS}. */
37
+ timeoutMs?: number;
38
+ /** Most pages a list follows; default {@link NEXUS_CLOUD_MAX_PAGES}. */
39
+ maxPages?: number;
40
+ /** Page size sent as `limit`; default {@link NEXUS_PAGE_LIMIT_MAX}. */
41
+ pageLimit?: number;
42
+ }
43
+ /** A signed-in, read-only connection to the API. Holds the bearer inside {@link Http} only. */
44
+ export interface NexusCloudConnection {
45
+ /** API origin. */
46
+ readonly apiUrl: string;
47
+ /** The device entry whose credential the requests carry. */
48
+ readonly device: SealedNexusDevice;
49
+ /** Warnings from getting the credential. */
50
+ readonly warnings: CloudWarning[];
51
+ /** `GET path`, parsed against `schema`; failures mapped per §4.0.4. */
52
+ get<T>(path: string, schema: ResponseSchema<T>): Promise<T>;
53
+ /** {@link NexusCloudConnection.get}, but a 404 `E_NOT_FOUND` answers `null`. */
54
+ find<T>(path: string, schema: ResponseSchema<T>): Promise<T | null>;
55
+ }
56
+ /** The current CLEO project, as far as the cloud reads need it. */
57
+ export interface NexusCloudProject {
58
+ /** Project root. */
59
+ readonly root: string;
60
+ /** The tracked project id (`.cleo/project.json`, legacy `.cleo/project-id`). */
61
+ readonly projectId: string;
62
+ /** The `.cleo/nexus-link.json` entry for the origin, if any. */
63
+ readonly link: NexusProjectLink | null;
64
+ /** Path of `.cleo/nexus-link.json` (whether or not it exists). */
65
+ readonly linkPath: string;
66
+ }
67
+ /**
68
+ * Refuse with `E_NEXUS_DEVICE_REQUIRED` when device credentials are off
69
+ * (`CLEO_NEXUS_DEVICE=0`): the cloud reads never fall back to a 9.24 session.
70
+ *
71
+ * @throws {NexusAccountError} `E_NEXUS_DEVICE_REQUIRED`.
72
+ */
73
+ export declare function assertNexusCloudDeviceMode(): void;
74
+ /** Wrap credential warnings (plain strings) as envelope warnings. */
75
+ export declare function nexusCredentialWarnings(warnings: readonly string[]): CloudWarning[];
76
+ /**
77
+ * Open a read-only connection with this machine's device credential.
78
+ *
79
+ * @param opts - API URL, account, stores and test overrides.
80
+ * @returns The connection.
81
+ * @throws {NexusAccountError} `E_NEXUS_DEVICE_REQUIRED`, `E_NEXUS_NOT_SIGNED_IN`,
82
+ * `E_NEXUS_ACCOUNT_AMBIGUOUS`, or an upgrade failure.
83
+ */
84
+ export declare function connectNexusCloud(opts?: NexusCloudOptions): Promise<NexusCloudConnection>;
85
+ /** A path with its query string; `undefined` values are left out. */
86
+ export declare function nexusQueryPath(path: string, query: Readonly<Record<string, string | number | undefined>>): string;
87
+ /** One page of a cursor-paged list. */
88
+ interface Page {
89
+ readonly nextCursor: string | null;
90
+ readonly truncated: boolean;
91
+ }
92
+ /**
93
+ * Follow `nextCursor` until the server has no more or the budget is spent.
94
+ *
95
+ * @param fetchPage - Fetch the page after `cursor` (`null` for the first).
96
+ * @param maxPages - Page budget (at least 1).
97
+ * @returns Every page fetched and the paging facts.
98
+ */
99
+ export declare function followNexusPages<P extends Page>(fetchPage: (cursor: string | null) => Promise<P>, maxPages: number): Promise<{
100
+ pages: P[];
101
+ paging: CloudPaging;
102
+ }>;
103
+ /** The warnings a list's paging facts call for. */
104
+ export declare function nexusPagingWarnings(what: string, paging: CloudPaging): CloudWarning[];
105
+ /**
106
+ * The current CLEO project, or `null` outside one (or without a project id).
107
+ *
108
+ * @param apiUrl - API origin whose link entry to read.
109
+ * @param projectRoot - Explicit project root; defaults to the current one.
110
+ * @returns The project, its id and link entry, or `null`.
111
+ */
112
+ export declare function currentNexusCloudProject(apiUrl: string, projectRoot?: string): NexusCloudProject | null;
113
+ /**
114
+ * `cleo cloud whoami`: E2 `GET /v1/whoami`.
115
+ *
116
+ * @param opts - API URL, account, stores and test overrides.
117
+ * @returns Who is calling: user, organizations, credential and device.
118
+ */
119
+ export declare function nexusCloudWhoami(opts?: NexusCloudOptions): Promise<CloudWhoamiResult>;
120
+ /** Options for {@link listNexusCloudDevices}. */
121
+ export interface NexusCloudDevicesOptions extends NexusCloudOptions {
122
+ /** `--state`; the server's default (`active` for device callers) when absent. */
123
+ state?: NexusDeviceListState;
124
+ }
125
+ /**
126
+ * `cleo cloud devices`: E5 `GET /v1/devices`, every page.
127
+ *
128
+ * @param opts - State filter, paging and test overrides.
129
+ * @returns Every device, newest first, with paging facts.
130
+ */
131
+ export declare function listNexusCloudDevices(opts?: NexusCloudDevicesOptions): Promise<CloudDevicesResult>;
132
+ /** Options for {@link listNexusCloudProjects}. */
133
+ export interface NexusCloudProjectsOptions extends NexusCloudOptions {
134
+ /** `--org`: only this organization's projects. */
135
+ organizationId?: string;
136
+ }
137
+ /**
138
+ * `cleo cloud projects`: E13 `GET /v1/projects`, every page.
139
+ *
140
+ * @param opts - Organization filter, paging and test overrides.
141
+ * @returns Every visible project, newest first, with paging facts.
142
+ */
143
+ export declare function listNexusCloudProjects(opts?: NexusCloudProjectsOptions): Promise<CloudProjectsResult>;
144
+ /**
145
+ * Every replica of a project from E15, following its cursors.
146
+ *
147
+ * @param conn - Connection.
148
+ * @param projectId - Project id.
149
+ * @param opts - Paging overrides.
150
+ * @returns The replicas, oldest attachment first, and the paging facts.
151
+ */
152
+ export declare function listNexusCloudReplicas(conn: NexusCloudConnection, projectId: string, opts?: Pick<NexusCloudOptions, 'maxPages' | 'pageLimit'>): Promise<{
153
+ replicas: NexusCloudReplica[];
154
+ paging: CloudPaging;
155
+ }>;
156
+ /** Options for {@link showNexusCloudProject}. */
157
+ export interface NexusCloudProjectShowOptions extends NexusCloudOptions {
158
+ /** The project; defaults to the current project. */
159
+ projectId?: string;
160
+ }
161
+ /**
162
+ * `cleo cloud projects show [<id>]`: E14 `GET /v1/projects/:projectId`. When
163
+ * E14 cut its replica list at 50, the full list is read from E15.
164
+ *
165
+ * @param opts - Project id (default: the current project), paging and test overrides.
166
+ * @returns The project detail.
167
+ * @throws {NexusAccountError} `E_NEXUS_NOT_A_PROJECT` with no id outside a
168
+ * project; `E_NEXUS_REQUEST_FAILED` for an unknown or invisible project.
169
+ */
170
+ export declare function showNexusCloudProject(opts?: NexusCloudProjectShowOptions): Promise<CloudProjectShowResult>;
171
+ /**
172
+ * The device credential store's location, for reports (never its contents).
173
+ *
174
+ * @param store - The store in use, if injected.
175
+ * @returns Absolute path of `nexus-device.json`.
176
+ */
177
+ export declare function nexusCloudCredentialsPath(store?: NexusDeviceStore): string;
178
+ export {};
179
+ //# sourceMappingURL=nexus-cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-cloud.d.ts","sourceRoot":"","sources":["../../src/cloud/nexus-cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * `cleo cloud whoami|devices|projects`: read-only Cleo Nexus reads with the
3
+ * device credential (cleo-nexus device contract v2.15, §4.2 E2, E5, E13, E14,
4
+ * E15; CLI mapping §4.4).
5
+ *
6
+ * - Every request is a `GET`. Nothing here writes to the server or to a
7
+ * project store. The one side effect is the one every device-credential
8
+ * command has: {@link ensureNexusDeviceCredential} retries unsettled
9
+ * logouts and upgrades a 9.24 session once (§3.4, §3.5).
10
+ * - Lists follow `nextCursor` (§4.0.3) with the largest page the server takes,
11
+ * up to a page budget, and report the server's `truncated` flags.
12
+ * - Failures are mapped by {@link nexusApiErrorToAccountError}, whose table
13
+ * lives in `@cleocode/contracts` (§4.0.4).
14
+ *
15
+ * No function here logs, and no result or error carries a token.
16
+ *
17
+ * @task T12871
18
+ * @epic T12323
19
+ */
20
+ import { NEXUS_CLOUD_MAX_PAGES, NEXUS_PAGE_LIMIT_MAX, nexusCloudDevicePageSchema, nexusCloudProjectDetailSchema, nexusCloudProjectPageSchema, nexusCloudReplicaPageSchema, nexusCloudWhoamiSchema, } from '@cleocode/contracts';
21
+ import { readDeclaredProjectIdentity } from '@cleocode/paths';
22
+ import { resolveOrCwd } from '../paths.js';
23
+ import { Http, NexusError } from './http.js';
24
+ import { NexusAccountError, resolveNexusApiUrl } from './nexus-auth.js';
25
+ import { isNexusDeviceEnabled, NexusDeviceStore } from './nexus-device.js';
26
+ import { ensureNexusDeviceCredential, nexusApiErrorToAccountError, } from './nexus-enrol.js';
27
+ import { nexusLinkPath, readNexusProjectLink } from './nexus-link.js';
28
+ /** Timeout of one `cleo cloud` request. */
29
+ export const NEXUS_CLOUD_TIMEOUT_MS = 15_000;
30
+ /** Warning code for a non-fatal problem met while getting the device credential. */
31
+ export const W_NEXUS_CREDENTIAL = 'W_NEXUS_CREDENTIAL';
32
+ /** Warning code: a list stopped at its page budget while the server had more. */
33
+ export const W_NEXUS_PAGE_LIMIT = 'W_NEXUS_PAGE_LIMIT';
34
+ /** Warning code: a server ceiling cut a list (§4.0.3 `truncated`). */
35
+ export const W_NEXUS_TRUNCATED = 'W_NEXUS_TRUNCATED';
36
+ /**
37
+ * Refuse with `E_NEXUS_DEVICE_REQUIRED` when device credentials are off
38
+ * (`CLEO_NEXUS_DEVICE=0`): the cloud reads never fall back to a 9.24 session.
39
+ *
40
+ * @throws {NexusAccountError} `E_NEXUS_DEVICE_REQUIRED`.
41
+ */
42
+ export function assertNexusCloudDeviceMode() {
43
+ if (isNexusDeviceEnabled())
44
+ return;
45
+ throw new NexusAccountError('E_NEXUS_DEVICE_REQUIRED', '`cleo cloud` reads use the device credential, which CLEO_NEXUS_DEVICE=0 turns off', 'unset CLEO_NEXUS_DEVICE and run `cleo login nexus`');
46
+ }
47
+ /** Wrap credential warnings (plain strings) as envelope warnings. */
48
+ export function nexusCredentialWarnings(warnings) {
49
+ return warnings.map((message) => ({ code: W_NEXUS_CREDENTIAL, message }));
50
+ }
51
+ /**
52
+ * Open a read-only connection with this machine's device credential.
53
+ *
54
+ * @param opts - API URL, account, stores and test overrides.
55
+ * @returns The connection.
56
+ * @throws {NexusAccountError} `E_NEXUS_DEVICE_REQUIRED`, `E_NEXUS_NOT_SIGNED_IN`,
57
+ * `E_NEXUS_ACCOUNT_AMBIGUOUS`, or an upgrade failure.
58
+ */
59
+ export async function connectNexusCloud(opts = {}) {
60
+ assertNexusCloudDeviceMode();
61
+ const apiUrl = resolveNexusApiUrl(opts.apiUrl);
62
+ const handle = await ensureNexusDeviceCredential({ ...opts, apiUrl });
63
+ const bearer = handle.device.currentBearer();
64
+ if (bearer === null) {
65
+ throw new NexusAccountError('E_NEXUS_NOT_SIGNED_IN', `not signed in to Cleo Nexus at ${apiUrl}`, 'run `cleo login nexus`');
66
+ }
67
+ const base = opts.fetch ?? ((input, init) => globalThis.fetch(input, init));
68
+ const timeoutMs = opts.timeoutMs ?? NEXUS_CLOUD_TIMEOUT_MS;
69
+ const timed = (input, init) => base(input, { ...init, signal: AbortSignal.timeout(timeoutMs) });
70
+ const http = new Http({ baseUrl: apiUrl, token: bearer, fetch: timed, maxAttempts: 1 });
71
+ return {
72
+ apiUrl,
73
+ device: handle.device,
74
+ warnings: nexusCredentialWarnings(handle.warnings),
75
+ async get(path, schema) {
76
+ try {
77
+ return await http.request('GET', path, schema);
78
+ }
79
+ catch (err) {
80
+ throw nexusApiErrorToAccountError(err);
81
+ }
82
+ },
83
+ async find(path, schema) {
84
+ try {
85
+ return await http.request('GET', path, schema);
86
+ }
87
+ catch (err) {
88
+ if (err instanceof NexusError && err.status === 404 && err.code === 'E_NOT_FOUND') {
89
+ return null;
90
+ }
91
+ throw nexusApiErrorToAccountError(err);
92
+ }
93
+ },
94
+ };
95
+ }
96
+ /** A path with its query string; `undefined` values are left out. */
97
+ export function nexusQueryPath(path, query) {
98
+ const params = new URLSearchParams();
99
+ for (const [k, v] of Object.entries(query))
100
+ if (v !== undefined)
101
+ params.set(k, String(v));
102
+ const qs = params.toString();
103
+ return qs === '' ? path : `${path}?${qs}`;
104
+ }
105
+ /**
106
+ * Follow `nextCursor` until the server has no more or the budget is spent.
107
+ *
108
+ * @param fetchPage - Fetch the page after `cursor` (`null` for the first).
109
+ * @param maxPages - Page budget (at least 1).
110
+ * @returns Every page fetched and the paging facts.
111
+ */
112
+ export async function followNexusPages(fetchPage, maxPages) {
113
+ const pages = [];
114
+ let cursor = null;
115
+ const budget = Math.max(1, Math.floor(maxPages));
116
+ do {
117
+ const page = await fetchPage(cursor);
118
+ pages.push(page);
119
+ cursor = page.nextCursor;
120
+ } while (cursor !== null && pages.length < budget);
121
+ return {
122
+ pages,
123
+ paging: {
124
+ pages: pages.length,
125
+ truncated: pages.some((p) => p.truncated),
126
+ pageLimitReached: cursor !== null,
127
+ },
128
+ };
129
+ }
130
+ /** The warnings a list's paging facts call for. */
131
+ export function nexusPagingWarnings(what, paging) {
132
+ const out = [];
133
+ if (paging.truncated) {
134
+ out.push({
135
+ code: W_NEXUS_TRUNCATED,
136
+ message: `the server cut the ${what} at its hard ceiling; counts in the rows are exact, the list is not`,
137
+ });
138
+ }
139
+ if (paging.pageLimitReached) {
140
+ out.push({
141
+ code: W_NEXUS_PAGE_LIMIT,
142
+ message: `stopped after ${paging.pages} page(s) of ${what}; the server has more`,
143
+ });
144
+ }
145
+ return out;
146
+ }
147
+ /**
148
+ * The current CLEO project, or `null` outside one (or without a project id).
149
+ *
150
+ * @param apiUrl - API origin whose link entry to read.
151
+ * @param projectRoot - Explicit project root; defaults to the current one.
152
+ * @returns The project, its id and link entry, or `null`.
153
+ */
154
+ export function currentNexusCloudProject(apiUrl, projectRoot) {
155
+ let root;
156
+ try {
157
+ root = resolveOrCwd(projectRoot);
158
+ }
159
+ catch {
160
+ return null;
161
+ }
162
+ const identity = readDeclaredProjectIdentity(root);
163
+ if (!identity)
164
+ return null;
165
+ return {
166
+ root,
167
+ projectId: identity.projectId,
168
+ link: readNexusProjectLink(root, apiUrl),
169
+ linkPath: nexusLinkPath(root),
170
+ };
171
+ }
172
+ /**
173
+ * `cleo cloud whoami`: E2 `GET /v1/whoami`.
174
+ *
175
+ * @param opts - API URL, account, stores and test overrides.
176
+ * @returns Who is calling: user, organizations, credential and device.
177
+ */
178
+ export async function nexusCloudWhoami(opts = {}) {
179
+ const conn = await connectNexusCloud(opts);
180
+ const whoami = await conn.get('/v1/whoami', nexusCloudWhoamiSchema);
181
+ return { apiUrl: conn.apiUrl, ...whoami, warnings: conn.warnings };
182
+ }
183
+ /**
184
+ * `cleo cloud devices`: E5 `GET /v1/devices`, every page.
185
+ *
186
+ * @param opts - State filter, paging and test overrides.
187
+ * @returns Every device, newest first, with paging facts.
188
+ */
189
+ export async function listNexusCloudDevices(opts = {}) {
190
+ const conn = await connectNexusCloud(opts);
191
+ const limit = opts.pageLimit ?? NEXUS_PAGE_LIMIT_MAX;
192
+ const { pages, paging } = await followNexusPages((cursor) => conn.get(nexusQueryPath('/v1/devices', { limit, cursor: cursor ?? undefined, state: opts.state }), nexusCloudDevicePageSchema), opts.maxPages ?? NEXUS_CLOUD_MAX_PAGES);
193
+ const devices = pages.flatMap((p) => p.devices);
194
+ return {
195
+ apiUrl: conn.apiUrl,
196
+ state: opts.state ?? null,
197
+ devices,
198
+ count: devices.length,
199
+ paging,
200
+ warnings: [...conn.warnings, ...nexusPagingWarnings('device list', paging)],
201
+ };
202
+ }
203
+ /**
204
+ * `cleo cloud projects`: E13 `GET /v1/projects`, every page.
205
+ *
206
+ * @param opts - Organization filter, paging and test overrides.
207
+ * @returns Every visible project, newest first, with paging facts.
208
+ */
209
+ export async function listNexusCloudProjects(opts = {}) {
210
+ const conn = await connectNexusCloud(opts);
211
+ const limit = opts.pageLimit ?? NEXUS_PAGE_LIMIT_MAX;
212
+ const { pages, paging } = await followNexusPages((cursor) => conn.get(nexusQueryPath('/v1/projects', {
213
+ limit,
214
+ cursor: cursor ?? undefined,
215
+ organizationId: opts.organizationId,
216
+ }), nexusCloudProjectPageSchema), opts.maxPages ?? NEXUS_CLOUD_MAX_PAGES);
217
+ const projects = pages.flatMap((p) => p.projects);
218
+ const full = { ...paging, projectsTruncated: pages.some((p) => p.projectsTruncated) };
219
+ return {
220
+ apiUrl: conn.apiUrl,
221
+ organizationId: opts.organizationId ?? null,
222
+ projects,
223
+ count: projects.length,
224
+ paging: full,
225
+ warnings: [...conn.warnings, ...nexusPagingWarnings('project list', paging)],
226
+ };
227
+ }
228
+ /**
229
+ * Every replica of a project from E15, following its cursors.
230
+ *
231
+ * @param conn - Connection.
232
+ * @param projectId - Project id.
233
+ * @param opts - Paging overrides.
234
+ * @returns The replicas, oldest attachment first, and the paging facts.
235
+ */
236
+ export async function listNexusCloudReplicas(conn, projectId, opts = {}) {
237
+ const limit = opts.pageLimit ?? NEXUS_PAGE_LIMIT_MAX;
238
+ const { pages, paging } = await followNexusPages((cursor) => conn.get(nexusQueryPath(`/v1/projects/${encodeURIComponent(projectId)}/replicas`, {
239
+ limit,
240
+ cursor: cursor ?? undefined,
241
+ }), nexusCloudReplicaPageSchema), opts.maxPages ?? NEXUS_CLOUD_MAX_PAGES);
242
+ return { replicas: pages.flatMap((p) => p.replicas), paging };
243
+ }
244
+ /**
245
+ * `cleo cloud projects show [<id>]`: E14 `GET /v1/projects/:projectId`. When
246
+ * E14 cut its replica list at 50, the full list is read from E15.
247
+ *
248
+ * @param opts - Project id (default: the current project), paging and test overrides.
249
+ * @returns The project detail.
250
+ * @throws {NexusAccountError} `E_NEXUS_NOT_A_PROJECT` with no id outside a
251
+ * project; `E_NEXUS_REQUEST_FAILED` for an unknown or invisible project.
252
+ */
253
+ export async function showNexusCloudProject(opts = {}) {
254
+ const apiUrl = resolveNexusApiUrl(opts.apiUrl);
255
+ let projectId = opts.projectId;
256
+ const currentProject = projectId === undefined;
257
+ if (projectId === undefined) {
258
+ const project = currentNexusCloudProject(apiUrl, opts.projectRoot);
259
+ if (project === null) {
260
+ throw new NexusAccountError('E_NEXUS_NOT_A_PROJECT', 'no project id given and not inside a CLEO project', 'pass a project id (`cleo cloud projects show <id>`) or run it inside a CLEO project');
261
+ }
262
+ projectId = project.link?.remoteProjectId ?? project.projectId;
263
+ }
264
+ const conn = await connectNexusCloud({ ...opts, apiUrl });
265
+ const detail = await conn.get(`/v1/projects/${encodeURIComponent(projectId)}`, nexusCloudProjectDetailSchema);
266
+ let replicaPaging = {
267
+ pages: 0,
268
+ truncated: detail.truncated,
269
+ pageLimitReached: false,
270
+ };
271
+ let replicas = detail.replicas;
272
+ if (detail.truncated) {
273
+ const all = await listNexusCloudReplicas(conn, projectId, opts);
274
+ replicas = all.replicas;
275
+ replicaPaging = all.paging;
276
+ }
277
+ return {
278
+ ...detail,
279
+ replicas,
280
+ apiUrl: conn.apiUrl,
281
+ projectId,
282
+ currentProject,
283
+ replicaPaging,
284
+ warnings: [...conn.warnings, ...nexusPagingWarnings('replica list', replicaPaging)],
285
+ };
286
+ }
287
+ /**
288
+ * The device credential store's location, for reports (never its contents).
289
+ *
290
+ * @param store - The store in use, if injected.
291
+ * @returns Absolute path of `nexus-device.json`.
292
+ */
293
+ export function nexusCloudCredentialsPath(store) {
294
+ return (store ?? new NexusDeviceStore()).location;
295
+ }
296
+ //# sourceMappingURL=nexus-cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-cloud.js","sourceRoot":"","sources":["../../src/cloud/nexus-cloud.ts"],"names":[],"mappings":"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"}
@@ -81,10 +81,11 @@
81
81
  * entry (`{ ...entry }`) produces an unguarded copy: T12868–T12871 must
82
82
  * never spread an entry, or any part of one, into a log line or envelope.
83
83
  *
84
- * Behaviour that uses it ships behind `CLEO_NEXUS_DEVICE=1`
85
- * ({@link isNexusDeviceEnabled}): login enrolment and the 9.24 upgrade
86
- * (`nexus-enrol.ts`, T12868), then rotation, logout and the cloud reads
87
- * (T12869–T12871).
84
+ * Behaviour that uses it is on by default and switched off with
85
+ * `CLEO_NEXUS_DEVICE=0` ({@link isNexusDeviceEnabled}, T12904): login
86
+ * enrolment and the 9.24 upgrade (`nexus-enrol.ts`, T12868), logout and
87
+ * revoke (`nexus-logout.ts`, T12870), then rotation and the cloud reads
88
+ * (T12869, T12871).
88
89
  *
89
90
  * @task T12867
90
91
  * @epic T12323
@@ -216,8 +217,8 @@ declare const entrySchema: z.ZodObject<{
216
217
  enrolIntent: z.ZodOptional<z.ZodNullable<z.ZodObject<{
217
218
  deviceId: z.ZodString;
218
219
  kind: z.ZodEnum<{
219
- upgrade: "upgrade";
220
220
  login: "login";
221
+ upgrade: "upgrade";
221
222
  }>;
222
223
  /** Random id of the process that wrote it (a CAS token). */
223
224
  owner: z.ZodString;
@@ -261,10 +262,12 @@ export declare class NexusDeviceStoreError extends Error {
261
262
  constructor(code: NexusDeviceStoreErrorCode, message: string);
262
263
  }
263
264
  /**
264
- * Whether the device-credential behaviour is switched on (`CLEO_NEXUS_DEVICE=1`).
265
+ * Whether the device-credential login is on. It is the default (T12904);
266
+ * `CLEO_NEXUS_DEVICE=0` (or `false`, `off`, `no`) switches back to the 9.24
267
+ * session login. Status and logout always handle a stored device credential.
265
268
  *
266
269
  * @param env - Environment to read; defaults to `process.env`.
267
- * @returns `true` only for the exact value `1`.
270
+ * @returns `false` only for an off value.
268
271
  */
269
272
  export declare function isNexusDeviceEnabled(env?: NodeJS.ProcessEnv): boolean;
270
273
  /**
@@ -552,6 +555,28 @@ export declare function applyBeginRevoke(entry: NexusDeviceEntry, now?: Date): N
552
555
  * @returns The updated entry, guarded.
553
556
  */
554
557
  export declare function applySignOutConfirmed(entry: NexusDeviceEntry): NexusDeviceEntry;
558
+ /**
559
+ * Forget this device locally after a revoke ended (contract §3.5, L6): the
560
+ * server confirmed it, found the device signed out (E10 401
561
+ * `device-signed-out`, v2.13), or refused every credential as dead. The keys,
562
+ * every credential and every slot go, so the next login enrols a fresh
563
+ * device id and can never re-activate the one the user asked to burn. Only
564
+ * `retired` survives, because those requests may still hold live credentials
565
+ * of other devices; the caller deletes the whole entry when there are none.
566
+ *
567
+ * @param entry - The entry read under the lock.
568
+ * @returns The stripped entry, guarded.
569
+ */
570
+ export declare function applyForgetDevice(entry: NexusDeviceEntry): NexusDeviceEntry;
571
+ /**
572
+ * Whether an entry holds nothing worth keeping: no keys, no credential, no
573
+ * slot and no retired request (left by {@link applyForgetDevice} once its
574
+ * retired requests settled).
575
+ *
576
+ * @param entry - The entry read under the lock.
577
+ * @returns `true` when the entry can be deleted.
578
+ */
579
+ export declare function isForgottenDevice(entry: NexusDeviceEntry): boolean;
555
580
  /**
556
581
  * Settle a confirmed sign-out or revoke of a retired device.
557
582
  *
@@ -1 +1 @@
1
- {"version":3,"file":"nexus-device.d.ts","sourceRoot":"","sources":["../../src/cloud/nexus-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nexus-device.d.ts","sourceRoot":"","sources":["../../src/cloud/nexus-device.ts"],"names":[],"mappings":"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"}