@productbrain/cli 0.1.0-beta.75 → 0.1.0-beta.7503

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 (1397) hide show
  1. package/README.md +8 -2
  2. package/dist/__tests__/adapters.test.js +76 -23
  3. package/dist/__tests__/adapters.test.js.map +1 -1
  4. package/dist/__tests__/adminConfig.test.d.ts +18 -0
  5. package/dist/__tests__/adminConfig.test.d.ts.map +1 -0
  6. package/dist/__tests__/adminConfig.test.js +221 -0
  7. package/dist/__tests__/adminConfig.test.js.map +1 -0
  8. package/dist/__tests__/audit.test.js +86 -28
  9. package/dist/__tests__/audit.test.js.map +1 -1
  10. package/dist/__tests__/batch-transformations.test.js +2 -26
  11. package/dist/__tests__/batch-transformations.test.js.map +1 -1
  12. package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
  13. package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
  14. package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
  15. package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
  16. package/dist/__tests__/capture-receipt-coaching.test.d.ts +2 -0
  17. package/dist/__tests__/capture-receipt-coaching.test.d.ts.map +1 -0
  18. package/dist/__tests__/capture-receipt-coaching.test.js +89 -0
  19. package/dist/__tests__/capture-receipt-coaching.test.js.map +1 -0
  20. package/dist/__tests__/capture-receipt-spine-floor.test.d.ts +2 -0
  21. package/dist/__tests__/capture-receipt-spine-floor.test.d.ts.map +1 -0
  22. package/dist/__tests__/capture-receipt-spine-floor.test.js +45 -0
  23. package/dist/__tests__/capture-receipt-spine-floor.test.js.map +1 -0
  24. package/dist/__tests__/capture.test.js +1272 -73
  25. package/dist/__tests__/capture.test.js.map +1 -1
  26. package/dist/__tests__/client-binding-guard.test.d.ts +2 -0
  27. package/dist/__tests__/client-binding-guard.test.d.ts.map +1 -0
  28. package/dist/__tests__/client-binding-guard.test.js +84 -0
  29. package/dist/__tests__/client-binding-guard.test.js.map +1 -0
  30. package/dist/__tests__/coaching-mirror-drift.test.d.ts +2 -0
  31. package/dist/__tests__/coaching-mirror-drift.test.d.ts.map +1 -0
  32. package/dist/__tests__/coaching-mirror-drift.test.js +47 -0
  33. package/dist/__tests__/coaching-mirror-drift.test.js.map +1 -0
  34. package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
  35. package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
  36. package/dist/__tests__/codex-prep-parity.test.js +106 -0
  37. package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
  38. package/dist/__tests__/collection-registry-seed-drift.test.d.ts +2 -0
  39. package/dist/__tests__/collection-registry-seed-drift.test.d.ts.map +1 -0
  40. package/dist/__tests__/collection-registry-seed-drift.test.js +107 -0
  41. package/dist/__tests__/collection-registry-seed-drift.test.js.map +1 -0
  42. package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
  43. package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
  44. package/dist/__tests__/config-prod-fallthrough.test.js +93 -0
  45. package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
  46. package/dist/__tests__/config.test.d.ts +1 -1
  47. package/dist/__tests__/config.test.js +845 -18
  48. package/dist/__tests__/config.test.js.map +1 -1
  49. package/dist/__tests__/constants.test.js +6 -1
  50. package/dist/__tests__/constants.test.js.map +1 -1
  51. package/dist/__tests__/constellation.test.js +26 -14
  52. package/dist/__tests__/constellation.test.js.map +1 -1
  53. package/dist/__tests__/conversation.test.d.ts +2 -0
  54. package/dist/__tests__/conversation.test.d.ts.map +1 -0
  55. package/dist/__tests__/conversation.test.js +113 -0
  56. package/dist/__tests__/conversation.test.js.map +1 -0
  57. package/dist/__tests__/entry-formatter.test.d.ts +2 -0
  58. package/dist/__tests__/entry-formatter.test.d.ts.map +1 -0
  59. package/dist/__tests__/entry-formatter.test.js +130 -0
  60. package/dist/__tests__/entry-formatter.test.js.map +1 -0
  61. package/dist/__tests__/entry-preflight.test.d.ts +2 -0
  62. package/dist/__tests__/entry-preflight.test.d.ts.map +1 -0
  63. package/dist/__tests__/entry-preflight.test.js +58 -0
  64. package/dist/__tests__/entry-preflight.test.js.map +1 -0
  65. package/dist/__tests__/entryAccept-batch.test.d.ts +2 -0
  66. package/dist/__tests__/entryAccept-batch.test.d.ts.map +1 -0
  67. package/dist/__tests__/entryAccept-batch.test.js +305 -0
  68. package/dist/__tests__/entryAccept-batch.test.js.map +1 -0
  69. package/dist/__tests__/entryAccept.test.d.ts +2 -0
  70. package/dist/__tests__/entryAccept.test.d.ts.map +1 -0
  71. package/dist/__tests__/entryAccept.test.js +433 -0
  72. package/dist/__tests__/entryAccept.test.js.map +1 -0
  73. package/dist/__tests__/entryArchive.test.d.ts +2 -0
  74. package/dist/__tests__/entryArchive.test.d.ts.map +1 -0
  75. package/dist/__tests__/entryArchive.test.js +35 -0
  76. package/dist/__tests__/entryArchive.test.js.map +1 -0
  77. package/dist/__tests__/entryOwn.test.d.ts +2 -0
  78. package/dist/__tests__/entryOwn.test.d.ts.map +1 -0
  79. package/dist/__tests__/entryOwn.test.js +50 -0
  80. package/dist/__tests__/entryOwn.test.js.map +1 -0
  81. package/dist/__tests__/envelope-contract.test.d.ts +15 -0
  82. package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
  83. package/dist/__tests__/envelope-contract.test.js +154 -0
  84. package/dist/__tests__/envelope-contract.test.js.map +1 -0
  85. package/dist/__tests__/errors.test.js +30 -0
  86. package/dist/__tests__/errors.test.js.map +1 -1
  87. package/dist/__tests__/gateway-dry-run-timeout.test.d.ts +2 -0
  88. package/dist/__tests__/gateway-dry-run-timeout.test.d.ts.map +1 -0
  89. package/dist/__tests__/gateway-dry-run-timeout.test.js +70 -0
  90. package/dist/__tests__/gateway-dry-run-timeout.test.js.map +1 -0
  91. package/dist/__tests__/gateway-timeout-body-phase.test.d.ts +2 -0
  92. package/dist/__tests__/gateway-timeout-body-phase.test.d.ts.map +1 -0
  93. package/dist/__tests__/gateway-timeout-body-phase.test.js +121 -0
  94. package/dist/__tests__/gateway-timeout-body-phase.test.js.map +1 -0
  95. package/dist/__tests__/handshake-augment.test.d.ts +2 -0
  96. package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
  97. package/dist/__tests__/handshake-augment.test.js +422 -0
  98. package/dist/__tests__/handshake-augment.test.js.map +1 -0
  99. package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
  100. package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
  101. package/dist/__tests__/handshake-dormancy.test.js +24 -0
  102. package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
  103. package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
  104. package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
  105. package/dist/__tests__/handshake-formatter.test.js +111 -0
  106. package/dist/__tests__/handshake-formatter.test.js.map +1 -0
  107. package/dist/__tests__/handshake-preview.test.d.ts +2 -0
  108. package/dist/__tests__/handshake-preview.test.d.ts.map +1 -0
  109. package/dist/__tests__/handshake-preview.test.js +482 -0
  110. package/dist/__tests__/handshake-preview.test.js.map +1 -0
  111. package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
  112. package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
  113. package/dist/__tests__/handshake.e2e.test.js +226 -0
  114. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  115. package/dist/__tests__/handshake.test.js +828 -4
  116. package/dist/__tests__/handshake.test.js.map +1 -1
  117. package/dist/__tests__/health-gap-kinds-drift.test.d.ts +2 -0
  118. package/dist/__tests__/health-gap-kinds-drift.test.d.ts.map +1 -0
  119. package/dist/__tests__/health-gap-kinds-drift.test.js +43 -0
  120. package/dist/__tests__/health-gap-kinds-drift.test.js.map +1 -0
  121. package/dist/__tests__/hook-intents.test.d.ts +2 -0
  122. package/dist/__tests__/hook-intents.test.d.ts.map +1 -0
  123. package/dist/__tests__/hook-intents.test.js +184 -0
  124. package/dist/__tests__/hook-intents.test.js.map +1 -0
  125. package/dist/__tests__/ingest.test.js +9 -0
  126. package/dist/__tests__/ingest.test.js.map +1 -1
  127. package/dist/__tests__/init.test.js +51 -14
  128. package/dist/__tests__/init.test.js.map +1 -1
  129. package/dist/__tests__/kernel-value-sets-drift.test.d.ts +2 -0
  130. package/dist/__tests__/kernel-value-sets-drift.test.d.ts.map +1 -0
  131. package/dist/__tests__/kernel-value-sets-drift.test.js +46 -0
  132. package/dist/__tests__/kernel-value-sets-drift.test.js.map +1 -0
  133. package/dist/__tests__/kernel-value-sets-generator.test.d.ts +2 -0
  134. package/dist/__tests__/kernel-value-sets-generator.test.d.ts.map +1 -0
  135. package/dist/__tests__/kernel-value-sets-generator.test.js +108 -0
  136. package/dist/__tests__/kernel-value-sets-generator.test.js.map +1 -0
  137. package/dist/__tests__/manifest.test.d.ts +6 -0
  138. package/dist/__tests__/manifest.test.d.ts.map +1 -0
  139. package/dist/__tests__/manifest.test.js +255 -0
  140. package/dist/__tests__/manifest.test.js.map +1 -0
  141. package/dist/__tests__/method-publish-coherency.test.d.ts +9 -0
  142. package/dist/__tests__/method-publish-coherency.test.d.ts.map +1 -0
  143. package/dist/__tests__/method-publish-coherency.test.js +71 -0
  144. package/dist/__tests__/method-publish-coherency.test.js.map +1 -0
  145. package/dist/__tests__/method-registry.integration.test.d.ts +6 -0
  146. package/dist/__tests__/method-registry.integration.test.d.ts.map +1 -0
  147. package/dist/__tests__/method-registry.integration.test.js +17 -0
  148. package/dist/__tests__/method-registry.integration.test.js.map +1 -0
  149. package/dist/__tests__/method-registry.test.d.ts +12 -0
  150. package/dist/__tests__/method-registry.test.d.ts.map +1 -0
  151. package/dist/__tests__/method-registry.test.js +86 -0
  152. package/dist/__tests__/method-registry.test.js.map +1 -0
  153. package/dist/__tests__/missingPin.test.d.ts +11 -0
  154. package/dist/__tests__/missingPin.test.d.ts.map +1 -0
  155. package/dist/__tests__/missingPin.test.js +233 -0
  156. package/dist/__tests__/missingPin.test.js.map +1 -0
  157. package/dist/__tests__/notice-marker.test.d.ts +2 -0
  158. package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
  159. package/dist/__tests__/notice-marker.test.js +176 -0
  160. package/dist/__tests__/notice-marker.test.js.map +1 -0
  161. package/dist/__tests__/onboarding-path-b.test.js +4 -4
  162. package/dist/__tests__/onboarding-path-b.test.js.map +1 -1
  163. package/dist/__tests__/onboarding.test.js +4 -1
  164. package/dist/__tests__/onboarding.test.js.map +1 -1
  165. package/dist/__tests__/orient.test.js +493 -12
  166. package/dist/__tests__/orient.test.js.map +1 -1
  167. package/dist/__tests__/perimeter.test.d.ts +2 -0
  168. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  169. package/dist/__tests__/perimeter.test.js +165 -0
  170. package/dist/__tests__/perimeter.test.js.map +1 -0
  171. package/dist/__tests__/personal-layer.test.d.ts +11 -0
  172. package/dist/__tests__/personal-layer.test.d.ts.map +1 -0
  173. package/dist/__tests__/personal-layer.test.js +268 -0
  174. package/dist/__tests__/personal-layer.test.js.map +1 -0
  175. package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
  176. package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
  177. package/dist/__tests__/preview-key-refresh.test.js +126 -0
  178. package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
  179. package/dist/__tests__/profiles.test.js +613 -5
  180. package/dist/__tests__/profiles.test.js.map +1 -1
  181. package/dist/__tests__/proof-run.test.d.ts +2 -0
  182. package/dist/__tests__/proof-run.test.d.ts.map +1 -0
  183. package/dist/__tests__/proof-run.test.js +255 -0
  184. package/dist/__tests__/proof-run.test.js.map +1 -0
  185. package/dist/__tests__/proposals.test.js +1 -1
  186. package/dist/__tests__/proposals.test.js.map +1 -1
  187. package/dist/__tests__/rate-limit-resilience.test.d.ts +7 -0
  188. package/dist/__tests__/rate-limit-resilience.test.d.ts.map +1 -0
  189. package/dist/__tests__/rate-limit-resilience.test.js +209 -0
  190. package/dist/__tests__/rate-limit-resilience.test.js.map +1 -0
  191. package/dist/__tests__/read-target-notice.test.d.ts +2 -0
  192. package/dist/__tests__/read-target-notice.test.d.ts.map +1 -0
  193. package/dist/__tests__/read-target-notice.test.js +129 -0
  194. package/dist/__tests__/read-target-notice.test.js.map +1 -0
  195. package/dist/__tests__/relate.test.js +246 -2
  196. package/dist/__tests__/relate.test.js.map +1 -1
  197. package/dist/__tests__/repo-detect.test.js +9 -14
  198. package/dist/__tests__/repo-detect.test.js.map +1 -1
  199. package/dist/__tests__/reportedProfile.test.d.ts +2 -0
  200. package/dist/__tests__/reportedProfile.test.d.ts.map +1 -0
  201. package/dist/__tests__/reportedProfile.test.js +328 -0
  202. package/dist/__tests__/reportedProfile.test.js.map +1 -0
  203. package/dist/__tests__/restore.test.d.ts +2 -0
  204. package/dist/__tests__/restore.test.d.ts.map +1 -0
  205. package/dist/__tests__/restore.test.js +85 -0
  206. package/dist/__tests__/restore.test.js.map +1 -0
  207. package/dist/__tests__/route-latency-budget.test.d.ts +2 -0
  208. package/dist/__tests__/route-latency-budget.test.d.ts.map +1 -0
  209. package/dist/__tests__/route-latency-budget.test.js +105 -0
  210. package/dist/__tests__/route-latency-budget.test.js.map +1 -0
  211. package/dist/__tests__/runner.test.js +59 -44
  212. package/dist/__tests__/runner.test.js.map +1 -1
  213. package/dist/__tests__/session-binding-refusal-tenant.test.d.ts +2 -0
  214. package/dist/__tests__/session-binding-refusal-tenant.test.d.ts.map +1 -0
  215. package/dist/__tests__/session-binding-refusal-tenant.test.js +112 -0
  216. package/dist/__tests__/session-binding-refusal-tenant.test.js.map +1 -0
  217. package/dist/__tests__/session-close-loop.test.d.ts +2 -0
  218. package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
  219. package/dist/__tests__/session-close-loop.test.js +213 -0
  220. package/dist/__tests__/session-close-loop.test.js.map +1 -0
  221. package/dist/__tests__/session-label.test.d.ts +2 -0
  222. package/dist/__tests__/session-label.test.d.ts.map +1 -0
  223. package/dist/__tests__/session-label.test.js +46 -0
  224. package/dist/__tests__/session-label.test.js.map +1 -0
  225. package/dist/__tests__/session-list-show.test.d.ts +2 -0
  226. package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
  227. package/dist/__tests__/session-list-show.test.js +174 -0
  228. package/dist/__tests__/session-list-show.test.js.map +1 -0
  229. package/dist/__tests__/session-reset.test.d.ts +2 -0
  230. package/dist/__tests__/session-reset.test.d.ts.map +1 -0
  231. package/dist/__tests__/session-reset.test.js +138 -0
  232. package/dist/__tests__/session-reset.test.js.map +1 -0
  233. package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
  234. package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
  235. package/dist/__tests__/session-resume-backstop.test.js +107 -0
  236. package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
  237. package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
  238. package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
  239. package/dist/__tests__/session-start-key-refresh.test.js +191 -0
  240. package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
  241. package/dist/__tests__/session-state-machine.test.js +235 -10
  242. package/dist/__tests__/session-state-machine.test.js.map +1 -1
  243. package/dist/__tests__/session-switch.test.d.ts +2 -0
  244. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  245. package/dist/__tests__/session-switch.test.js +267 -0
  246. package/dist/__tests__/session-switch.test.js.map +1 -0
  247. package/dist/__tests__/session-touch.test.js +6 -1
  248. package/dist/__tests__/session-touch.test.js.map +1 -1
  249. package/dist/__tests__/sessionBinding.test.d.ts +2 -0
  250. package/dist/__tests__/sessionBinding.test.d.ts.map +1 -0
  251. package/dist/__tests__/sessionBinding.test.js +118 -0
  252. package/dist/__tests__/sessionBinding.test.js.map +1 -0
  253. package/dist/__tests__/sessionByIdLookup.test.d.ts +2 -0
  254. package/dist/__tests__/sessionByIdLookup.test.d.ts.map +1 -0
  255. package/dist/__tests__/sessionByIdLookup.test.js +63 -0
  256. package/dist/__tests__/sessionByIdLookup.test.js.map +1 -0
  257. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  258. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  259. package/dist/__tests__/skill-vocabulary.test.js +192 -0
  260. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  261. package/dist/__tests__/state.test.js +21 -1
  262. package/dist/__tests__/state.test.js.map +1 -1
  263. package/dist/__tests__/stillTrue.test.d.ts +2 -0
  264. package/dist/__tests__/stillTrue.test.d.ts.map +1 -0
  265. package/dist/__tests__/stillTrue.test.js +52 -0
  266. package/dist/__tests__/stillTrue.test.js.map +1 -0
  267. package/dist/__tests__/strip.test.js +57 -3
  268. package/dist/__tests__/strip.test.js.map +1 -1
  269. package/dist/__tests__/surfaces.test.d.ts +2 -0
  270. package/dist/__tests__/surfaces.test.d.ts.map +1 -0
  271. package/dist/__tests__/surfaces.test.js +46 -0
  272. package/dist/__tests__/surfaces.test.js.map +1 -0
  273. package/dist/__tests__/tenant-notice-write-path.test.d.ts +2 -0
  274. package/dist/__tests__/tenant-notice-write-path.test.d.ts.map +1 -0
  275. package/dist/__tests__/tenant-notice-write-path.test.js +169 -0
  276. package/dist/__tests__/tenant-notice-write-path.test.js.map +1 -0
  277. package/dist/__tests__/update-check.test.d.ts +2 -0
  278. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  279. package/dist/__tests__/update-check.test.js +215 -0
  280. package/dist/__tests__/update-check.test.js.map +1 -0
  281. package/dist/__tests__/update.test.js +443 -5
  282. package/dist/__tests__/update.test.js.map +1 -1
  283. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  284. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  285. package/dist/__tests__/upgrade-runner.test.js +54 -0
  286. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  287. package/dist/__tests__/upgrade.test.d.ts +2 -0
  288. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  289. package/dist/__tests__/upgrade.test.js +56 -0
  290. package/dist/__tests__/upgrade.test.js.map +1 -0
  291. package/dist/__tests__/verify-formatter.test.d.ts +2 -0
  292. package/dist/__tests__/verify-formatter.test.d.ts.map +1 -0
  293. package/dist/__tests__/verify-formatter.test.js +85 -0
  294. package/dist/__tests__/verify-formatter.test.js.map +1 -0
  295. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  296. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  297. package/dist/__tests__/vocabulary-leak.test.js +539 -0
  298. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  299. package/dist/__tests__/workspace.test.js +32 -12
  300. package/dist/__tests__/workspace.test.js.map +1 -1
  301. package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
  302. package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
  303. package/dist/__tests__/workspaceNotice.test.js +571 -0
  304. package/dist/__tests__/workspaceNotice.test.js.map +1 -0
  305. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  306. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  307. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  308. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  309. package/dist/commands/__tests__/quality.test.d.ts +2 -0
  310. package/dist/commands/__tests__/quality.test.d.ts.map +1 -0
  311. package/dist/commands/__tests__/quality.test.js +156 -0
  312. package/dist/commands/__tests__/quality.test.js.map +1 -0
  313. package/dist/commands/__tests__/rework.test.d.ts +2 -0
  314. package/dist/commands/__tests__/rework.test.d.ts.map +1 -0
  315. package/dist/commands/__tests__/rework.test.js +149 -0
  316. package/dist/commands/__tests__/rework.test.js.map +1 -0
  317. package/dist/commands/__tests__/tensionsList.test.d.ts +2 -0
  318. package/dist/commands/__tests__/tensionsList.test.d.ts.map +1 -0
  319. package/dist/commands/__tests__/tensionsList.test.js +63 -0
  320. package/dist/commands/__tests__/tensionsList.test.js.map +1 -0
  321. package/dist/commands/accept-policy.d.ts +10 -0
  322. package/dist/commands/accept-policy.d.ts.map +1 -0
  323. package/dist/commands/accept-policy.js +107 -0
  324. package/dist/commands/accept-policy.js.map +1 -0
  325. package/dist/commands/accept.d.ts.map +1 -1
  326. package/dist/commands/accept.js +1 -1
  327. package/dist/commands/accept.js.map +1 -1
  328. package/dist/commands/admin/cockpit.d.ts +2 -12
  329. package/dist/commands/admin/cockpit.d.ts.map +1 -1
  330. package/dist/commands/admin/cockpit.js +11 -11
  331. package/dist/commands/admin/cockpit.js.map +1 -1
  332. package/dist/commands/admin/index.d.ts +49 -0
  333. package/dist/commands/admin/index.d.ts.map +1 -1
  334. package/dist/commands/admin/index.js +145 -29
  335. package/dist/commands/admin/index.js.map +1 -1
  336. package/dist/commands/admin/index.test.d.ts +2 -0
  337. package/dist/commands/admin/index.test.d.ts.map +1 -0
  338. package/dist/commands/admin/index.test.js +84 -0
  339. package/dist/commands/admin/index.test.js.map +1 -0
  340. package/dist/commands/admin/inspect.js +1 -1
  341. package/dist/commands/admin/inspect.js.map +1 -1
  342. package/dist/commands/admin/manage.d.ts.map +1 -1
  343. package/dist/commands/admin/manage.js +188 -2
  344. package/dist/commands/admin/manage.js.map +1 -1
  345. package/dist/commands/admin/manage.test.d.ts +16 -0
  346. package/dist/commands/admin/manage.test.d.ts.map +1 -0
  347. package/dist/commands/admin/manage.test.js +171 -0
  348. package/dist/commands/admin/manage.test.js.map +1 -0
  349. package/dist/commands/admin/probe.d.ts +75 -0
  350. package/dist/commands/admin/probe.d.ts.map +1 -0
  351. package/dist/commands/admin/probe.js +224 -0
  352. package/dist/commands/admin/probe.js.map +1 -0
  353. package/dist/commands/admin/probe.test.d.ts +2 -0
  354. package/dist/commands/admin/probe.test.d.ts.map +1 -0
  355. package/dist/commands/admin/probe.test.js +193 -0
  356. package/dist/commands/admin/probe.test.js.map +1 -0
  357. package/dist/commands/admin/run.d.ts +43 -0
  358. package/dist/commands/admin/run.d.ts.map +1 -0
  359. package/dist/commands/admin/run.js +78 -0
  360. package/dist/commands/admin/run.js.map +1 -0
  361. package/dist/commands/admin/run.test.d.ts +18 -0
  362. package/dist/commands/admin/run.test.d.ts.map +1 -0
  363. package/dist/commands/admin/run.test.js +168 -0
  364. package/dist/commands/admin/run.test.js.map +1 -0
  365. package/dist/commands/admin/seed.d.ts +32 -3
  366. package/dist/commands/admin/seed.d.ts.map +1 -1
  367. package/dist/commands/admin/seed.js +313 -90
  368. package/dist/commands/admin/seed.js.map +1 -1
  369. package/dist/commands/admin/seed.test.d.ts +4 -0
  370. package/dist/commands/admin/seed.test.d.ts.map +1 -1
  371. package/dist/commands/admin/seed.test.js +28 -7
  372. package/dist/commands/admin/seed.test.js.map +1 -1
  373. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  374. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  375. package/dist/commands/admin/seedRegistryEntries.generated.js +99 -0
  376. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  377. package/dist/commands/admin/seedRegistryEntries.test.d.ts +13 -0
  378. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  379. package/dist/commands/admin/seedRegistryEntries.test.js +97 -0
  380. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  381. package/dist/commands/admin/seedRowType.d.ts +22 -0
  382. package/dist/commands/admin/seedRowType.d.ts.map +1 -0
  383. package/dist/commands/admin/seedRowType.js +2 -0
  384. package/dist/commands/admin/seedRowType.js.map +1 -0
  385. package/dist/commands/admin/seedStatusColor.d.ts +9 -0
  386. package/dist/commands/admin/seedStatusColor.d.ts.map +1 -0
  387. package/dist/commands/admin/seedStatusColor.js +18 -0
  388. package/dist/commands/admin/seedStatusColor.js.map +1 -0
  389. package/dist/commands/admin/seedStatusColor.test.d.ts +2 -0
  390. package/dist/commands/admin/seedStatusColor.test.d.ts.map +1 -0
  391. package/dist/commands/admin/seedStatusColor.test.js +25 -0
  392. package/dist/commands/admin/seedStatusColor.test.js.map +1 -0
  393. package/dist/commands/audit.d.ts +2 -2
  394. package/dist/commands/audit.d.ts.map +1 -1
  395. package/dist/commands/audit.js +52 -6
  396. package/dist/commands/audit.js.map +1 -1
  397. package/dist/commands/brief.d.ts.map +1 -1
  398. package/dist/commands/brief.js +24 -2
  399. package/dist/commands/brief.js.map +1 -1
  400. package/dist/commands/capture.d.ts +15 -8
  401. package/dist/commands/capture.d.ts.map +1 -1
  402. package/dist/commands/capture.js +243 -247
  403. package/dist/commands/capture.js.map +1 -1
  404. package/dist/commands/chain-walk.d.ts.map +1 -1
  405. package/dist/commands/chain-walk.js.map +1 -1
  406. package/dist/commands/changes.d.ts.map +1 -1
  407. package/dist/commands/changes.js.map +1 -1
  408. package/dist/commands/codex-prep.d.ts +12 -1
  409. package/dist/commands/codex-prep.d.ts.map +1 -1
  410. package/dist/commands/codex-prep.js +18 -84
  411. package/dist/commands/codex-prep.js.map +1 -1
  412. package/dist/commands/collections.d.ts.map +1 -1
  413. package/dist/commands/collections.js.map +1 -1
  414. package/dist/commands/conflicts.d.ts +40 -0
  415. package/dist/commands/conflicts.d.ts.map +1 -0
  416. package/dist/commands/conflicts.js +267 -0
  417. package/dist/commands/conflicts.js.map +1 -0
  418. package/dist/commands/conflicts.test.d.ts +2 -0
  419. package/dist/commands/conflicts.test.d.ts.map +1 -0
  420. package/dist/commands/conflicts.test.js +219 -0
  421. package/dist/commands/conflicts.test.js.map +1 -0
  422. package/dist/commands/connect-config.test.d.ts +2 -0
  423. package/dist/commands/connect-config.test.d.ts.map +1 -0
  424. package/dist/commands/connect-config.test.js +44 -0
  425. package/dist/commands/connect-config.test.js.map +1 -0
  426. package/dist/commands/connect-context.d.ts +55 -0
  427. package/dist/commands/connect-context.d.ts.map +1 -0
  428. package/dist/commands/connect-context.js +78 -0
  429. package/dist/commands/connect-context.js.map +1 -0
  430. package/dist/commands/connect-context.test.d.ts +2 -0
  431. package/dist/commands/connect-context.test.d.ts.map +1 -0
  432. package/dist/commands/connect-context.test.js +148 -0
  433. package/dist/commands/connect-context.test.js.map +1 -0
  434. package/dist/commands/connect-handoff.d.ts +51 -0
  435. package/dist/commands/connect-handoff.d.ts.map +1 -0
  436. package/dist/commands/connect-handoff.js +70 -0
  437. package/dist/commands/connect-handoff.js.map +1 -0
  438. package/dist/commands/connect-integration.test.js +58 -35
  439. package/dist/commands/connect-integration.test.js.map +1 -1
  440. package/dist/commands/connect-legacy-migration.test.d.ts +2 -0
  441. package/dist/commands/connect-legacy-migration.test.d.ts.map +1 -0
  442. package/dist/commands/connect-legacy-migration.test.js +109 -0
  443. package/dist/commands/connect-legacy-migration.test.js.map +1 -0
  444. package/dist/commands/connect-screens.d.ts +17 -4
  445. package/dist/commands/connect-screens.d.ts.map +1 -1
  446. package/dist/commands/connect-screens.js +83 -19
  447. package/dist/commands/connect-screens.js.map +1 -1
  448. package/dist/commands/connect.d.ts +27 -6
  449. package/dist/commands/connect.d.ts.map +1 -1
  450. package/dist/commands/connect.js +252 -115
  451. package/dist/commands/connect.js.map +1 -1
  452. package/dist/commands/connect.test.js +348 -7
  453. package/dist/commands/connect.test.js.map +1 -1
  454. package/dist/commands/constellation.d.ts.map +1 -1
  455. package/dist/commands/constellation.js.map +1 -1
  456. package/dist/commands/context.d.ts.map +1 -1
  457. package/dist/commands/context.js.map +1 -1
  458. package/dist/commands/cross-cut.d.ts.map +1 -1
  459. package/dist/commands/cross-cut.js.map +1 -1
  460. package/dist/commands/digest.d.ts +17 -0
  461. package/dist/commands/digest.d.ts.map +1 -0
  462. package/dist/commands/digest.js +58 -0
  463. package/dist/commands/digest.js.map +1 -0
  464. package/dist/commands/digest.test.d.ts +2 -0
  465. package/dist/commands/digest.test.d.ts.map +1 -0
  466. package/dist/commands/digest.test.js +36 -0
  467. package/dist/commands/digest.test.js.map +1 -0
  468. package/dist/commands/direction.d.ts +10 -0
  469. package/dist/commands/direction.d.ts.map +1 -0
  470. package/dist/commands/direction.js +79 -0
  471. package/dist/commands/direction.js.map +1 -0
  472. package/dist/commands/doctor.d.ts.map +1 -1
  473. package/dist/commands/doctor.js +173 -38
  474. package/dist/commands/doctor.js.map +1 -1
  475. package/dist/commands/doctor.test.js +352 -6
  476. package/dist/commands/doctor.test.js.map +1 -1
  477. package/dist/commands/entryAccept.d.ts +24 -0
  478. package/dist/commands/entryAccept.d.ts.map +1 -0
  479. package/dist/commands/entryAccept.js +282 -0
  480. package/dist/commands/entryAccept.js.map +1 -0
  481. package/dist/commands/entryArchive.d.ts +8 -0
  482. package/dist/commands/entryArchive.d.ts.map +1 -0
  483. package/dist/commands/entryArchive.js +37 -0
  484. package/dist/commands/entryArchive.js.map +1 -0
  485. package/dist/commands/entryOwn.d.ts +5 -0
  486. package/dist/commands/entryOwn.d.ts.map +1 -0
  487. package/dist/commands/entryOwn.js +17 -0
  488. package/dist/commands/entryOwn.js.map +1 -0
  489. package/dist/commands/entryPreflight.d.ts +8 -0
  490. package/dist/commands/entryPreflight.d.ts.map +1 -0
  491. package/dist/commands/entryPreflight.js +48 -0
  492. package/dist/commands/entryPreflight.js.map +1 -0
  493. package/dist/commands/feedback.d.ts +36 -0
  494. package/dist/commands/feedback.d.ts.map +1 -0
  495. package/dist/commands/feedback.js +193 -0
  496. package/dist/commands/feedback.js.map +1 -0
  497. package/dist/commands/feedback.test.d.ts +2 -0
  498. package/dist/commands/feedback.test.d.ts.map +1 -0
  499. package/dist/commands/feedback.test.js +125 -0
  500. package/dist/commands/feedback.test.js.map +1 -0
  501. package/dist/commands/fields.d.ts.map +1 -1
  502. package/dist/commands/fields.js +1 -1
  503. package/dist/commands/fields.js.map +1 -1
  504. package/dist/commands/files.d.ts +26 -0
  505. package/dist/commands/files.d.ts.map +1 -0
  506. package/dist/commands/files.js +160 -0
  507. package/dist/commands/files.js.map +1 -0
  508. package/dist/commands/files.test.d.ts +2 -0
  509. package/dist/commands/files.test.d.ts.map +1 -0
  510. package/dist/commands/files.test.js +278 -0
  511. package/dist/commands/files.test.js.map +1 -0
  512. package/dist/commands/handshake.d.ts +59 -7
  513. package/dist/commands/handshake.d.ts.map +1 -1
  514. package/dist/commands/handshake.js +856 -102
  515. package/dist/commands/handshake.js.map +1 -1
  516. package/dist/commands/handshakeCursorSkillCleanup.d.ts +36 -0
  517. package/dist/commands/handshakeCursorSkillCleanup.d.ts.map +1 -0
  518. package/dist/commands/handshakeCursorSkillCleanup.js +110 -0
  519. package/dist/commands/handshakeCursorSkillCleanup.js.map +1 -0
  520. package/dist/commands/handshakeDriftClassification.d.ts +33 -0
  521. package/dist/commands/handshakeDriftClassification.d.ts.map +1 -0
  522. package/dist/commands/handshakeDriftClassification.js +62 -0
  523. package/dist/commands/handshakeDriftClassification.js.map +1 -0
  524. package/dist/commands/history.d.ts +30 -0
  525. package/dist/commands/history.d.ts.map +1 -0
  526. package/dist/commands/history.js +62 -0
  527. package/dist/commands/history.js.map +1 -0
  528. package/dist/commands/history.test.d.ts +2 -0
  529. package/dist/commands/history.test.d.ts.map +1 -0
  530. package/dist/commands/history.test.js +106 -0
  531. package/dist/commands/history.test.js.map +1 -0
  532. package/dist/commands/ingest.d.ts.map +1 -1
  533. package/dist/commands/ingest.js +9 -0
  534. package/dist/commands/ingest.js.map +1 -1
  535. package/dist/commands/init.d.ts +1 -1
  536. package/dist/commands/init.d.ts.map +1 -1
  537. package/dist/commands/init.js +22 -13
  538. package/dist/commands/init.js.map +1 -1
  539. package/dist/commands/method.d.ts +97 -0
  540. package/dist/commands/method.d.ts.map +1 -0
  541. package/dist/commands/method.js +773 -0
  542. package/dist/commands/method.js.map +1 -0
  543. package/dist/commands/organisation.d.ts +17 -0
  544. package/dist/commands/organisation.d.ts.map +1 -0
  545. package/dist/commands/organisation.js +201 -0
  546. package/dist/commands/organisation.js.map +1 -0
  547. package/dist/commands/organisation.test.d.ts +2 -0
  548. package/dist/commands/organisation.test.d.ts.map +1 -0
  549. package/dist/commands/organisation.test.js +204 -0
  550. package/dist/commands/organisation.test.js.map +1 -0
  551. package/dist/commands/organisationHierarchy.d.ts +8 -0
  552. package/dist/commands/organisationHierarchy.d.ts.map +1 -0
  553. package/dist/commands/organisationHierarchy.js +75 -0
  554. package/dist/commands/organisationHierarchy.js.map +1 -0
  555. package/dist/commands/organisationHierarchy.test.d.ts +2 -0
  556. package/dist/commands/organisationHierarchy.test.d.ts.map +1 -0
  557. package/dist/commands/organisationHierarchy.test.js +72 -0
  558. package/dist/commands/organisationHierarchy.test.js.map +1 -0
  559. package/dist/commands/organisationWrite.d.ts +18 -0
  560. package/dist/commands/organisationWrite.d.ts.map +1 -0
  561. package/dist/commands/organisationWrite.js +68 -0
  562. package/dist/commands/organisationWrite.js.map +1 -0
  563. package/dist/commands/orient.d.ts +118 -6
  564. package/dist/commands/orient.d.ts.map +1 -1
  565. package/dist/commands/orient.js +225 -12
  566. package/dist/commands/orient.js.map +1 -1
  567. package/dist/commands/outcome.d.ts +92 -0
  568. package/dist/commands/outcome.d.ts.map +1 -0
  569. package/dist/commands/outcome.js +203 -0
  570. package/dist/commands/outcome.js.map +1 -0
  571. package/dist/commands/outcome.test.d.ts +2 -0
  572. package/dist/commands/outcome.test.d.ts.map +1 -0
  573. package/dist/commands/outcome.test.js +308 -0
  574. package/dist/commands/outcome.test.js.map +1 -0
  575. package/dist/commands/profile.d.ts +34 -2
  576. package/dist/commands/profile.d.ts.map +1 -1
  577. package/dist/commands/profile.js +294 -41
  578. package/dist/commands/profile.js.map +1 -1
  579. package/dist/commands/proof-run.d.ts +51 -0
  580. package/dist/commands/proof-run.d.ts.map +1 -0
  581. package/dist/commands/proof-run.js +209 -0
  582. package/dist/commands/proof-run.js.map +1 -0
  583. package/dist/commands/proposals.d.ts.map +1 -1
  584. package/dist/commands/proposals.js.map +1 -1
  585. package/dist/commands/quality.d.ts +16 -0
  586. package/dist/commands/quality.d.ts.map +1 -0
  587. package/dist/commands/quality.js +29 -0
  588. package/dist/commands/quality.js.map +1 -0
  589. package/dist/commands/questions.d.ts +23 -0
  590. package/dist/commands/questions.d.ts.map +1 -0
  591. package/dist/commands/questions.js +238 -0
  592. package/dist/commands/questions.js.map +1 -0
  593. package/dist/commands/questions.test.d.ts +2 -0
  594. package/dist/commands/questions.test.d.ts.map +1 -0
  595. package/dist/commands/questions.test.js +159 -0
  596. package/dist/commands/questions.test.js.map +1 -0
  597. package/dist/commands/reject.d.ts.map +1 -1
  598. package/dist/commands/reject.js +3 -2
  599. package/dist/commands/reject.js.map +1 -1
  600. package/dist/commands/relate.d.ts +1 -0
  601. package/dist/commands/relate.d.ts.map +1 -1
  602. package/dist/commands/relate.js +102 -3
  603. package/dist/commands/relate.js.map +1 -1
  604. package/dist/commands/restore.d.ts +2 -0
  605. package/dist/commands/restore.d.ts.map +1 -0
  606. package/dist/commands/restore.js +83 -0
  607. package/dist/commands/restore.js.map +1 -0
  608. package/dist/commands/rework.d.ts +24 -0
  609. package/dist/commands/rework.d.ts.map +1 -0
  610. package/dist/commands/rework.js +97 -0
  611. package/dist/commands/rework.js.map +1 -0
  612. package/dist/commands/role.d.ts +49 -0
  613. package/dist/commands/role.d.ts.map +1 -0
  614. package/dist/commands/role.js +126 -0
  615. package/dist/commands/role.js.map +1 -0
  616. package/dist/commands/role.test.d.ts +2 -0
  617. package/dist/commands/role.test.d.ts.map +1 -0
  618. package/dist/commands/role.test.js +195 -0
  619. package/dist/commands/role.test.js.map +1 -0
  620. package/dist/commands/scoreboard.d.ts +28 -0
  621. package/dist/commands/scoreboard.d.ts.map +1 -0
  622. package/dist/commands/scoreboard.js +40 -0
  623. package/dist/commands/scoreboard.js.map +1 -0
  624. package/dist/commands/search.d.ts.map +1 -1
  625. package/dist/commands/search.js.map +1 -1
  626. package/dist/commands/session.d.ts +60 -7
  627. package/dist/commands/session.d.ts.map +1 -1
  628. package/dist/commands/session.js +404 -58
  629. package/dist/commands/session.js.map +1 -1
  630. package/dist/commands/shape.d.ts +16 -0
  631. package/dist/commands/shape.d.ts.map +1 -0
  632. package/dist/commands/shape.js +149 -0
  633. package/dist/commands/shape.js.map +1 -0
  634. package/dist/commands/shape.test.d.ts +2 -0
  635. package/dist/commands/shape.test.d.ts.map +1 -0
  636. package/dist/commands/shape.test.js +148 -0
  637. package/dist/commands/shape.test.js.map +1 -0
  638. package/dist/commands/status.d.ts +7 -0
  639. package/dist/commands/status.d.ts.map +1 -0
  640. package/dist/commands/status.js +102 -0
  641. package/dist/commands/status.js.map +1 -0
  642. package/dist/commands/status.test.d.ts +2 -0
  643. package/dist/commands/status.test.d.ts.map +1 -0
  644. package/dist/commands/status.test.js +75 -0
  645. package/dist/commands/status.test.js.map +1 -0
  646. package/dist/commands/stillTrue.d.ts +14 -0
  647. package/dist/commands/stillTrue.d.ts.map +1 -0
  648. package/dist/commands/stillTrue.js +48 -0
  649. package/dist/commands/stillTrue.js.map +1 -0
  650. package/dist/commands/tensionsList.d.ts +5 -0
  651. package/dist/commands/tensionsList.d.ts.map +1 -0
  652. package/dist/commands/tensionsList.js +27 -0
  653. package/dist/commands/tensionsList.js.map +1 -0
  654. package/dist/commands/update.d.ts +20 -0
  655. package/dist/commands/update.d.ts.map +1 -1
  656. package/dist/commands/update.js +136 -35
  657. package/dist/commands/update.js.map +1 -1
  658. package/dist/commands/upgrade.d.ts +5 -0
  659. package/dist/commands/upgrade.d.ts.map +1 -0
  660. package/dist/commands/upgrade.js +110 -0
  661. package/dist/commands/upgrade.js.map +1 -0
  662. package/dist/commands/usage.d.ts.map +1 -1
  663. package/dist/commands/usage.js +0 -18
  664. package/dist/commands/usage.js.map +1 -1
  665. package/dist/commands/verify.d.ts.map +1 -1
  666. package/dist/commands/verify.js +7 -1
  667. package/dist/commands/verify.js.map +1 -1
  668. package/dist/commands/welcome.d.ts.map +1 -1
  669. package/dist/commands/welcome.js +7 -4
  670. package/dist/commands/welcome.js.map +1 -1
  671. package/dist/commands/whoami.d.ts +20 -0
  672. package/dist/commands/whoami.d.ts.map +1 -0
  673. package/dist/commands/whoami.js +126 -0
  674. package/dist/commands/whoami.js.map +1 -0
  675. package/dist/commands/whoami.test.d.ts +2 -0
  676. package/dist/commands/whoami.test.d.ts.map +1 -0
  677. package/dist/commands/whoami.test.js +130 -0
  678. package/dist/commands/whoami.test.js.map +1 -0
  679. package/dist/commands/workspace.d.ts +18 -2
  680. package/dist/commands/workspace.d.ts.map +1 -1
  681. package/dist/commands/workspace.js +5 -2
  682. package/dist/commands/workspace.js.map +1 -1
  683. package/dist/formatters/__tests__/orient-possibleConflict.test.d.ts +2 -0
  684. package/dist/formatters/__tests__/orient-possibleConflict.test.d.ts.map +1 -0
  685. package/dist/formatters/__tests__/orient-possibleConflict.test.js +68 -0
  686. package/dist/formatters/__tests__/orient-possibleConflict.test.js.map +1 -0
  687. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  688. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  689. package/dist/formatters/__tests__/orient-provenance.test.js +548 -0
  690. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  691. package/dist/formatters/__tests__/orient-ruleLists.test.d.ts +2 -0
  692. package/dist/formatters/__tests__/orient-ruleLists.test.d.ts.map +1 -0
  693. package/dist/formatters/__tests__/orient-ruleLists.test.js +78 -0
  694. package/dist/formatters/__tests__/orient-ruleLists.test.js.map +1 -0
  695. package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
  696. package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
  697. package/dist/formatters/__tests__/session-list-show.test.js +195 -0
  698. package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
  699. package/dist/formatters/__tests__/session.test.d.ts +2 -0
  700. package/dist/formatters/__tests__/session.test.d.ts.map +1 -0
  701. package/dist/formatters/__tests__/session.test.js +192 -0
  702. package/dist/formatters/__tests__/session.test.js.map +1 -0
  703. package/dist/formatters/__tests__/tensionsList.test.d.ts +2 -0
  704. package/dist/formatters/__tests__/tensionsList.test.d.ts.map +1 -0
  705. package/dist/formatters/__tests__/tensionsList.test.js +30 -0
  706. package/dist/formatters/__tests__/tensionsList.test.js.map +1 -0
  707. package/dist/formatters/audit.d.ts +7 -1
  708. package/dist/formatters/audit.d.ts.map +1 -1
  709. package/dist/formatters/audit.js +2 -2
  710. package/dist/formatters/audit.js.map +1 -1
  711. package/dist/formatters/brief.d.ts +6 -15
  712. package/dist/formatters/brief.d.ts.map +1 -1
  713. package/dist/formatters/brief.js +16 -14
  714. package/dist/formatters/brief.js.map +1 -1
  715. package/dist/formatters/brief.test.d.ts +2 -0
  716. package/dist/formatters/brief.test.d.ts.map +1 -0
  717. package/dist/formatters/brief.test.js +21 -0
  718. package/dist/formatters/brief.test.js.map +1 -0
  719. package/dist/formatters/capture.d.ts +13 -0
  720. package/dist/formatters/capture.d.ts.map +1 -1
  721. package/dist/formatters/capture.js +20 -1
  722. package/dist/formatters/capture.js.map +1 -1
  723. package/dist/formatters/coaching.d.ts +55 -0
  724. package/dist/formatters/coaching.d.ts.map +1 -0
  725. package/dist/formatters/coaching.js +46 -0
  726. package/dist/formatters/coaching.js.map +1 -0
  727. package/dist/formatters/conflicts.d.ts +69 -0
  728. package/dist/formatters/conflicts.d.ts.map +1 -0
  729. package/dist/formatters/conflicts.js +87 -0
  730. package/dist/formatters/conflicts.js.map +1 -0
  731. package/dist/formatters/conflicts.test.d.ts +2 -0
  732. package/dist/formatters/conflicts.test.d.ts.map +1 -0
  733. package/dist/formatters/conflicts.test.js +136 -0
  734. package/dist/formatters/conflicts.test.js.map +1 -0
  735. package/dist/formatters/context.d.ts +1 -1
  736. package/dist/formatters/context.d.ts.map +1 -1
  737. package/dist/formatters/context.js.map +1 -1
  738. package/dist/formatters/digest.d.ts +13 -0
  739. package/dist/formatters/digest.d.ts.map +1 -0
  740. package/dist/formatters/digest.js +98 -0
  741. package/dist/formatters/digest.js.map +1 -0
  742. package/dist/formatters/digest.test.d.ts +2 -0
  743. package/dist/formatters/digest.test.d.ts.map +1 -0
  744. package/dist/formatters/digest.test.js +166 -0
  745. package/dist/formatters/digest.test.js.map +1 -0
  746. package/dist/formatters/direction.d.ts +48 -0
  747. package/dist/formatters/direction.d.ts.map +1 -0
  748. package/dist/formatters/direction.js +75 -0
  749. package/dist/formatters/direction.js.map +1 -0
  750. package/dist/formatters/direction.test.d.ts +2 -0
  751. package/dist/formatters/direction.test.d.ts.map +1 -0
  752. package/dist/formatters/direction.test.js +70 -0
  753. package/dist/formatters/direction.test.js.map +1 -0
  754. package/dist/formatters/entry.d.ts +61 -0
  755. package/dist/formatters/entry.d.ts.map +1 -1
  756. package/dist/formatters/entry.js +99 -11
  757. package/dist/formatters/entry.js.map +1 -1
  758. package/dist/formatters/entryAccept.d.ts +79 -0
  759. package/dist/formatters/entryAccept.d.ts.map +1 -0
  760. package/dist/formatters/entryAccept.js +80 -0
  761. package/dist/formatters/entryAccept.js.map +1 -0
  762. package/dist/formatters/feedback.d.ts +56 -0
  763. package/dist/formatters/feedback.d.ts.map +1 -0
  764. package/dist/formatters/feedback.js +89 -0
  765. package/dist/formatters/feedback.js.map +1 -0
  766. package/dist/formatters/feedback.test.d.ts +2 -0
  767. package/dist/formatters/feedback.test.d.ts.map +1 -0
  768. package/dist/formatters/feedback.test.js +112 -0
  769. package/dist/formatters/feedback.test.js.map +1 -0
  770. package/dist/formatters/fields.d.ts +7 -0
  771. package/dist/formatters/fields.d.ts.map +1 -1
  772. package/dist/formatters/fields.js +9 -0
  773. package/dist/formatters/fields.js.map +1 -1
  774. package/dist/formatters/fields.test.d.ts +2 -0
  775. package/dist/formatters/fields.test.d.ts.map +1 -0
  776. package/dist/formatters/fields.test.js +42 -0
  777. package/dist/formatters/fields.test.js.map +1 -0
  778. package/dist/formatters/handshake.d.ts +61 -0
  779. package/dist/formatters/handshake.d.ts.map +1 -1
  780. package/dist/formatters/handshake.js +160 -3
  781. package/dist/formatters/handshake.js.map +1 -1
  782. package/dist/formatters/orient.coherencyCheckTag.test.d.ts +2 -0
  783. package/dist/formatters/orient.coherencyCheckTag.test.d.ts.map +1 -0
  784. package/dist/formatters/orient.coherencyCheckTag.test.js +22 -0
  785. package/dist/formatters/orient.coherencyCheckTag.test.js.map +1 -0
  786. package/dist/formatters/orient.d.ts +235 -12
  787. package/dist/formatters/orient.d.ts.map +1 -1
  788. package/dist/formatters/orient.js +260 -46
  789. package/dist/formatters/orient.js.map +1 -1
  790. package/dist/formatters/orient.rcrtMiss.test.d.ts +2 -0
  791. package/dist/formatters/orient.rcrtMiss.test.d.ts.map +1 -0
  792. package/dist/formatters/orient.rcrtMiss.test.js +82 -0
  793. package/dist/formatters/orient.rcrtMiss.test.js.map +1 -0
  794. package/dist/formatters/orient.rituals.test.d.ts +2 -0
  795. package/dist/formatters/orient.rituals.test.d.ts.map +1 -0
  796. package/dist/formatters/orient.rituals.test.js +82 -0
  797. package/dist/formatters/orient.rituals.test.js.map +1 -0
  798. package/dist/formatters/orient.shapeAdvisorySummary.test.d.ts +2 -0
  799. package/dist/formatters/orient.shapeAdvisorySummary.test.d.ts.map +1 -0
  800. package/dist/formatters/orient.shapeAdvisorySummary.test.js +62 -0
  801. package/dist/formatters/orient.shapeAdvisorySummary.test.js.map +1 -0
  802. package/dist/formatters/orientDegradation.d.ts +38 -0
  803. package/dist/formatters/orientDegradation.d.ts.map +1 -0
  804. package/dist/formatters/orientDegradation.js +50 -0
  805. package/dist/formatters/orientDegradation.js.map +1 -0
  806. package/dist/formatters/orientDegradation.test.d.ts +2 -0
  807. package/dist/formatters/orientDegradation.test.d.ts.map +1 -0
  808. package/dist/formatters/orientDegradation.test.js +28 -0
  809. package/dist/formatters/orientDegradation.test.js.map +1 -0
  810. package/dist/formatters/orientDirection.d.ts +107 -0
  811. package/dist/formatters/orientDirection.d.ts.map +1 -0
  812. package/dist/formatters/orientDirection.js +177 -0
  813. package/dist/formatters/orientDirection.js.map +1 -0
  814. package/dist/formatters/orientDirection.test.d.ts +2 -0
  815. package/dist/formatters/orientDirection.test.d.ts.map +1 -0
  816. package/dist/formatters/orientDirection.test.js +310 -0
  817. package/dist/formatters/orientDirection.test.js.map +1 -0
  818. package/dist/formatters/orientRetrievalMiss.d.ts +22 -0
  819. package/dist/formatters/orientRetrievalMiss.d.ts.map +1 -0
  820. package/dist/formatters/orientRetrievalMiss.js +17 -0
  821. package/dist/formatters/orientRetrievalMiss.js.map +1 -0
  822. package/dist/formatters/proposals.js +2 -2
  823. package/dist/formatters/proposals.js.map +1 -1
  824. package/dist/formatters/questions.d.ts +71 -0
  825. package/dist/formatters/questions.d.ts.map +1 -0
  826. package/dist/formatters/questions.js +117 -0
  827. package/dist/formatters/questions.js.map +1 -0
  828. package/dist/formatters/questions.test.d.ts +2 -0
  829. package/dist/formatters/questions.test.d.ts.map +1 -0
  830. package/dist/formatters/questions.test.js +147 -0
  831. package/dist/formatters/questions.test.js.map +1 -0
  832. package/dist/formatters/relate.d.ts +14 -1
  833. package/dist/formatters/relate.d.ts.map +1 -1
  834. package/dist/formatters/relate.js +12 -3
  835. package/dist/formatters/relate.js.map +1 -1
  836. package/dist/formatters/relate.test.d.ts +2 -0
  837. package/dist/formatters/relate.test.d.ts.map +1 -0
  838. package/dist/formatters/relate.test.js +81 -0
  839. package/dist/formatters/relate.test.js.map +1 -0
  840. package/dist/formatters/scoreboard.d.ts +11 -0
  841. package/dist/formatters/scoreboard.d.ts.map +1 -0
  842. package/dist/formatters/scoreboard.js +164 -0
  843. package/dist/formatters/scoreboard.js.map +1 -0
  844. package/dist/formatters/scoreboard.test.d.ts +2 -0
  845. package/dist/formatters/scoreboard.test.d.ts.map +1 -0
  846. package/dist/formatters/scoreboard.test.js +303 -0
  847. package/dist/formatters/scoreboard.test.js.map +1 -0
  848. package/dist/formatters/search.d.ts.map +1 -1
  849. package/dist/formatters/search.js +17 -1
  850. package/dist/formatters/search.js.map +1 -1
  851. package/dist/formatters/search.test.d.ts +2 -0
  852. package/dist/formatters/search.test.d.ts.map +1 -0
  853. package/dist/formatters/search.test.js +46 -0
  854. package/dist/formatters/search.test.js.map +1 -0
  855. package/dist/formatters/session-feedback.test.d.ts +2 -0
  856. package/dist/formatters/session-feedback.test.d.ts.map +1 -0
  857. package/dist/formatters/session-feedback.test.js +83 -0
  858. package/dist/formatters/session-feedback.test.js.map +1 -0
  859. package/dist/formatters/session.d.ts +127 -5
  860. package/dist/formatters/session.d.ts.map +1 -1
  861. package/dist/formatters/session.js +313 -12
  862. package/dist/formatters/session.js.map +1 -1
  863. package/dist/formatters/shape.d.ts +54 -0
  864. package/dist/formatters/shape.d.ts.map +1 -0
  865. package/dist/formatters/shape.js +97 -0
  866. package/dist/formatters/shape.js.map +1 -0
  867. package/dist/formatters/shape.test.d.ts +2 -0
  868. package/dist/formatters/shape.test.d.ts.map +1 -0
  869. package/dist/formatters/shape.test.js +80 -0
  870. package/dist/formatters/shape.test.js.map +1 -0
  871. package/dist/formatters/spineCheck.d.ts +14 -0
  872. package/dist/formatters/spineCheck.d.ts.map +1 -0
  873. package/dist/formatters/spineCheck.js +113 -0
  874. package/dist/formatters/spineCheck.js.map +1 -0
  875. package/dist/formatters/spineCheck.test.d.ts +2 -0
  876. package/dist/formatters/spineCheck.test.d.ts.map +1 -0
  877. package/dist/formatters/spineCheck.test.js +76 -0
  878. package/dist/formatters/spineCheck.test.js.map +1 -0
  879. package/dist/formatters/tensionsList.d.ts +17 -0
  880. package/dist/formatters/tensionsList.d.ts.map +1 -0
  881. package/dist/formatters/tensionsList.js +33 -0
  882. package/dist/formatters/tensionsList.js.map +1 -0
  883. package/dist/formatters/update.d.ts +23 -0
  884. package/dist/formatters/update.d.ts.map +1 -1
  885. package/dist/formatters/update.js +46 -6
  886. package/dist/formatters/update.js.map +1 -1
  887. package/dist/formatters/update.test.d.ts +2 -0
  888. package/dist/formatters/update.test.d.ts.map +1 -0
  889. package/dist/formatters/update.test.js +103 -0
  890. package/dist/formatters/update.test.js.map +1 -0
  891. package/dist/formatters/verify.d.ts +12 -4
  892. package/dist/formatters/verify.d.ts.map +1 -1
  893. package/dist/formatters/verify.js +20 -2
  894. package/dist/formatters/verify.js.map +1 -1
  895. package/dist/generated/healthGapKinds.generated.d.ts +12 -0
  896. package/dist/generated/healthGapKinds.generated.d.ts.map +1 -0
  897. package/dist/generated/healthGapKinds.generated.js +21 -0
  898. package/dist/generated/healthGapKinds.generated.js.map +1 -0
  899. package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts +12 -0
  900. package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts.map +1 -0
  901. package/dist/generated/organisationalAuthorityRefusalCodes.generated.js +11 -0
  902. package/dist/generated/organisationalAuthorityRefusalCodes.generated.js.map +1 -0
  903. package/dist/generated/relationTypes.generated.d.ts +12 -0
  904. package/dist/generated/relationTypes.generated.d.ts.map +1 -0
  905. package/dist/generated/relationTypes.generated.js +11 -0
  906. package/dist/generated/relationTypes.generated.js.map +1 -0
  907. package/dist/generated/routeLatencyBudget.generated.d.ts +56 -0
  908. package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -0
  909. package/dist/generated/routeLatencyBudget.generated.js +295 -0
  910. package/dist/generated/routeLatencyBudget.generated.js.map +1 -0
  911. package/dist/generated/sourceSurfaces.generated.d.ts +12 -0
  912. package/dist/generated/sourceSurfaces.generated.d.ts.map +1 -0
  913. package/dist/generated/sourceSurfaces.generated.js +11 -0
  914. package/dist/generated/sourceSurfaces.generated.js.map +1 -0
  915. package/dist/generators/adapters.d.ts +33 -4
  916. package/dist/generators/adapters.d.ts.map +1 -1
  917. package/dist/generators/adapters.js +72 -27
  918. package/dist/generators/adapters.js.map +1 -1
  919. package/dist/generators/adapters.test.js +0 -2
  920. package/dist/generators/adapters.test.js.map +1 -1
  921. package/dist/generators/archetypes.d.ts.map +1 -1
  922. package/dist/generators/archetypes.js +46 -9
  923. package/dist/generators/archetypes.js.map +1 -1
  924. package/dist/generators/archetypes.test.js +35 -0
  925. package/dist/generators/archetypes.test.js.map +1 -1
  926. package/dist/generators/boundary-manifest.d.ts +29 -0
  927. package/dist/generators/boundary-manifest.d.ts.map +1 -0
  928. package/dist/generators/boundary-manifest.js +183 -0
  929. package/dist/generators/boundary-manifest.js.map +1 -0
  930. package/dist/generators/boundary-manifest.real-file.test.d.ts +2 -0
  931. package/dist/generators/boundary-manifest.real-file.test.d.ts.map +1 -0
  932. package/dist/generators/boundary-manifest.real-file.test.js +70 -0
  933. package/dist/generators/boundary-manifest.real-file.test.js.map +1 -0
  934. package/dist/generators/boundary-manifest.test.d.ts +2 -0
  935. package/dist/generators/boundary-manifest.test.d.ts.map +1 -0
  936. package/dist/generators/boundary-manifest.test.js +91 -0
  937. package/dist/generators/boundary-manifest.test.js.map +1 -0
  938. package/dist/generators/chain-classifier-kernel-client-drift.test.d.ts +2 -0
  939. package/dist/generators/chain-classifier-kernel-client-drift.test.d.ts.map +1 -0
  940. package/dist/generators/chain-classifier-kernel-client-drift.test.js +41 -0
  941. package/dist/generators/chain-classifier-kernel-client-drift.test.js.map +1 -0
  942. package/dist/generators/chain-classifier.d.ts +67 -14
  943. package/dist/generators/chain-classifier.d.ts.map +1 -1
  944. package/dist/generators/chain-classifier.js +46 -174
  945. package/dist/generators/chain-classifier.js.map +1 -1
  946. package/dist/generators/chain-rules.d.ts.map +1 -1
  947. package/dist/generators/chain-rules.js +115 -3
  948. package/dist/generators/chain-rules.js.map +1 -1
  949. package/dist/generators/chain-rules.test.js +271 -2
  950. package/dist/generators/chain-rules.test.js.map +1 -1
  951. package/dist/generators/context-md.js +11 -11
  952. package/dist/generators/context-md.js.map +1 -1
  953. package/dist/generators/manifest.d.ts +115 -0
  954. package/dist/generators/manifest.d.ts.map +1 -0
  955. package/dist/generators/manifest.js +277 -0
  956. package/dist/generators/manifest.js.map +1 -0
  957. package/dist/generators/noProjectionAssets.d.ts +15 -0
  958. package/dist/generators/noProjectionAssets.d.ts.map +1 -0
  959. package/dist/generators/noProjectionAssets.js +6 -0
  960. package/dist/generators/noProjectionAssets.js.map +1 -0
  961. package/dist/generators/portable-knowledge.d.ts +24 -12
  962. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  963. package/dist/generators/portable-knowledge.js +96 -56
  964. package/dist/generators/portable-knowledge.js.map +1 -1
  965. package/dist/generators/portable-knowledge.test.js +46 -81
  966. package/dist/generators/portable-knowledge.test.js.map +1 -1
  967. package/dist/generators/region-projections.d.ts +17 -0
  968. package/dist/generators/region-projections.d.ts.map +1 -0
  969. package/dist/generators/region-projections.js +48 -0
  970. package/dist/generators/region-projections.js.map +1 -0
  971. package/dist/generators/region-projections.test.d.ts +2 -0
  972. package/dist/generators/region-projections.test.d.ts.map +1 -0
  973. package/dist/generators/region-projections.test.js +63 -0
  974. package/dist/generators/region-projections.test.js.map +1 -0
  975. package/dist/generators/region.d.ts +24 -0
  976. package/dist/generators/region.d.ts.map +1 -0
  977. package/dist/generators/region.js +87 -0
  978. package/dist/generators/region.js.map +1 -0
  979. package/dist/generators/region.test.d.ts +2 -0
  980. package/dist/generators/region.test.d.ts.map +1 -0
  981. package/dist/generators/region.test.js +126 -0
  982. package/dist/generators/region.test.js.map +1 -0
  983. package/dist/generators/surface-profiles.d.ts +1 -2
  984. package/dist/generators/surface-profiles.d.ts.map +1 -1
  985. package/dist/generators/surface-profiles.js.map +1 -1
  986. package/dist/handleCliError.d.ts +2 -0
  987. package/dist/handleCliError.d.ts.map +1 -0
  988. package/dist/handleCliError.js +56 -0
  989. package/dist/handleCliError.js.map +1 -0
  990. package/dist/index.d.ts +0 -5
  991. package/dist/index.d.ts.map +1 -1
  992. package/dist/index.js +260 -258
  993. package/dist/index.js.map +1 -1
  994. package/dist/lib/__tests__/legalRelationTypes.test.d.ts +2 -0
  995. package/dist/lib/__tests__/legalRelationTypes.test.d.ts.map +1 -0
  996. package/dist/lib/__tests__/legalRelationTypes.test.js +98 -0
  997. package/dist/lib/__tests__/legalRelationTypes.test.js.map +1 -0
  998. package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
  999. package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
  1000. package/dist/lib/__tests__/parseFields.test.js +40 -0
  1001. package/dist/lib/__tests__/parseFields.test.js.map +1 -0
  1002. package/dist/lib/activation.d.ts.map +1 -1
  1003. package/dist/lib/activation.js +7 -3
  1004. package/dist/lib/activation.js.map +1 -1
  1005. package/dist/lib/activation.test.js +3 -3
  1006. package/dist/lib/activation.test.js.map +1 -1
  1007. package/dist/lib/adminConfig.d.ts +48 -0
  1008. package/dist/lib/adminConfig.d.ts.map +1 -0
  1009. package/dist/lib/adminConfig.js +130 -0
  1010. package/dist/lib/adminConfig.js.map +1 -0
  1011. package/dist/lib/canonicalRefs.d.ts +160 -0
  1012. package/dist/lib/canonicalRefs.d.ts.map +1 -0
  1013. package/dist/lib/canonicalRefs.js +169 -0
  1014. package/dist/lib/canonicalRefs.js.map +1 -0
  1015. package/dist/lib/captureGrounding.d.ts +43 -0
  1016. package/dist/lib/captureGrounding.d.ts.map +1 -0
  1017. package/dist/lib/captureGrounding.js +99 -0
  1018. package/dist/lib/captureGrounding.js.map +1 -0
  1019. package/dist/lib/captureGrounding.test.d.ts +2 -0
  1020. package/dist/lib/captureGrounding.test.d.ts.map +1 -0
  1021. package/dist/lib/captureGrounding.test.js +116 -0
  1022. package/dist/lib/captureGrounding.test.js.map +1 -0
  1023. package/dist/lib/captureLink.d.ts +26 -0
  1024. package/dist/lib/captureLink.d.ts.map +1 -0
  1025. package/dist/lib/captureLink.js +96 -0
  1026. package/dist/lib/captureLink.js.map +1 -0
  1027. package/dist/lib/captureVersion.d.ts +38 -0
  1028. package/dist/lib/captureVersion.d.ts.map +1 -0
  1029. package/dist/lib/captureVersion.js +73 -0
  1030. package/dist/lib/captureVersion.js.map +1 -0
  1031. package/dist/lib/client.d.ts +46 -19
  1032. package/dist/lib/client.d.ts.map +1 -1
  1033. package/dist/lib/client.js +230 -66
  1034. package/dist/lib/client.js.map +1 -1
  1035. package/dist/lib/collectionRegistry.d.ts +80 -0
  1036. package/dist/lib/collectionRegistry.d.ts.map +1 -0
  1037. package/dist/lib/collectionRegistry.js +172 -0
  1038. package/dist/lib/collectionRegistry.js.map +1 -0
  1039. package/dist/lib/commanderOptions.d.ts +8 -0
  1040. package/dist/lib/commanderOptions.d.ts.map +1 -0
  1041. package/dist/lib/commanderOptions.js +10 -0
  1042. package/dist/lib/commanderOptions.js.map +1 -0
  1043. package/dist/lib/compose-wrapup-view.d.ts +48 -0
  1044. package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
  1045. package/dist/lib/compose-wrapup-view.js +37 -0
  1046. package/dist/lib/compose-wrapup-view.js.map +1 -0
  1047. package/dist/lib/config.d.ts +102 -54
  1048. package/dist/lib/config.d.ts.map +1 -1
  1049. package/dist/lib/config.js +252 -156
  1050. package/dist/lib/config.js.map +1 -1
  1051. package/dist/lib/configResult.d.ts +103 -0
  1052. package/dist/lib/configResult.d.ts.map +1 -0
  1053. package/dist/lib/configResult.js +180 -0
  1054. package/dist/lib/configResult.js.map +1 -0
  1055. package/dist/lib/connectKeyLabel.d.ts +9 -0
  1056. package/dist/lib/connectKeyLabel.d.ts.map +1 -0
  1057. package/dist/lib/connectKeyLabel.js +12 -0
  1058. package/dist/lib/connectKeyLabel.js.map +1 -0
  1059. package/dist/lib/constants.d.ts +5 -1
  1060. package/dist/lib/constants.d.ts.map +1 -1
  1061. package/dist/lib/constants.js +8 -1
  1062. package/dist/lib/constants.js.map +1 -1
  1063. package/dist/lib/conversation.d.ts +36 -0
  1064. package/dist/lib/conversation.d.ts.map +1 -0
  1065. package/dist/lib/conversation.js +66 -0
  1066. package/dist/lib/conversation.js.map +1 -0
  1067. package/dist/lib/createEntryResult.d.ts +34 -0
  1068. package/dist/lib/createEntryResult.d.ts.map +1 -0
  1069. package/dist/lib/createEntryResult.js +12 -0
  1070. package/dist/lib/createEntryResult.js.map +1 -0
  1071. package/dist/lib/deployment.test.js +19 -0
  1072. package/dist/lib/deployment.test.js.map +1 -1
  1073. package/dist/lib/envKeySnapshot.d.ts +10 -0
  1074. package/dist/lib/envKeySnapshot.d.ts.map +1 -0
  1075. package/dist/lib/envKeySnapshot.js +30 -0
  1076. package/dist/lib/envKeySnapshot.js.map +1 -0
  1077. package/dist/lib/errors.d.ts +79 -0
  1078. package/dist/lib/errors.d.ts.map +1 -1
  1079. package/dist/lib/errors.js +79 -0
  1080. package/dist/lib/errors.js.map +1 -1
  1081. package/dist/lib/frontmatter.d.ts +55 -0
  1082. package/dist/lib/frontmatter.d.ts.map +1 -0
  1083. package/dist/lib/frontmatter.js +92 -0
  1084. package/dist/lib/frontmatter.js.map +1 -0
  1085. package/dist/lib/frontmatter.test.d.ts +15 -0
  1086. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  1087. package/dist/lib/frontmatter.test.js +98 -0
  1088. package/dist/lib/frontmatter.test.js.map +1 -0
  1089. package/dist/lib/gatewayTimeout.d.ts +88 -0
  1090. package/dist/lib/gatewayTimeout.d.ts.map +1 -0
  1091. package/dist/lib/gatewayTimeout.js +118 -0
  1092. package/dist/lib/gatewayTimeout.js.map +1 -0
  1093. package/dist/lib/gitEnvLeakKeysParity.test.d.ts +2 -0
  1094. package/dist/lib/gitEnvLeakKeysParity.test.d.ts.map +1 -0
  1095. package/dist/lib/gitEnvLeakKeysParity.test.js +73 -0
  1096. package/dist/lib/gitEnvLeakKeysParity.test.js.map +1 -0
  1097. package/dist/lib/glossary.js +1 -1
  1098. package/dist/lib/glossary.js.map +1 -1
  1099. package/dist/lib/hook-intents.d.ts +51 -0
  1100. package/dist/lib/hook-intents.d.ts.map +1 -0
  1101. package/dist/lib/hook-intents.js +84 -0
  1102. package/dist/lib/hook-intents.js.map +1 -0
  1103. package/dist/lib/inferSourceDate.d.ts +12 -0
  1104. package/dist/lib/inferSourceDate.d.ts.map +1 -0
  1105. package/dist/lib/inferSourceDate.js +44 -0
  1106. package/dist/lib/inferSourceDate.js.map +1 -0
  1107. package/dist/lib/kernelEnvelope.d.ts +31 -0
  1108. package/dist/lib/kernelEnvelope.d.ts.map +1 -0
  1109. package/dist/lib/kernelEnvelope.js +52 -0
  1110. package/dist/lib/kernelEnvelope.js.map +1 -0
  1111. package/dist/lib/legalRelationTypes.d.ts +26 -0
  1112. package/dist/lib/legalRelationTypes.d.ts.map +1 -0
  1113. package/dist/lib/legalRelationTypes.js +95 -0
  1114. package/dist/lib/legalRelationTypes.js.map +1 -0
  1115. package/dist/lib/localBinding.d.ts +86 -0
  1116. package/dist/lib/localBinding.d.ts.map +1 -0
  1117. package/dist/lib/localBinding.js +173 -0
  1118. package/dist/lib/localBinding.js.map +1 -0
  1119. package/dist/lib/method-registry.d.ts +37 -0
  1120. package/dist/lib/method-registry.d.ts.map +1 -0
  1121. package/dist/lib/method-registry.js +41 -0
  1122. package/dist/lib/method-registry.js.map +1 -0
  1123. package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
  1124. package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
  1125. package/dist/lib/normalizeMaterializedFilename.js +56 -0
  1126. package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
  1127. package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
  1128. package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
  1129. package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
  1130. package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
  1131. package/dist/lib/notice-marker.d.ts +3 -0
  1132. package/dist/lib/notice-marker.d.ts.map +1 -0
  1133. package/dist/lib/notice-marker.js +223 -0
  1134. package/dist/lib/notice-marker.js.map +1 -0
  1135. package/dist/lib/onboarding-path-b.d.ts.map +1 -1
  1136. package/dist/lib/onboarding-path-b.js +35 -6
  1137. package/dist/lib/onboarding-path-b.js.map +1 -1
  1138. package/dist/lib/onboarding-shared.d.ts +4 -4
  1139. package/dist/lib/onboarding-shared.d.ts.map +1 -1
  1140. package/dist/lib/onboarding-shared.js +13 -29
  1141. package/dist/lib/onboarding-shared.js.map +1 -1
  1142. package/dist/lib/onboarding-topics.js +1 -1
  1143. package/dist/lib/onboarding.d.ts.map +1 -1
  1144. package/dist/lib/onboarding.js +15 -13
  1145. package/dist/lib/onboarding.js.map +1 -1
  1146. package/dist/lib/ownerLine.d.ts +62 -0
  1147. package/dist/lib/ownerLine.d.ts.map +1 -0
  1148. package/dist/lib/ownerLine.js +42 -0
  1149. package/dist/lib/ownerLine.js.map +1 -0
  1150. package/dist/lib/parseFields.d.ts +19 -0
  1151. package/dist/lib/parseFields.d.ts.map +1 -0
  1152. package/dist/lib/parseFields.js +49 -0
  1153. package/dist/lib/parseFields.js.map +1 -0
  1154. package/dist/lib/previewBanner.d.ts +9 -0
  1155. package/dist/lib/previewBanner.d.ts.map +1 -0
  1156. package/dist/lib/previewBanner.js +37 -0
  1157. package/dist/lib/previewBanner.js.map +1 -0
  1158. package/dist/lib/productbrain-files.d.ts +94 -0
  1159. package/dist/lib/productbrain-files.d.ts.map +1 -0
  1160. package/dist/lib/productbrain-files.js +214 -0
  1161. package/dist/lib/productbrain-files.js.map +1 -0
  1162. package/dist/lib/productbrain-files.test.d.ts +2 -0
  1163. package/dist/lib/productbrain-files.test.d.ts.map +1 -0
  1164. package/dist/lib/productbrain-files.test.js +293 -0
  1165. package/dist/lib/productbrain-files.test.js.map +1 -0
  1166. package/dist/lib/profiles.d.ts +53 -5
  1167. package/dist/lib/profiles.d.ts.map +1 -1
  1168. package/dist/lib/profiles.js +77 -23
  1169. package/dist/lib/profiles.js.map +1 -1
  1170. package/dist/lib/projectConfig.d.ts +81 -0
  1171. package/dist/lib/projectConfig.d.ts.map +1 -0
  1172. package/dist/lib/projectConfig.js +157 -0
  1173. package/dist/lib/projectConfig.js.map +1 -0
  1174. package/dist/lib/rate-limit.d.ts +38 -0
  1175. package/dist/lib/rate-limit.d.ts.map +1 -0
  1176. package/dist/lib/rate-limit.js +83 -0
  1177. package/dist/lib/rate-limit.js.map +1 -0
  1178. package/dist/lib/readinessNotices.d.ts +13 -0
  1179. package/dist/lib/readinessNotices.d.ts.map +1 -0
  1180. package/dist/lib/readinessNotices.js +16 -0
  1181. package/dist/lib/readinessNotices.js.map +1 -0
  1182. package/dist/lib/repo-detect.d.ts +5 -1
  1183. package/dist/lib/repo-detect.d.ts.map +1 -1
  1184. package/dist/lib/repo-detect.js +10 -3
  1185. package/dist/lib/repo-detect.js.map +1 -1
  1186. package/dist/lib/reportedProfile.d.ts +18 -0
  1187. package/dist/lib/reportedProfile.d.ts.map +1 -0
  1188. package/dist/lib/reportedProfile.js +144 -0
  1189. package/dist/lib/reportedProfile.js.map +1 -0
  1190. package/dist/lib/ruleListRender.d.ts +59 -0
  1191. package/dist/lib/ruleListRender.d.ts.map +1 -0
  1192. package/dist/lib/ruleListRender.js +63 -0
  1193. package/dist/lib/ruleListRender.js.map +1 -0
  1194. package/dist/lib/runner.d.ts +9 -1
  1195. package/dist/lib/runner.d.ts.map +1 -1
  1196. package/dist/lib/runner.js +30 -4
  1197. package/dist/lib/runner.js.map +1 -1
  1198. package/dist/lib/session.d.ts +90 -6
  1199. package/dist/lib/session.d.ts.map +1 -1
  1200. package/dist/lib/session.js +261 -17
  1201. package/dist/lib/session.js.map +1 -1
  1202. package/dist/lib/sessionBinding.d.ts +61 -0
  1203. package/dist/lib/sessionBinding.d.ts.map +1 -0
  1204. package/dist/lib/sessionBinding.js +125 -0
  1205. package/dist/lib/sessionBinding.js.map +1 -0
  1206. package/dist/lib/sessionNotices.d.ts +53 -0
  1207. package/dist/lib/sessionNotices.d.ts.map +1 -0
  1208. package/dist/lib/sessionNotices.js +122 -0
  1209. package/dist/lib/sessionNotices.js.map +1 -0
  1210. package/dist/lib/sessionNotices.test.d.ts +2 -0
  1211. package/dist/lib/sessionNotices.test.d.ts.map +1 -0
  1212. package/dist/lib/sessionNotices.test.js +48 -0
  1213. package/dist/lib/sessionNotices.test.js.map +1 -0
  1214. package/dist/lib/spineVerdictRead.d.ts +70 -0
  1215. package/dist/lib/spineVerdictRead.d.ts.map +1 -0
  1216. package/dist/lib/spineVerdictRead.js +73 -0
  1217. package/dist/lib/spineVerdictRead.js.map +1 -0
  1218. package/dist/lib/spinner.js +2 -2
  1219. package/dist/lib/spinner.js.map +1 -1
  1220. package/dist/lib/startup-resolution-signals.d.ts +34 -0
  1221. package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
  1222. package/dist/lib/startup-resolution-signals.js +116 -0
  1223. package/dist/lib/startup-resolution-signals.js.map +1 -0
  1224. package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
  1225. package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
  1226. package/dist/lib/startup-resolution-signals.test.js +113 -0
  1227. package/dist/lib/startup-resolution-signals.test.js.map +1 -0
  1228. package/dist/lib/startup-signals.d.ts +12 -0
  1229. package/dist/lib/startup-signals.d.ts.map +1 -0
  1230. package/dist/lib/startup-signals.js +179 -0
  1231. package/dist/lib/startup-signals.js.map +1 -0
  1232. package/dist/lib/startup-signals.test.d.ts +2 -0
  1233. package/dist/lib/startup-signals.test.d.ts.map +1 -0
  1234. package/dist/lib/startup-signals.test.js +165 -0
  1235. package/dist/lib/startup-signals.test.js.map +1 -0
  1236. package/dist/lib/state.d.ts +11 -2
  1237. package/dist/lib/state.d.ts.map +1 -1
  1238. package/dist/lib/state.js +11 -4
  1239. package/dist/lib/state.js.map +1 -1
  1240. package/dist/lib/strip.d.ts +17 -0
  1241. package/dist/lib/strip.d.ts.map +1 -1
  1242. package/dist/lib/strip.js +48 -1
  1243. package/dist/lib/strip.js.map +1 -1
  1244. package/dist/lib/style.d.ts +10 -2
  1245. package/dist/lib/style.d.ts.map +1 -1
  1246. package/dist/lib/style.js +26 -17
  1247. package/dist/lib/style.js.map +1 -1
  1248. package/dist/lib/tokenConstants.d.ts +2 -0
  1249. package/dist/lib/tokenConstants.d.ts.map +1 -1
  1250. package/dist/lib/tokenConstants.js +2 -0
  1251. package/dist/lib/tokenConstants.js.map +1 -1
  1252. package/dist/lib/update-check.d.ts +42 -7
  1253. package/dist/lib/update-check.d.ts.map +1 -1
  1254. package/dist/lib/update-check.js +213 -61
  1255. package/dist/lib/update-check.js.map +1 -1
  1256. package/dist/lib/upgrade-runner.d.ts +22 -0
  1257. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  1258. package/dist/lib/upgrade-runner.js +110 -0
  1259. package/dist/lib/upgrade-runner.js.map +1 -0
  1260. package/dist/lib/versionWrite.d.ts +65 -0
  1261. package/dist/lib/versionWrite.d.ts.map +1 -0
  1262. package/dist/lib/versionWrite.js +32 -0
  1263. package/dist/lib/versionWrite.js.map +1 -0
  1264. package/dist/lib/workspace-probe.d.ts +3 -0
  1265. package/dist/lib/workspace-probe.d.ts.map +1 -1
  1266. package/dist/lib/workspace-probe.js +7 -13
  1267. package/dist/lib/workspace-probe.js.map +1 -1
  1268. package/dist/lib/workspaceNotice.d.ts +202 -0
  1269. package/dist/lib/workspaceNotice.d.ts.map +1 -0
  1270. package/dist/lib/workspaceNotice.js +345 -0
  1271. package/dist/lib/workspaceNotice.js.map +1 -0
  1272. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  1273. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  1274. package/dist/lib/workspaceVocabCache.js +98 -0
  1275. package/dist/lib/workspaceVocabCache.js.map +1 -0
  1276. package/dist/lib/writePerimeter.d.ts +72 -0
  1277. package/dist/lib/writePerimeter.d.ts.map +1 -0
  1278. package/dist/lib/writePerimeter.js +128 -0
  1279. package/dist/lib/writePerimeter.js.map +1 -0
  1280. package/dist/registerEntryCommands.d.ts +17 -0
  1281. package/dist/registerEntryCommands.d.ts.map +1 -0
  1282. package/dist/registerEntryCommands.js +106 -0
  1283. package/dist/registerEntryCommands.js.map +1 -0
  1284. package/dist/registerHistoryCommand.d.ts +8 -0
  1285. package/dist/registerHistoryCommand.d.ts.map +1 -0
  1286. package/dist/registerHistoryCommand.js +14 -0
  1287. package/dist/registerHistoryCommand.js.map +1 -0
  1288. package/dist/registerOutcomeCommands.d.ts +27 -0
  1289. package/dist/registerOutcomeCommands.d.ts.map +1 -0
  1290. package/dist/registerOutcomeCommands.js +27 -0
  1291. package/dist/registerOutcomeCommands.js.map +1 -0
  1292. package/dist/registerProposalCommands.d.ts +13 -0
  1293. package/dist/registerProposalCommands.d.ts.map +1 -0
  1294. package/dist/registerProposalCommands.js +76 -0
  1295. package/dist/registerProposalCommands.js.map +1 -0
  1296. package/dist/registerRoleCommands.d.ts +10 -0
  1297. package/dist/registerRoleCommands.d.ts.map +1 -0
  1298. package/dist/registerRoleCommands.js +14 -0
  1299. package/dist/registerRoleCommands.js.map +1 -0
  1300. package/dist/registerTensionsCommands.d.ts +10 -0
  1301. package/dist/registerTensionsCommands.d.ts.map +1 -0
  1302. package/dist/registerTensionsCommands.js +15 -0
  1303. package/dist/registerTensionsCommands.js.map +1 -0
  1304. package/dist/scoreboard/diagnose.d.ts +226 -0
  1305. package/dist/scoreboard/diagnose.d.ts.map +1 -0
  1306. package/dist/scoreboard/diagnose.js +343 -0
  1307. package/dist/scoreboard/diagnose.js.map +1 -0
  1308. package/dist/scoreboard/diagnose.test.d.ts +15 -0
  1309. package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
  1310. package/dist/scoreboard/diagnose.test.js +355 -0
  1311. package/dist/scoreboard/diagnose.test.js.map +1 -0
  1312. package/dist/scoreboard/floors.d.ts +47 -0
  1313. package/dist/scoreboard/floors.d.ts.map +1 -0
  1314. package/dist/scoreboard/floors.js +33 -0
  1315. package/dist/scoreboard/floors.js.map +1 -0
  1316. package/dist/scoreboard/localDrift.d.ts +23 -0
  1317. package/dist/scoreboard/localDrift.d.ts.map +1 -0
  1318. package/dist/scoreboard/localDrift.js +111 -0
  1319. package/dist/scoreboard/localDrift.js.map +1 -0
  1320. package/dist/scoreboard/localDrift.test.d.ts +9 -0
  1321. package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
  1322. package/dist/scoreboard/localDrift.test.js +82 -0
  1323. package/dist/scoreboard/localDrift.test.js.map +1 -0
  1324. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  1325. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  1326. package/dist/surfaces/__tests__/adapter.test.js +86 -0
  1327. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  1328. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts +2 -0
  1329. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts.map +1 -0
  1330. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js +179 -0
  1331. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js.map +1 -0
  1332. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  1333. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  1334. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  1335. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  1336. package/dist/surfaces/adapter.d.ts +70 -0
  1337. package/dist/surfaces/adapter.d.ts.map +1 -0
  1338. package/dist/surfaces/adapter.js +2 -0
  1339. package/dist/surfaces/adapter.js.map +1 -0
  1340. package/dist/surfaces/adapters/claude.d.ts +3 -0
  1341. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  1342. package/dist/surfaces/adapters/claude.js +72 -0
  1343. package/dist/surfaces/adapters/claude.js.map +1 -0
  1344. package/dist/surfaces/adapters/codex.d.ts +3 -0
  1345. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  1346. package/dist/surfaces/adapters/codex.js +61 -0
  1347. package/dist/surfaces/adapters/codex.js.map +1 -0
  1348. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  1349. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  1350. package/dist/surfaces/adapters/copilot.js +59 -0
  1351. package/dist/surfaces/adapters/copilot.js.map +1 -0
  1352. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  1353. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  1354. package/dist/surfaces/adapters/cursor.js +78 -0
  1355. package/dist/surfaces/adapters/cursor.js.map +1 -0
  1356. package/dist/surfaces/registry.d.ts +76 -0
  1357. package/dist/surfaces/registry.d.ts.map +1 -0
  1358. package/dist/surfaces/registry.js +117 -0
  1359. package/dist/surfaces/registry.js.map +1 -0
  1360. package/dist/surfaces/telemetry.d.ts +17 -0
  1361. package/dist/surfaces/telemetry.d.ts.map +1 -0
  1362. package/dist/surfaces/telemetry.js +31 -0
  1363. package/dist/surfaces/telemetry.js.map +1 -0
  1364. package/package.json +9 -5
  1365. package/templates/method-registry.json +16 -0
  1366. package/dist/__tests__/promote.test.d.ts +0 -2
  1367. package/dist/__tests__/promote.test.d.ts.map +0 -1
  1368. package/dist/__tests__/promote.test.js +0 -161
  1369. package/dist/__tests__/promote.test.js.map +0 -1
  1370. package/dist/__tests__/setup.test.d.ts +0 -2
  1371. package/dist/__tests__/setup.test.d.ts.map +0 -1
  1372. package/dist/__tests__/setup.test.js +0 -127
  1373. package/dist/__tests__/setup.test.js.map +0 -1
  1374. package/dist/commands/promote.d.ts +0 -12
  1375. package/dist/commands/promote.d.ts.map +0 -1
  1376. package/dist/commands/promote.js +0 -90
  1377. package/dist/commands/promote.js.map +0 -1
  1378. package/dist/commands/setup.d.ts +0 -15
  1379. package/dist/commands/setup.d.ts.map +0 -1
  1380. package/dist/commands/setup.js +0 -147
  1381. package/dist/commands/setup.js.map +0 -1
  1382. package/dist/formatters/promote.d.ts +0 -30
  1383. package/dist/formatters/promote.d.ts.map +0 -1
  1384. package/dist/formatters/promote.js +0 -39
  1385. package/dist/formatters/promote.js.map +0 -1
  1386. package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
  1387. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
  1388. package/dist/generators/__tests__/surface-profiles.test.js +0 -89
  1389. package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
  1390. package/dist/generators/chain-classifier.test.d.ts +0 -2
  1391. package/dist/generators/chain-classifier.test.d.ts.map +0 -1
  1392. package/dist/generators/chain-classifier.test.js +0 -257
  1393. package/dist/generators/chain-classifier.test.js.map +0 -1
  1394. package/dist/lib/onboarding-phases.d.ts +0 -9
  1395. package/dist/lib/onboarding-phases.d.ts.map +0 -1
  1396. package/dist/lib/onboarding-phases.js +0 -120
  1397. package/dist/lib/onboarding-phases.js.map +0 -1
@@ -16,7 +16,16 @@ const ACTIVE_PROFILE_PATH = resolve(HOME_CONFIG_DIR, 'active-profile');
16
16
  const LEGACY_ENV_PATH = resolve(HOME_CONFIG_DIR, '.env');
17
17
  /** Profile name validation: lowercase alphanumeric + hyphens, 1-32 chars. */
18
18
  const PROFILE_NAME_RE = /^[a-z0-9][a-z0-9-]{0,31}$/;
19
- function validateProfileName(name) {
19
+ /**
20
+ * Validate a profile name — lowercase alphanumeric + hyphens, 1-32 chars, no path
21
+ * separators. Exported so any caller that resolves a path from an UNTRUSTED name
22
+ * (e.g. `PB_PROFILE`) before it reaches a `createProfile`/`useProfile`/`deleteProfile`
23
+ * write can validate at the point of first path resolution, not only at the eventual
24
+ * write (TEN-2851 Copilot review: connect.ts's read-before-write called
25
+ * `resolveNamedProfileConfig()` — which resolves a path but never validated — before
26
+ * name validation ever ran).
27
+ */
28
+ export function validateProfileName(name) {
20
29
  if (!PROFILE_NAME_RE.test(name)) {
21
30
  throw new CLIError(`Invalid profile name "${name}". Must be 1-32 chars, lowercase alphanumeric + hyphens, starting with alphanumeric.`, { code: ErrorCode.PROFILE_NAME_INVALID, category: 'profile' });
22
31
  }
@@ -49,9 +58,12 @@ function readProfileFile(path) {
49
58
  /**
50
59
  * Auto-migrate legacy ~/.config/productbrain/.env to profiles/default.env.
51
60
  * Only runs if legacy file exists AND no profiles directory exists.
52
- * If profiles already exist, silently removes the legacy .env (TEN-1343).
61
+ * If profiles already exist, silently removes the legacy .env (TEN-1343) — so any caller
62
+ * that might CREATE the profiles dir before this runs (e.g. `pb connect`'s named-profile
63
+ * create path) must call this FIRST, or the legacy file is deleted, unmigrated (Codex
64
+ * review, WP-628 P1).
53
65
  */
54
- function autoMigrate() {
66
+ export function autoMigrate() {
55
67
  if (existsSync(PROFILES_DIR)) {
56
68
  if (existsSync(LEGACY_ENV_PATH))
57
69
  unlinkSync(LEGACY_ENV_PATH);
@@ -76,12 +88,8 @@ export function listProfiles() {
76
88
  .map((f) => f.replace(/\.env$/, ''))
77
89
  .sort();
78
90
  }
79
- /** Get the active profile name. */
80
- export function getActiveProfile() {
81
- // PB_PROFILE env var takes precedence
82
- const envProfile = process.env.PB_PROFILE?.trim();
83
- if (envProfile)
84
- return envProfile;
91
+ /** Read the global active-profile file only (ignores PB_PROFILE). */
92
+ export function getGlobalActiveProfile() {
85
93
  if (existsSync(ACTIVE_PROFILE_PATH)) {
86
94
  const name = readFileSync(ACTIVE_PROFILE_PATH, 'utf8').trim();
87
95
  if (name)
@@ -89,12 +97,24 @@ export function getActiveProfile() {
89
97
  }
90
98
  return null;
91
99
  }
92
- /** Create a new profile. */
93
- export function createProfile(name, apiKey, siteUrl) {
100
+ /** Get the active profile name (PB_PROFILE env wins, then the global file). */
101
+ export function getActiveProfile() {
102
+ const envProfile = process.env.PB_PROFILE?.trim();
103
+ if (envProfile)
104
+ return envProfile;
105
+ return getGlobalActiveProfile();
106
+ }
107
+ /**
108
+ * Create a new profile.
109
+ *
110
+ * TEN-2851: refuses to overwrite an existing profile file by default — a caller wanting to
111
+ * replace an occupied profile's credentials must pass `{ overwrite: true }` explicitly (the
112
+ * act stays deliberate at every call site, never a silent side-effect of a name collision).
113
+ * `pb connect`'s clobber gate (connect.ts saveKeyAsProfile) is the one caller that passes it,
114
+ * and only after an explicit interactive confirm.
115
+ */
116
+ export function createProfile(name, apiKey, siteUrl, opts) {
94
117
  validateProfileName(name);
95
- if (existsSync(profilePath(name))) {
96
- throw new CLIError(`Profile "${name}" already exists.`, { code: ErrorCode.PROFILE_ALREADY_EXISTS, category: 'profile' });
97
- }
98
118
  mkdirSync(PROFILES_DIR, { recursive: true });
99
119
  const lines = [
100
120
  `# Product Brain CLI profile: ${name}`,
@@ -104,9 +124,36 @@ export function createProfile(name, apiKey, siteUrl) {
104
124
  lines.push(`CONVEX_SITE_URL=${siteUrl}`);
105
125
  }
106
126
  lines.push('');
107
- writeFileSync(profilePath(name), lines.join('\n'), { mode: 0o600 });
108
- // If this is the first profile, make it active
109
- if (!existsSync(ACTIVE_PROFILE_PATH)) {
127
+ const content = lines.join('\n');
128
+ // TEN-2851 TOCTOU (Copilot review): an existsSync() pre-check followed by a plain 'w'
129
+ // write leaves a race window — a concurrent process can create the file between the
130
+ // check and the write, and 'w' would silently truncate it. When NOT overwriting, use the
131
+ // exclusive-create flag 'wx' so the filesystem is the atomic guard: EEXIST (whether from
132
+ // a pre-existing file or one created in the race window) surfaces as the SAME
133
+ // PROFILE_ALREADY_EXISTS error every existing caller already handles. `{ overwrite: true }`
134
+ // is an explicit, already-confirmed replace (see connect.ts saveKeyAsProfile) and
135
+ // intentionally keeps the plain 'w' flag — it means to replace whatever is there.
136
+ if (opts?.overwrite) {
137
+ writeFileSync(profilePath(name), content, { mode: 0o600 });
138
+ }
139
+ else {
140
+ try {
141
+ writeFileSync(profilePath(name), content, { mode: 0o600, flag: 'wx' });
142
+ }
143
+ catch (err) {
144
+ if (err && typeof err === 'object' && 'code' in err && err.code === 'EEXIST') {
145
+ throw new CLIError(`Profile "${name}" already exists.`, { code: ErrorCode.PROFILE_ALREADY_EXISTS, category: 'profile' });
146
+ }
147
+ throw err;
148
+ }
149
+ }
150
+ // If this is the first profile, make it active. Scoped to !opts?.overwrite (Codex review,
151
+ // WP-628 P2): an overwrite call means the profile ALREADY existed — it can never be "the
152
+ // first profile ever created" — so it must never claim a missing active-profile marker.
153
+ // Without this guard, confirming an overwrite while that marker happens to be absent would
154
+ // silently activate the overwritten target globally, contradicting this function's own
155
+ // "does not activate globally" contract (connect.ts saveKeyAsProfile docstring).
156
+ if (!opts?.overwrite && !existsSync(ACTIVE_PROFILE_PATH)) {
110
157
  writeFileSync(ACTIVE_PROFILE_PATH, name, { mode: 0o600 });
111
158
  }
112
159
  }
@@ -148,7 +195,7 @@ export function resolveProfileConfig() {
148
195
  if (envProfile) {
149
196
  const config = readProfileFile(profilePath(envProfile));
150
197
  if (config)
151
- return config;
198
+ return { ...config, profileName: envProfile };
152
199
  }
153
200
  // 2. Check active-profile file
154
201
  if (existsSync(ACTIVE_PROFILE_PATH)) {
@@ -156,30 +203,37 @@ export function resolveProfileConfig() {
156
203
  if (name) {
157
204
  const config = readProfileFile(profilePath(name));
158
205
  if (config)
159
- return config;
206
+ return { ...config, profileName: name };
160
207
  }
161
208
  }
162
209
  // 3. Check "default" profile
163
210
  {
164
211
  const config = readProfileFile(profilePath('default'));
165
212
  if (config)
166
- return config;
213
+ return { ...config, profileName: 'default' };
167
214
  }
168
- // 4. Fall back to legacy .env
215
+ // 4. Fall back to legacy .env — not a named profile, so no profileName.
169
216
  {
170
217
  const config = readProfileFile(LEGACY_ENV_PATH);
171
218
  if (config)
172
- return config;
219
+ return { ...config, profileName: null };
173
220
  }
174
221
  return null;
175
222
  }
176
223
  /**
177
224
  * Resolve config for a specific named profile.
178
- * Returns null if the profile doesn't exist.
225
+ * Returns null both when the profile file is absent AND when it exists but fails to parse
226
+ * (missing/empty PRODUCTBRAIN_API_KEY) — those two cases are NOT the same thing to a caller
227
+ * deciding whether it's safe to create; use `profileFileExists()` to tell them apart
228
+ * (Codex review, WP-628 P2).
179
229
  */
180
230
  export function resolveNamedProfileConfig(name) {
181
231
  return readProfileFile(profilePath(name));
182
232
  }
233
+ /** Does a profile FILE exist at this name, independent of whether it parses (see above). */
234
+ export function profileFileExists(name) {
235
+ return existsSync(profilePath(name));
236
+ }
183
237
  // Exported for testing
184
238
  export { PROFILES_DIR, ACTIVE_PROFILE_PATH, LEGACY_ENV_PATH, HOME_CONFIG_DIR };
185
239
  //# sourceMappingURL=profiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * The repo's own Product Brain config files — locating them and reading what they declare.
3
+ *
4
+ * Split out of config.ts under STD-2 / DEC-1504. The seam is deliberate and worth keeping:
5
+ * this module answers "what does THIS REPO say about itself" from the filesystem alone, while
6
+ * config.ts answers "which credential do we therefore use". Nothing here reads a credential
7
+ * store, an env var, or the global active profile — so it has no dependency on config.ts and
8
+ * cannot participate in an import cycle.
9
+ *
10
+ * Split config design:
11
+ * - config.json (committed): siteUrl only — workspace gateway, safe to share with teammates.
12
+ * - config.local.json (gitignored): profile pin — machine-local, never committed. Because it
13
+ * is gitignored, a fresh clone or worktree does NOT inherit it (INS-2462) — the caller must
14
+ * treat "no pin" as an explicit state, never as permission to guess a workspace.
15
+ */
16
+ /** Project config shape — .productbrain/config.json (committed, siteUrl only) */
17
+ export interface ProjectConfig {
18
+ siteUrl?: string;
19
+ }
20
+ /** Local project config shape — .productbrain/config.local.json (gitignored, machine-local) */
21
+ export interface LocalProjectConfig {
22
+ profile?: string;
23
+ /** Direct preview API key — set by `npm run pb:preview`, cleared by `npm run pb:real`. */
24
+ apiKey?: string;
25
+ /**
26
+ * An `apiKey` was present but failed the `API_KEY_PREFIX` bar, so it was not loaded.
27
+ * Kept apart from `apiKey` so a malformed key can never bind, while diagnostics can still
28
+ * say "malformed" instead of misreporting it as absent.
29
+ */
30
+ apiKeyMalformed?: boolean;
31
+ /** Preview site URL — set alongside apiKey by `npm run pb:preview`. */
32
+ siteUrl?: string;
33
+ /** Marks this config as preview-bound; the CLI shows a loud banner on every command. */
34
+ preview?: boolean;
35
+ /** Human-readable preview workspace name for the banner (e.g. "Preview Workspace"). */
36
+ workspaceName?: string;
37
+ }
38
+ /**
39
+ * Walk up the directory tree (git-style) to find the nearest CLI project root.
40
+ *
41
+ * A `.productbrain/` directory only counts as a CLI project root when it carries
42
+ * CLI configuration — `config.json` (committed siteUrl gateway) or
43
+ * `config.local.json` (machine-local profile pin or preview binding). A
44
+ * projection-only `.productbrain/` written by `pb handshake` (briefing.md,
45
+ * context.md, rules/, etc.) does NOT count — otherwise a subrepo like
46
+ * `packages/cli/.productbrain/` would shadow the real configuring root and
47
+ * `npm run pb:preview` writes (which always land at the repo-root
48
+ * `.productbrain/`) would be invisible to commands run from the subrepo.
49
+ *
50
+ * Stops at home directory or filesystem root. Returns the directory containing
51
+ * a config-bearing `.productbrain/`, or null if not found.
52
+ */
53
+ export declare function findProjectRoot(startDir: string): string | null;
54
+ /**
55
+ * Read .productbrain/config.json from the walked-up project root.
56
+ * Only reads siteUrl — profile and apiKey fields are ignored (legacy or misplaced).
57
+ * Returns null if file missing or project root not found.
58
+ * Warns to stderr on invalid JSON but does not throw.
59
+ */
60
+ export declare function readProjectConfig(): ProjectConfig | null;
61
+ /**
62
+ * Does the committed `.productbrain/config.json` EXIST, independent of whether it parses?
63
+ *
64
+ * The project's self-declaration is the file's PRESENCE, not its contents. `readProjectConfig()`
65
+ * returns null for a malformed or non-object file exactly as it does for an absent one, so a
66
+ * caller asking "is this a project" through that value reads a DAMAGED declaration as no
67
+ * declaration at all — and falls through to whatever workspace the global profile names. A
68
+ * corrupt committed file must not be a way out of the project's own tenant rules, so callers
69
+ * deciding whether a repo has declared itself ask this instead (Codex review, WP-694 S2).
70
+ */
71
+ export declare function projectConfigExists(): boolean;
72
+ /**
73
+ * Read .productbrain/config.local.json from the walked-up project root.
74
+ * Returns the machine-local pin (`profile`) and any preview-binding fields
75
+ * (`apiKey`, `siteUrl`, `preview`, `workspaceName`) written by
76
+ * `npm run pb:preview` — all gitignored, never committed.
77
+ * Returns null if file missing or project root not found.
78
+ * Warns to stderr on invalid JSON but does not throw.
79
+ */
80
+ export declare function readLocalProjectConfig(): LocalProjectConfig | null;
81
+ //# sourceMappingURL=projectConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/lib/projectConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+FAA+F;AAC/F,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,GAAG,IAAI,CAuBxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,kBAAkB,GAAG,IAAI,CA8ClE"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * The repo's own Product Brain config files — locating them and reading what they declare.
3
+ *
4
+ * Split out of config.ts under STD-2 / DEC-1504. The seam is deliberate and worth keeping:
5
+ * this module answers "what does THIS REPO say about itself" from the filesystem alone, while
6
+ * config.ts answers "which credential do we therefore use". Nothing here reads a credential
7
+ * store, an env var, or the global active profile — so it has no dependency on config.ts and
8
+ * cannot participate in an import cycle.
9
+ *
10
+ * Split config design:
11
+ * - config.json (committed): siteUrl only — workspace gateway, safe to share with teammates.
12
+ * - config.local.json (gitignored): profile pin — machine-local, never committed. Because it
13
+ * is gitignored, a fresh clone or worktree does NOT inherit it (INS-2462) — the caller must
14
+ * treat "no pin" as an explicit state, never as permission to guess a workspace.
15
+ */
16
+ import { readFileSync, existsSync } from 'fs';
17
+ import { resolve } from 'path';
18
+ import { homedir } from 'os';
19
+ import { API_KEY_PREFIX } from './tokenConstants.js';
20
+ /**
21
+ * Walk up the directory tree (git-style) to find the nearest CLI project root.
22
+ *
23
+ * A `.productbrain/` directory only counts as a CLI project root when it carries
24
+ * CLI configuration — `config.json` (committed siteUrl gateway) or
25
+ * `config.local.json` (machine-local profile pin or preview binding). A
26
+ * projection-only `.productbrain/` written by `pb handshake` (briefing.md,
27
+ * context.md, rules/, etc.) does NOT count — otherwise a subrepo like
28
+ * `packages/cli/.productbrain/` would shadow the real configuring root and
29
+ * `npm run pb:preview` writes (which always land at the repo-root
30
+ * `.productbrain/`) would be invisible to commands run from the subrepo.
31
+ *
32
+ * Stops at home directory or filesystem root. Returns the directory containing
33
+ * a config-bearing `.productbrain/`, or null if not found.
34
+ */
35
+ export function findProjectRoot(startDir) {
36
+ let dir = startDir;
37
+ const home = homedir();
38
+ while (true) {
39
+ const pbDir = resolve(dir, '.productbrain');
40
+ if (existsSync(pbDir) &&
41
+ (existsSync(resolve(pbDir, 'config.json')) ||
42
+ existsSync(resolve(pbDir, 'config.local.json')))) {
43
+ return dir;
44
+ }
45
+ const parent = resolve(dir, '..');
46
+ if (parent === dir || dir === home)
47
+ return null;
48
+ dir = parent;
49
+ }
50
+ }
51
+ /**
52
+ * Read .productbrain/config.json from the walked-up project root.
53
+ * Only reads siteUrl — profile and apiKey fields are ignored (legacy or misplaced).
54
+ * Returns null if file missing or project root not found.
55
+ * Warns to stderr on invalid JSON but does not throw.
56
+ */
57
+ export function readProjectConfig() {
58
+ const projectRoot = findProjectRoot(process.cwd());
59
+ if (!projectRoot)
60
+ return null;
61
+ const configPath = resolve(projectRoot, '.productbrain', 'config.json');
62
+ if (!existsSync(configPath))
63
+ return null;
64
+ try {
65
+ const raw = readFileSync(configPath, 'utf8');
66
+ const parsed = JSON.parse(raw);
67
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
68
+ process.stderr.write('Warning: .productbrain/config.json is not a JSON object, skipping.\n');
69
+ return null;
70
+ }
71
+ const result = {};
72
+ if (typeof parsed.siteUrl === 'string' && parsed.siteUrl) {
73
+ result.siteUrl = parsed.siteUrl;
74
+ }
75
+ // Silently ignore `profile` and `apiKey` in config.json — those must be in config.local.json
76
+ return result;
77
+ }
78
+ catch {
79
+ process.stderr.write('Warning: .productbrain/config.json contains invalid JSON, skipping.\n');
80
+ return null;
81
+ }
82
+ }
83
+ /**
84
+ * Does the committed `.productbrain/config.json` EXIST, independent of whether it parses?
85
+ *
86
+ * The project's self-declaration is the file's PRESENCE, not its contents. `readProjectConfig()`
87
+ * returns null for a malformed or non-object file exactly as it does for an absent one, so a
88
+ * caller asking "is this a project" through that value reads a DAMAGED declaration as no
89
+ * declaration at all — and falls through to whatever workspace the global profile names. A
90
+ * corrupt committed file must not be a way out of the project's own tenant rules, so callers
91
+ * deciding whether a repo has declared itself ask this instead (Codex review, WP-694 S2).
92
+ */
93
+ export function projectConfigExists() {
94
+ const projectRoot = findProjectRoot(process.cwd());
95
+ if (!projectRoot)
96
+ return false;
97
+ return existsSync(resolve(projectRoot, '.productbrain', 'config.json'));
98
+ }
99
+ /**
100
+ * Read .productbrain/config.local.json from the walked-up project root.
101
+ * Returns the machine-local pin (`profile`) and any preview-binding fields
102
+ * (`apiKey`, `siteUrl`, `preview`, `workspaceName`) written by
103
+ * `npm run pb:preview` — all gitignored, never committed.
104
+ * Returns null if file missing or project root not found.
105
+ * Warns to stderr on invalid JSON but does not throw.
106
+ */
107
+ export function readLocalProjectConfig() {
108
+ const projectRoot = findProjectRoot(process.cwd());
109
+ if (!projectRoot)
110
+ return null;
111
+ const configPath = resolve(projectRoot, '.productbrain', 'config.local.json');
112
+ if (!existsSync(configPath))
113
+ return null;
114
+ try {
115
+ const raw = readFileSync(configPath, 'utf8');
116
+ const parsed = JSON.parse(raw);
117
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
118
+ process.stderr.write('Warning: .productbrain/config.local.json is not a JSON object, skipping.\n');
119
+ return null;
120
+ }
121
+ const result = {};
122
+ if (typeof parsed.profile === 'string' && parsed.profile) {
123
+ result.profile = parsed.profile;
124
+ }
125
+ // Preview binding fields — written by `npm run pb:preview`, cleared by `npm run pb:real`.
126
+ //
127
+ // Fail closed on ANY present-but-invalid apiKey, not just a wrong-prefix string: a number,
128
+ // an empty string, a boolean or an object is a corrupt or hand-written binding, and treating
129
+ // it as absent would let the caller skip the claimed binding and adopt a sibling profile pin
130
+ // — the workspace substitution this whole path exists to prevent. Only `undefined`/`null`
131
+ // count as absent: JSON `null` conventionally means "no value", and `npm run pb:real` strips
132
+ // the preview keys entirely rather than nulling them.
133
+ if (parsed.apiKey !== undefined && parsed.apiKey !== null) {
134
+ if (typeof parsed.apiKey === 'string' && parsed.apiKey.startsWith(API_KEY_PREFIX)) {
135
+ result.apiKey = parsed.apiKey;
136
+ }
137
+ else {
138
+ result.apiKeyMalformed = true;
139
+ }
140
+ }
141
+ if (typeof parsed.siteUrl === 'string' && parsed.siteUrl) {
142
+ result.siteUrl = parsed.siteUrl;
143
+ }
144
+ if (parsed.preview === true) {
145
+ result.preview = true;
146
+ }
147
+ if (typeof parsed.workspaceName === 'string' && parsed.workspaceName) {
148
+ result.workspaceName = parsed.workspaceName;
149
+ }
150
+ return result;
151
+ }
152
+ catch {
153
+ process.stderr.write('Warning: .productbrain/config.local.json contains invalid JSON, skipping.\n');
154
+ return null;
155
+ }
156
+ }
157
+ //# sourceMappingURL=projectConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/lib/projectConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * WP-579 — client-side rate-limit resilience for the gateway helpers in client.ts
3
+ * (TEN-2923 touch amplification, TEN-2924 no-backoff-on-429).
4
+ *
5
+ * Split out of client.ts rather than grown inside it: these are two self-contained
6
+ * policies (when to retry a throttled call, when a session touch is worth sending) with
7
+ * their own constants and module-level state, and client.ts is at its STD-2 budget.
8
+ *
9
+ * Depends only on the error taxonomy — NOT on client.ts's `McpError` — so the two modules
10
+ * don't form an import cycle. The retry keys off the error's `code`, which is exactly what
11
+ * the guard tested before the split (`McpError` is the only thing that sets
12
+ * `code === 'rate-limited'` alongside a `retryAfterSeconds`).
13
+ */
14
+ /**
15
+ * TEN-2924: bounded, jittered retry for a rate-limited call. Honors the server's
16
+ * Retry-After rather than guessing a backoff curve. Only retries a rate-limit refusal —
17
+ * never a validation/auth/internal failure, which retrying unchanged would just repeat.
18
+ */
19
+ export declare function withRateLimitRetry<T>(attempt: () => Promise<T>): Promise<T>;
20
+ /**
21
+ * Per-call knobs for the gateway helpers.
22
+ *
23
+ * `retryOnRateLimit: false` is the opt-out a BACKGROUND (unawaited) call must pass. A
24
+ * pending retry timer keeps the Node event loop alive, so retrying a fire-and-forget call
25
+ * holds the CLI process open long after its foreground work finished — breaking the very
26
+ * "never block" contract those call sites are written against. A background call that
27
+ * loses to a 429 is simply dropped; it is observability, not the user's work.
28
+ */
29
+ export type KernelCallOptions = {
30
+ retryOnRateLimit?: boolean;
31
+ skipSessionTouch?: boolean;
32
+ };
33
+ /** Applies the rate-limit retry unless the caller opted out (background calls). */
34
+ export declare function maybeRetry<T>(attempt: () => Promise<T>, options?: KernelCallOptions): Promise<T>;
35
+ export declare function shouldTouchSession(sessionId: string): boolean;
36
+ /** Test-only escape hatch — mirrors packages/mcp-server/src/client.ts's resetTouchThrottle. */
37
+ export declare function resetTouchThrottle(sessionId?: string | null): void;
38
+ //# sourceMappingURL=rate-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsBH;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAajF;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3F,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhG;AAYD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAMlE"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * WP-579 — client-side rate-limit resilience for the gateway helpers in client.ts
3
+ * (TEN-2923 touch amplification, TEN-2924 no-backoff-on-429).
4
+ *
5
+ * Split out of client.ts rather than grown inside it: these are two self-contained
6
+ * policies (when to retry a throttled call, when a session touch is worth sending) with
7
+ * their own constants and module-level state, and client.ts is at its STD-2 budget.
8
+ *
9
+ * Depends only on the error taxonomy — NOT on client.ts's `McpError` — so the two modules
10
+ * don't form an import cycle. The retry keys off the error's `code`, which is exactly what
11
+ * the guard tested before the split (`McpError` is the only thing that sets
12
+ * `code === 'rate-limited'` alongside a `retryAfterSeconds`).
13
+ */
14
+ import { ErrorCode } from './errors.js';
15
+ const MAX_RATE_LIMIT_RETRIES = 3;
16
+ const RATE_LIMIT_RETRY_JITTER_MS = 250;
17
+ /**
18
+ * Ceiling on a single honored Retry-After. The server clamps its value to the tripped
19
+ * window (convex/rateLimiter.ts `retryAfterSeconds`) — 60s for the minute window, but
20
+ * 86_400s for the DAY window. Honoring that unconditionally would park the process for up
21
+ * to a day per attempt, three attempts deep. A day-quota denial is not something to wait
22
+ * out in-process: surface it so the caller can retry out of band.
23
+ */
24
+ const MAX_RATE_LIMIT_RETRY_WAIT_SECONDS = 60;
25
+ /** Seconds to wait, if this error is a rate-limit refusal that carries a Retry-After. */
26
+ function rateLimitWaitOf(err) {
27
+ const candidate = err;
28
+ if (!candidate || candidate.code !== ErrorCode.RATE_LIMITED)
29
+ return undefined;
30
+ return typeof candidate.retryAfterSeconds === 'number' ? candidate.retryAfterSeconds : undefined;
31
+ }
32
+ /**
33
+ * TEN-2924: bounded, jittered retry for a rate-limited call. Honors the server's
34
+ * Retry-After rather than guessing a backoff curve. Only retries a rate-limit refusal —
35
+ * never a validation/auth/internal failure, which retrying unchanged would just repeat.
36
+ */
37
+ export async function withRateLimitRetry(attempt) {
38
+ for (let retries = 0;; retries++) {
39
+ try {
40
+ return await attempt();
41
+ }
42
+ catch (err) {
43
+ const waitSeconds = rateLimitWaitOf(err);
44
+ if (waitSeconds === undefined || retries >= MAX_RATE_LIMIT_RETRIES)
45
+ throw err;
46
+ // Day-window denial (or any wait we won't sit on) — fail fast rather than hang.
47
+ if (waitSeconds > MAX_RATE_LIMIT_RETRY_WAIT_SECONDS)
48
+ throw err;
49
+ const delayMs = waitSeconds * 1000 + Math.random() * RATE_LIMIT_RETRY_JITTER_MS;
50
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
51
+ }
52
+ }
53
+ }
54
+ /** Applies the rate-limit retry unless the caller opted out (background calls). */
55
+ export function maybeRetry(attempt, options) {
56
+ return options?.retryOnRateLimit === false ? attempt() : withRateLimitRetry(attempt);
57
+ }
58
+ /**
59
+ * TEN-2923: client-side throttle mirroring packages/mcp-server/src/client.ts's
60
+ * touchSessionActivity — the server already no-ops a touch made <5s after the last one
61
+ * for this session (TOUCH_SESSION_THROTTLE_MS, DEC-75), so a touch inside that window is
62
+ * pure wasted quota. Matching the server's own window here removes the waste without
63
+ * changing renewal semantics at all (a throttled call was already a server-side no-op).
64
+ */
65
+ const _lastTouchAtBySession = new Map();
66
+ const TOUCH_THROTTLE_MS = 5_000;
67
+ export function shouldTouchSession(sessionId) {
68
+ const now = Date.now();
69
+ const lastTouchAt = _lastTouchAtBySession.get(sessionId) ?? 0;
70
+ if (now - lastTouchAt < TOUCH_THROTTLE_MS)
71
+ return false;
72
+ _lastTouchAtBySession.set(sessionId, now);
73
+ return true;
74
+ }
75
+ /** Test-only escape hatch — mirrors packages/mcp-server/src/client.ts's resetTouchThrottle. */
76
+ export function resetTouchThrottle(sessionId) {
77
+ if (sessionId) {
78
+ _lastTouchAtBySession.delete(sessionId);
79
+ return;
80
+ }
81
+ _lastTouchAtBySession.clear();
82
+ }
83
+ //# sourceMappingURL=rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC;;;;;;GAMG;AACH,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAE7C,yFAAyF;AACzF,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,SAAS,GAAG,GAAwE,CAAC;IAC3F,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAC9E,OAAO,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,OAAyB;IACnE,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,IAAI,sBAAsB;gBAAE,MAAM,GAAG,CAAC;YAC9E,gFAAgF;YAChF,IAAI,WAAW,GAAG,iCAAiC;gBAAE,MAAM,GAAG,CAAC;YAC/D,MAAM,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,0BAA0B,CAAC;YAChF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAaD,mFAAmF;AACnF,MAAM,UAAU,UAAU,CAAI,OAAyB,EAAE,OAA2B;IAClF,OAAO,OAAO,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACxD,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACxD,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,SAAyB;IAC1D,IAAI,SAAS,EAAE,CAAC;QACd,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The ONE served wording for a capped readiness scan — `chain.workspaceReadiness`'s
3
+ * accepted-entry sample hit its cap, so entry counts are floors, an apparent gap may already be
4
+ * covered, and the stage verdict is unproven. One declaration per package, imported by every
5
+ * surface that discloses it.
6
+ *
7
+ * Byte-identical to the MCP twin (packages/mcp-server/src/lib/readinessNotices.ts) but
8
+ * deliberately a separate constant: mcp-server's isolated Docker build resolves no private
9
+ * workspace package at runtime, the same constraint that keeps FEEDBACK_SUBMIT_HINT duplicated
10
+ * across the two packages (see scripts/check-notice-hint-drift.mjs for that pair's guard).
11
+ */
12
+ export declare const READINESS_PROVISIONAL_LINE = "Readiness is provisional: its sample omitted accepted entries. Counts are lower bounds, apparent gaps may already be covered, and the overall stage is unverified.";
13
+ //# sourceMappingURL=readinessNotices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readinessNotices.d.ts","sourceRoot":"","sources":["../../src/lib/readinessNotices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,uKAC+H,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The ONE served wording for a capped readiness scan — `chain.workspaceReadiness`'s
3
+ * accepted-entry sample hit its cap, so entry counts are floors, an apparent gap may already be
4
+ * covered, and the stage verdict is unproven. One declaration per package, imported by every
5
+ * surface that discloses it.
6
+ *
7
+ * Byte-identical to the MCP twin (packages/mcp-server/src/lib/readinessNotices.ts) but
8
+ * deliberately a separate constant: mcp-server's isolated Docker build resolves no private
9
+ * workspace package at runtime, the same constraint that keeps FEEDBACK_SUBMIT_HINT duplicated
10
+ * across the two packages (see scripts/check-notice-hint-drift.mjs for that pair's guard).
11
+ */
12
+ export const READINESS_PROVISIONAL_LINE = 'Readiness is provisional: its sample omitted accepted entries. Counts are lower bounds, apparent gaps may already be covered, and the overall stage is unverified.';
13
+ // TASK-435 (C4c): READINESS_PROVISIONAL_STAGE_SUFFIX deleted — it existed only to append onto
14
+ // the deleted "Stage: X" line in formatters/orient.ts; that line is gone and this had no other
15
+ // consumer (repo-wide grep, zero importers).
16
+ //# sourceMappingURL=readinessNotices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readinessNotices.js","sourceRoot":"","sources":["../../src/lib/readinessNotices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,0BAA0B,GACrC,oKAAoK,CAAC;AAEvK,8FAA8F;AAC9F,+FAA+F;AAC/F,6CAA6C"}
@@ -14,11 +14,15 @@ export interface WorkspaceProfile {
14
14
  activeCount: number;
15
15
  draftCount: number;
16
16
  orphanedCount: number;
17
- governanceMode: string;
18
17
  }
19
18
  /**
20
19
  * Extract a WorkspaceProfile from the raw workspaceReadiness API response.
21
20
  * Returns null on any failure — callers must handle null (fail-open pattern).
21
+ *
22
+ * WP-751 M3a-5b (TASK-210, DEC-1700): governanceMode is deleted from the required-fields
23
+ * gate below and the returned profile — the backend workspaceReadiness response no longer
24
+ * carries it at all (role is the only governance mode now), so requiring it truthy would
25
+ * have made this function return null unconditionally instead of just dropping one field.
22
26
  */
23
27
  export declare function extractWorkspaceProfile(response: unknown): WorkspaceProfile | null;
24
28
  export interface RepoContext {