@productbrain/cli 0.1.0-beta.1131 → 0.1.0-beta.11313

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 (1452) hide show
  1. package/README.md +14 -4
  2. package/dist/__tests__/adapters.test.js +79 -53
  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__/batch-transformations.test.js +2 -26
  9. package/dist/__tests__/batch-transformations.test.js.map +1 -1
  10. package/dist/__tests__/capture-receipt-coaching.test.d.ts +2 -0
  11. package/dist/__tests__/capture-receipt-coaching.test.d.ts.map +1 -0
  12. package/dist/__tests__/capture-receipt-coaching.test.js +108 -0
  13. package/dist/__tests__/capture-receipt-coaching.test.js.map +1 -0
  14. package/dist/__tests__/capture-receipt-role-hint.test.d.ts +2 -0
  15. package/dist/__tests__/capture-receipt-role-hint.test.d.ts.map +1 -0
  16. package/dist/__tests__/capture-receipt-role-hint.test.js +64 -0
  17. package/dist/__tests__/capture-receipt-role-hint.test.js.map +1 -0
  18. package/dist/__tests__/capture-receipt-spine-floor.test.d.ts +2 -0
  19. package/dist/__tests__/capture-receipt-spine-floor.test.d.ts.map +1 -0
  20. package/dist/__tests__/capture-receipt-spine-floor.test.js +45 -0
  21. package/dist/__tests__/capture-receipt-spine-floor.test.js.map +1 -0
  22. package/dist/__tests__/capture.test.js +437 -231
  23. package/dist/__tests__/capture.test.js.map +1 -1
  24. package/dist/__tests__/cli-error-once.test.d.ts +2 -0
  25. package/dist/__tests__/cli-error-once.test.d.ts.map +1 -0
  26. package/dist/__tests__/cli-error-once.test.js +51 -0
  27. package/dist/__tests__/cli-error-once.test.js.map +1 -0
  28. package/dist/__tests__/client-binding-guard.test.d.ts +2 -0
  29. package/dist/__tests__/client-binding-guard.test.d.ts.map +1 -0
  30. package/dist/__tests__/client-binding-guard.test.js +84 -0
  31. package/dist/__tests__/client-binding-guard.test.js.map +1 -0
  32. package/dist/__tests__/coaching-mirror-drift.test.d.ts +2 -0
  33. package/dist/__tests__/coaching-mirror-drift.test.d.ts.map +1 -0
  34. package/dist/__tests__/coaching-mirror-drift.test.js +50 -0
  35. package/dist/__tests__/coaching-mirror-drift.test.js.map +1 -0
  36. package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
  37. package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
  38. package/dist/__tests__/codex-prep-parity.test.js +84 -0
  39. package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
  40. package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
  41. package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
  42. package/dist/__tests__/config-prod-fallthrough.test.js +93 -0
  43. package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
  44. package/dist/__tests__/config.test.js +559 -40
  45. package/dist/__tests__/config.test.js.map +1 -1
  46. package/dist/__tests__/constellation.test.js +26 -14
  47. package/dist/__tests__/constellation.test.js.map +1 -1
  48. package/dist/__tests__/conversation.test.d.ts +2 -0
  49. package/dist/__tests__/conversation.test.d.ts.map +1 -0
  50. package/dist/__tests__/conversation.test.js +113 -0
  51. package/dist/__tests__/conversation.test.js.map +1 -0
  52. package/dist/__tests__/entry-formatter.test.d.ts +2 -0
  53. package/dist/__tests__/entry-formatter.test.d.ts.map +1 -0
  54. package/dist/__tests__/entry-formatter.test.js +228 -0
  55. package/dist/__tests__/entry-formatter.test.js.map +1 -0
  56. package/dist/__tests__/entry-preflight.test.d.ts +2 -0
  57. package/dist/__tests__/entry-preflight.test.d.ts.map +1 -0
  58. package/dist/__tests__/entry-preflight.test.js +58 -0
  59. package/dist/__tests__/entry-preflight.test.js.map +1 -0
  60. package/dist/__tests__/entryAccept-batch.test.d.ts +2 -0
  61. package/dist/__tests__/entryAccept-batch.test.d.ts.map +1 -0
  62. package/dist/__tests__/entryAccept-batch.test.js +305 -0
  63. package/dist/__tests__/entryAccept-batch.test.js.map +1 -0
  64. package/dist/__tests__/entryAccept.test.d.ts +2 -0
  65. package/dist/__tests__/entryAccept.test.d.ts.map +1 -0
  66. package/dist/__tests__/entryAccept.test.js +582 -0
  67. package/dist/__tests__/entryAccept.test.js.map +1 -0
  68. package/dist/__tests__/entryDiscardResolve.test.d.ts +2 -0
  69. package/dist/__tests__/entryDiscardResolve.test.d.ts.map +1 -0
  70. package/dist/__tests__/entryDiscardResolve.test.js +28 -0
  71. package/dist/__tests__/entryDiscardResolve.test.js.map +1 -0
  72. package/dist/__tests__/entryOwn.test.d.ts +2 -0
  73. package/dist/__tests__/entryOwn.test.d.ts.map +1 -0
  74. package/dist/__tests__/entryOwn.test.js +50 -0
  75. package/dist/__tests__/entryOwn.test.js.map +1 -0
  76. package/dist/__tests__/entryTick.test.d.ts +2 -0
  77. package/dist/__tests__/entryTick.test.d.ts.map +1 -0
  78. package/dist/__tests__/entryTick.test.js +40 -0
  79. package/dist/__tests__/entryTick.test.js.map +1 -0
  80. package/dist/__tests__/envelope-contract.test.js +2 -0
  81. package/dist/__tests__/envelope-contract.test.js.map +1 -1
  82. package/dist/__tests__/errors.test.js +41 -0
  83. package/dist/__tests__/errors.test.js.map +1 -1
  84. package/dist/__tests__/fields.test.js +14 -3
  85. package/dist/__tests__/fields.test.js.map +1 -1
  86. package/dist/__tests__/gateway-dry-run-timeout.test.d.ts +2 -0
  87. package/dist/__tests__/gateway-dry-run-timeout.test.d.ts.map +1 -0
  88. package/dist/__tests__/gateway-dry-run-timeout.test.js +70 -0
  89. package/dist/__tests__/gateway-dry-run-timeout.test.js.map +1 -0
  90. package/dist/__tests__/gateway-timeout-body-phase.test.d.ts +2 -0
  91. package/dist/__tests__/gateway-timeout-body-phase.test.d.ts.map +1 -0
  92. package/dist/__tests__/gateway-timeout-body-phase.test.js +116 -0
  93. package/dist/__tests__/gateway-timeout-body-phase.test.js.map +1 -0
  94. package/dist/__tests__/glossary.test.js +10 -27
  95. package/dist/__tests__/glossary.test.js.map +1 -1
  96. package/dist/__tests__/health-gap-kinds-drift.test.d.ts +2 -0
  97. package/dist/__tests__/health-gap-kinds-drift.test.d.ts.map +1 -0
  98. package/dist/__tests__/health-gap-kinds-drift.test.js +43 -0
  99. package/dist/__tests__/health-gap-kinds-drift.test.js.map +1 -0
  100. package/dist/__tests__/hook-intents.test.js +31 -43
  101. package/dist/__tests__/hook-intents.test.js.map +1 -1
  102. package/dist/__tests__/init.test.d.ts +2 -1
  103. package/dist/__tests__/init.test.d.ts.map +1 -1
  104. package/dist/__tests__/init.test.js +159 -20
  105. package/dist/__tests__/init.test.js.map +1 -1
  106. package/dist/__tests__/kernel-value-sets-drift.test.d.ts +2 -0
  107. package/dist/__tests__/kernel-value-sets-drift.test.d.ts.map +1 -0
  108. package/dist/__tests__/kernel-value-sets-drift.test.js +46 -0
  109. package/dist/__tests__/kernel-value-sets-drift.test.js.map +1 -0
  110. package/dist/__tests__/kernel-value-sets-generator.test.d.ts +2 -0
  111. package/dist/__tests__/kernel-value-sets-generator.test.d.ts.map +1 -0
  112. package/dist/__tests__/kernel-value-sets-generator.test.js +108 -0
  113. package/dist/__tests__/kernel-value-sets-generator.test.js.map +1 -0
  114. package/dist/__tests__/login.test.js +18 -1
  115. package/dist/__tests__/login.test.js.map +1 -1
  116. package/dist/__tests__/missingPin.test.d.ts +11 -0
  117. package/dist/__tests__/missingPin.test.d.ts.map +1 -0
  118. package/dist/__tests__/missingPin.test.js +232 -0
  119. package/dist/__tests__/missingPin.test.js.map +1 -0
  120. package/dist/__tests__/notice-marker.test.js +146 -11
  121. package/dist/__tests__/notice-marker.test.js.map +1 -1
  122. package/dist/__tests__/orient.test.js +368 -38
  123. package/dist/__tests__/orient.test.js.map +1 -1
  124. package/dist/__tests__/perimeter.test.js +1 -1
  125. package/dist/__tests__/perimeter.test.js.map +1 -1
  126. package/dist/__tests__/preview-key-refresh.test.js +73 -13
  127. package/dist/__tests__/preview-key-refresh.test.js.map +1 -1
  128. package/dist/__tests__/profiles.test.js +498 -8
  129. package/dist/__tests__/profiles.test.js.map +1 -1
  130. package/dist/__tests__/prompts.test.js +18 -1
  131. package/dist/__tests__/prompts.test.js.map +1 -1
  132. package/dist/__tests__/rate-limit-resilience.test.d.ts +8 -0
  133. package/dist/__tests__/rate-limit-resilience.test.d.ts.map +1 -0
  134. package/dist/__tests__/rate-limit-resilience.test.js +191 -0
  135. package/dist/__tests__/rate-limit-resilience.test.js.map +1 -0
  136. package/dist/__tests__/read-target-notice.test.d.ts +2 -0
  137. package/dist/__tests__/read-target-notice.test.d.ts.map +1 -0
  138. package/dist/__tests__/read-target-notice.test.js +125 -0
  139. package/dist/__tests__/read-target-notice.test.js.map +1 -0
  140. package/dist/__tests__/relate.test.js +246 -14
  141. package/dist/__tests__/relate.test.js.map +1 -1
  142. package/dist/__tests__/removed-commands.test.d.ts +2 -0
  143. package/dist/__tests__/removed-commands.test.d.ts.map +1 -0
  144. package/dist/__tests__/removed-commands.test.js +99 -0
  145. package/dist/__tests__/removed-commands.test.js.map +1 -0
  146. package/dist/__tests__/reply-commands-registered.test.d.ts +2 -0
  147. package/dist/__tests__/reply-commands-registered.test.d.ts.map +1 -0
  148. package/dist/__tests__/reply-commands-registered.test.js +81 -0
  149. package/dist/__tests__/reply-commands-registered.test.js.map +1 -0
  150. package/dist/__tests__/repo-detect.test.js +18 -38
  151. package/dist/__tests__/repo-detect.test.js.map +1 -1
  152. package/dist/__tests__/reportedProfile.test.d.ts +2 -0
  153. package/dist/__tests__/reportedProfile.test.d.ts.map +1 -0
  154. package/dist/__tests__/reportedProfile.test.js +328 -0
  155. package/dist/__tests__/reportedProfile.test.js.map +1 -0
  156. package/dist/__tests__/restore.test.d.ts +2 -0
  157. package/dist/__tests__/restore.test.d.ts.map +1 -0
  158. package/dist/__tests__/restore.test.js +85 -0
  159. package/dist/__tests__/restore.test.js.map +1 -0
  160. package/dist/__tests__/route-latency-budget.test.d.ts +2 -0
  161. package/dist/__tests__/route-latency-budget.test.d.ts.map +1 -0
  162. package/dist/__tests__/route-latency-budget.test.js +107 -0
  163. package/dist/__tests__/route-latency-budget.test.js.map +1 -0
  164. package/dist/__tests__/runner.test.js +59 -44
  165. package/dist/__tests__/runner.test.js.map +1 -1
  166. package/dist/__tests__/session-binding-refusal-tenant.test.d.ts +2 -0
  167. package/dist/__tests__/session-binding-refusal-tenant.test.d.ts.map +1 -0
  168. package/dist/__tests__/session-binding-refusal-tenant.test.js +112 -0
  169. package/dist/__tests__/session-binding-refusal-tenant.test.js.map +1 -0
  170. package/dist/__tests__/session-close-conversation.test.d.ts +2 -0
  171. package/dist/__tests__/session-close-conversation.test.d.ts.map +1 -0
  172. package/dist/__tests__/session-close-conversation.test.js +75 -0
  173. package/dist/__tests__/session-close-conversation.test.js.map +1 -0
  174. package/dist/__tests__/session-close-loop.test.d.ts +2 -0
  175. package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
  176. package/dist/__tests__/session-close-loop.test.js +259 -0
  177. package/dist/__tests__/session-close-loop.test.js.map +1 -0
  178. package/dist/__tests__/session-label.test.d.ts +2 -0
  179. package/dist/__tests__/session-label.test.d.ts.map +1 -0
  180. package/dist/__tests__/session-label.test.js +46 -0
  181. package/dist/__tests__/session-label.test.js.map +1 -0
  182. package/dist/__tests__/session-list-show.test.d.ts +2 -0
  183. package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
  184. package/dist/__tests__/session-list-show.test.js +173 -0
  185. package/dist/__tests__/session-list-show.test.js.map +1 -0
  186. package/dist/__tests__/session-pinned-role.test.d.ts +2 -0
  187. package/dist/__tests__/session-pinned-role.test.d.ts.map +1 -0
  188. package/dist/__tests__/session-pinned-role.test.js +305 -0
  189. package/dist/__tests__/session-pinned-role.test.js.map +1 -0
  190. package/dist/__tests__/session-reset.test.js +23 -7
  191. package/dist/__tests__/session-reset.test.js.map +1 -1
  192. package/dist/__tests__/session-resume-backstop.test.js +42 -0
  193. package/dist/__tests__/session-resume-backstop.test.js.map +1 -1
  194. package/dist/__tests__/session-role-name-sanitize.test.d.ts +2 -0
  195. package/dist/__tests__/session-role-name-sanitize.test.d.ts.map +1 -0
  196. package/dist/__tests__/session-role-name-sanitize.test.js +122 -0
  197. package/dist/__tests__/session-role-name-sanitize.test.js.map +1 -0
  198. package/dist/__tests__/session-start-key-refresh.test.js +47 -28
  199. package/dist/__tests__/session-start-key-refresh.test.js.map +1 -1
  200. package/dist/__tests__/session-state-machine.test.js +190 -9
  201. package/dist/__tests__/session-state-machine.test.js.map +1 -1
  202. package/dist/__tests__/session-switch.test.js +217 -4
  203. package/dist/__tests__/session-switch.test.js.map +1 -1
  204. package/dist/__tests__/session-touch.test.js +48 -107
  205. package/dist/__tests__/session-touch.test.js.map +1 -1
  206. package/dist/__tests__/sessionBinding.test.d.ts +2 -0
  207. package/dist/__tests__/sessionBinding.test.d.ts.map +1 -0
  208. package/dist/__tests__/sessionBinding.test.js +118 -0
  209. package/dist/__tests__/sessionBinding.test.js.map +1 -0
  210. package/dist/__tests__/sessionByIdLookup.test.d.ts +2 -0
  211. package/dist/__tests__/sessionByIdLookup.test.d.ts.map +1 -0
  212. package/dist/__tests__/sessionByIdLookup.test.js +63 -0
  213. package/dist/__tests__/sessionByIdLookup.test.js.map +1 -0
  214. package/dist/__tests__/skill-vocabulary.test.d.ts +1 -1
  215. package/dist/__tests__/skill-vocabulary.test.js +7 -2
  216. package/dist/__tests__/skill-vocabulary.test.js.map +1 -1
  217. package/dist/__tests__/state.test.js +21 -1
  218. package/dist/__tests__/state.test.js.map +1 -1
  219. package/dist/__tests__/stillTrue.test.d.ts +2 -0
  220. package/dist/__tests__/stillTrue.test.d.ts.map +1 -0
  221. package/dist/__tests__/stillTrue.test.js +52 -0
  222. package/dist/__tests__/stillTrue.test.js.map +1 -0
  223. package/dist/__tests__/strip.test.js +57 -3
  224. package/dist/__tests__/strip.test.js.map +1 -1
  225. package/dist/__tests__/surfaces.test.js +3 -4
  226. package/dist/__tests__/surfaces.test.js.map +1 -1
  227. package/dist/__tests__/tenant-notice-write-path.test.d.ts +2 -0
  228. package/dist/__tests__/tenant-notice-write-path.test.d.ts.map +1 -0
  229. package/dist/__tests__/tenant-notice-write-path.test.js +183 -0
  230. package/dist/__tests__/tenant-notice-write-path.test.js.map +1 -0
  231. package/dist/__tests__/update-check.test.js +21 -1
  232. package/dist/__tests__/update-check.test.js.map +1 -1
  233. package/dist/__tests__/update.test.js +470 -8
  234. package/dist/__tests__/update.test.js.map +1 -1
  235. package/dist/__tests__/verify-formatter.test.d.ts +2 -0
  236. package/dist/__tests__/verify-formatter.test.d.ts.map +1 -0
  237. package/dist/__tests__/verify-formatter.test.js +85 -0
  238. package/dist/__tests__/verify-formatter.test.js.map +1 -0
  239. package/dist/__tests__/vocabulary-leak.test.d.ts +1 -7
  240. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -1
  241. package/dist/__tests__/vocabulary-leak.test.js +8 -115
  242. package/dist/__tests__/vocabulary-leak.test.js.map +1 -1
  243. package/dist/__tests__/workspace.test.js +11 -72
  244. package/dist/__tests__/workspace.test.js.map +1 -1
  245. package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
  246. package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
  247. package/dist/__tests__/workspaceNotice.test.js +559 -0
  248. package/dist/__tests__/workspaceNotice.test.js.map +1 -0
  249. package/dist/commands/__tests__/quality.test.d.ts +2 -0
  250. package/dist/commands/__tests__/quality.test.d.ts.map +1 -0
  251. package/dist/commands/__tests__/quality.test.js +250 -0
  252. package/dist/commands/__tests__/quality.test.js.map +1 -0
  253. package/dist/commands/__tests__/rework.test.d.ts +2 -0
  254. package/dist/commands/__tests__/rework.test.d.ts.map +1 -0
  255. package/dist/commands/__tests__/rework.test.js +149 -0
  256. package/dist/commands/__tests__/rework.test.js.map +1 -0
  257. package/dist/commands/__tests__/tensionsList.test.d.ts +2 -0
  258. package/dist/commands/__tests__/tensionsList.test.d.ts.map +1 -0
  259. package/dist/commands/__tests__/tensionsList.test.js +63 -0
  260. package/dist/commands/__tests__/tensionsList.test.js.map +1 -0
  261. package/dist/commands/accept-policy.d.ts +10 -0
  262. package/dist/commands/accept-policy.d.ts.map +1 -0
  263. package/dist/commands/accept-policy.js +107 -0
  264. package/dist/commands/accept-policy.js.map +1 -0
  265. package/dist/commands/admin/cockpit.d.ts +2 -13
  266. package/dist/commands/admin/cockpit.d.ts.map +1 -1
  267. package/dist/commands/admin/cockpit.js +5 -5
  268. package/dist/commands/admin/cockpit.js.map +1 -1
  269. package/dist/commands/admin/index.d.ts +49 -0
  270. package/dist/commands/admin/index.d.ts.map +1 -1
  271. package/dist/commands/admin/index.js +148 -29
  272. package/dist/commands/admin/index.js.map +1 -1
  273. package/dist/commands/admin/index.test.d.ts +2 -0
  274. package/dist/commands/admin/index.test.d.ts.map +1 -0
  275. package/dist/commands/admin/index.test.js +94 -0
  276. package/dist/commands/admin/index.test.js.map +1 -0
  277. package/dist/commands/admin/inspect.d.ts.map +1 -1
  278. package/dist/commands/admin/inspect.js +2 -7
  279. package/dist/commands/admin/inspect.js.map +1 -1
  280. package/dist/commands/admin/probe.d.ts +75 -0
  281. package/dist/commands/admin/probe.d.ts.map +1 -0
  282. package/dist/commands/admin/probe.js +224 -0
  283. package/dist/commands/admin/probe.js.map +1 -0
  284. package/dist/commands/admin/probe.test.d.ts +2 -0
  285. package/dist/commands/admin/probe.test.d.ts.map +1 -0
  286. package/dist/commands/admin/probe.test.js +193 -0
  287. package/dist/commands/admin/probe.test.js.map +1 -0
  288. package/dist/commands/admin/run.d.ts +43 -0
  289. package/dist/commands/admin/run.d.ts.map +1 -0
  290. package/dist/commands/admin/run.js +78 -0
  291. package/dist/commands/admin/run.js.map +1 -0
  292. package/dist/commands/admin/run.test.d.ts +18 -0
  293. package/dist/commands/admin/run.test.d.ts.map +1 -0
  294. package/dist/commands/admin/run.test.js +168 -0
  295. package/dist/commands/admin/run.test.js.map +1 -0
  296. package/dist/commands/admin/seed.d.ts +6 -21
  297. package/dist/commands/admin/seed.d.ts.map +1 -1
  298. package/dist/commands/admin/seed.js +41 -310
  299. package/dist/commands/admin/seed.js.map +1 -1
  300. package/dist/commands/admin/seed.test.d.ts +3 -4
  301. package/dist/commands/admin/seed.test.d.ts.map +1 -1
  302. package/dist/commands/admin/seed.test.js +26 -76
  303. package/dist/commands/admin/seed.test.js.map +1 -1
  304. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -1
  305. package/dist/commands/admin/seedRegistryEntries.generated.js +3 -84
  306. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -1
  307. package/dist/commands/admin/seedRegistryEntries.test.d.ts +5 -3
  308. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -1
  309. package/dist/commands/admin/seedRegistryEntries.test.js +60 -26
  310. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -1
  311. package/dist/commands/admin/seedRowType.d.ts +22 -0
  312. package/dist/commands/admin/seedRowType.d.ts.map +1 -0
  313. package/dist/commands/admin/seedRowType.js +2 -0
  314. package/dist/commands/admin/seedRowType.js.map +1 -0
  315. package/dist/commands/admin/seedStatusColor.d.ts +9 -0
  316. package/dist/commands/admin/seedStatusColor.d.ts.map +1 -0
  317. package/dist/commands/admin/seedStatusColor.js +19 -0
  318. package/dist/commands/admin/seedStatusColor.js.map +1 -0
  319. package/dist/commands/admin/seedStatusColor.test.d.ts +2 -0
  320. package/dist/commands/admin/seedStatusColor.test.d.ts.map +1 -0
  321. package/dist/commands/admin/seedStatusColor.test.js +31 -0
  322. package/dist/commands/admin/seedStatusColor.test.js.map +1 -0
  323. package/dist/commands/brief.d.ts.map +1 -1
  324. package/dist/commands/brief.js +24 -2
  325. package/dist/commands/brief.js.map +1 -1
  326. package/dist/commands/capture.d.ts +17 -16
  327. package/dist/commands/capture.d.ts.map +1 -1
  328. package/dist/commands/capture.js +105 -288
  329. package/dist/commands/capture.js.map +1 -1
  330. package/dist/commands/chain-walk.d.ts.map +1 -1
  331. package/dist/commands/chain-walk.js.map +1 -1
  332. package/dist/commands/changes.d.ts.map +1 -1
  333. package/dist/commands/changes.js.map +1 -1
  334. package/dist/commands/codex-prep.d.ts +11 -1
  335. package/dist/commands/codex-prep.d.ts.map +1 -1
  336. package/dist/commands/codex-prep.js +14 -83
  337. package/dist/commands/codex-prep.js.map +1 -1
  338. package/dist/commands/collections.d.ts +1 -1
  339. package/dist/commands/collections.d.ts.map +1 -1
  340. package/dist/commands/collections.js +1 -1
  341. package/dist/commands/collections.js.map +1 -1
  342. package/dist/commands/conflicts.d.ts +35 -0
  343. package/dist/commands/conflicts.d.ts.map +1 -0
  344. package/dist/commands/conflicts.js +194 -0
  345. package/dist/commands/conflicts.js.map +1 -0
  346. package/dist/commands/conflicts.test.d.ts +2 -0
  347. package/dist/commands/conflicts.test.d.ts.map +1 -0
  348. package/dist/commands/conflicts.test.js +179 -0
  349. package/dist/commands/conflicts.test.js.map +1 -0
  350. package/dist/commands/connect-config.test.js +11 -3
  351. package/dist/commands/connect-config.test.js.map +1 -1
  352. package/dist/commands/connect-decline.test.d.ts +2 -0
  353. package/dist/commands/connect-decline.test.d.ts.map +1 -0
  354. package/dist/commands/connect-decline.test.js +70 -0
  355. package/dist/commands/connect-decline.test.js.map +1 -0
  356. package/dist/commands/connect-integration.test.js +25 -12
  357. package/dist/commands/connect-integration.test.js.map +1 -1
  358. package/dist/commands/connect-legacy-migration.test.d.ts +2 -0
  359. package/dist/commands/connect-legacy-migration.test.d.ts.map +1 -0
  360. package/dist/commands/connect-legacy-migration.test.js +108 -0
  361. package/dist/commands/connect-legacy-migration.test.js.map +1 -0
  362. package/dist/commands/connect-redeem-failure.test.d.ts +2 -0
  363. package/dist/commands/connect-redeem-failure.test.d.ts.map +1 -0
  364. package/dist/commands/connect-redeem-failure.test.js +134 -0
  365. package/dist/commands/connect-redeem-failure.test.js.map +1 -0
  366. package/dist/commands/connect-screens.d.ts +16 -9
  367. package/dist/commands/connect-screens.d.ts.map +1 -1
  368. package/dist/commands/connect-screens.js +27 -36
  369. package/dist/commands/connect-screens.js.map +1 -1
  370. package/dist/commands/connect-screens.test.d.ts +2 -0
  371. package/dist/commands/connect-screens.test.d.ts.map +1 -0
  372. package/dist/commands/connect-screens.test.js +18 -0
  373. package/dist/commands/connect-screens.test.js.map +1 -0
  374. package/dist/commands/connect-seal.test.d.ts +2 -0
  375. package/dist/commands/connect-seal.test.d.ts.map +1 -0
  376. package/dist/commands/connect-seal.test.js +55 -0
  377. package/dist/commands/connect-seal.test.js.map +1 -0
  378. package/dist/commands/connect.d.ts +14 -11
  379. package/dist/commands/connect.d.ts.map +1 -1
  380. package/dist/commands/connect.js +236 -69
  381. package/dist/commands/connect.js.map +1 -1
  382. package/dist/commands/connect.test.js +226 -27
  383. package/dist/commands/connect.test.js.map +1 -1
  384. package/dist/commands/constellation.d.ts.map +1 -1
  385. package/dist/commands/constellation.js.map +1 -1
  386. package/dist/commands/context.d.ts.map +1 -1
  387. package/dist/commands/context.js.map +1 -1
  388. package/dist/commands/cross-cut.d.ts.map +1 -1
  389. package/dist/commands/cross-cut.js.map +1 -1
  390. package/dist/commands/direction.d.ts +10 -0
  391. package/dist/commands/direction.d.ts.map +1 -0
  392. package/dist/commands/direction.js +79 -0
  393. package/dist/commands/direction.js.map +1 -0
  394. package/dist/commands/doctor.d.ts.map +1 -1
  395. package/dist/commands/doctor.js +105 -35
  396. package/dist/commands/doctor.js.map +1 -1
  397. package/dist/commands/doctor.test.js +202 -6
  398. package/dist/commands/doctor.test.js.map +1 -1
  399. package/dist/commands/entryAccept.d.ts +26 -0
  400. package/dist/commands/entryAccept.d.ts.map +1 -0
  401. package/dist/commands/entryAccept.js +309 -0
  402. package/dist/commands/entryAccept.js.map +1 -0
  403. package/dist/commands/entryDiscardResolve.d.ts +9 -0
  404. package/dist/commands/entryDiscardResolve.d.ts.map +1 -0
  405. package/dist/commands/entryDiscardResolve.js +27 -0
  406. package/dist/commands/entryDiscardResolve.js.map +1 -0
  407. package/dist/commands/entryOwn.d.ts +5 -0
  408. package/dist/commands/entryOwn.d.ts.map +1 -0
  409. package/dist/commands/entryOwn.js +17 -0
  410. package/dist/commands/entryOwn.js.map +1 -0
  411. package/dist/commands/entryPreflight.d.ts +8 -0
  412. package/dist/commands/entryPreflight.d.ts.map +1 -0
  413. package/dist/commands/entryPreflight.js +48 -0
  414. package/dist/commands/entryPreflight.js.map +1 -0
  415. package/dist/commands/entryTick.d.ts +8 -0
  416. package/dist/commands/entryTick.d.ts.map +1 -0
  417. package/dist/commands/entryTick.js +43 -0
  418. package/dist/commands/entryTick.js.map +1 -0
  419. package/dist/commands/feedback.d.ts +39 -0
  420. package/dist/commands/feedback.d.ts.map +1 -0
  421. package/dist/commands/feedback.js +176 -0
  422. package/dist/commands/feedback.js.map +1 -0
  423. package/dist/commands/feedback.test.d.ts +2 -0
  424. package/dist/commands/feedback.test.d.ts.map +1 -0
  425. package/dist/commands/feedback.test.js +117 -0
  426. package/dist/commands/feedback.test.js.map +1 -0
  427. package/dist/commands/fields.d.ts.map +1 -1
  428. package/dist/commands/fields.js +1 -1
  429. package/dist/commands/fields.js.map +1 -1
  430. package/dist/commands/files.d.ts +26 -0
  431. package/dist/commands/files.d.ts.map +1 -0
  432. package/dist/commands/files.js +160 -0
  433. package/dist/commands/files.js.map +1 -0
  434. package/dist/commands/files.test.d.ts +2 -0
  435. package/dist/commands/files.test.d.ts.map +1 -0
  436. package/dist/commands/files.test.js +278 -0
  437. package/dist/commands/files.test.js.map +1 -0
  438. package/dist/commands/handshakeCursorSkillCleanup.d.ts +36 -0
  439. package/dist/commands/handshakeCursorSkillCleanup.d.ts.map +1 -0
  440. package/dist/commands/handshakeCursorSkillCleanup.js +110 -0
  441. package/dist/commands/handshakeCursorSkillCleanup.js.map +1 -0
  442. package/dist/commands/handshakeDriftClassification.d.ts +33 -0
  443. package/dist/commands/handshakeDriftClassification.d.ts.map +1 -0
  444. package/dist/commands/handshakeDriftClassification.js +62 -0
  445. package/dist/commands/handshakeDriftClassification.js.map +1 -0
  446. package/dist/commands/history.d.ts +32 -0
  447. package/dist/commands/history.d.ts.map +1 -0
  448. package/dist/commands/history.js +55 -0
  449. package/dist/commands/history.js.map +1 -0
  450. package/dist/commands/history.test.d.ts +2 -0
  451. package/dist/commands/history.test.d.ts.map +1 -0
  452. package/dist/commands/history.test.js +121 -0
  453. package/dist/commands/history.test.js.map +1 -0
  454. package/dist/commands/init.d.ts +15 -2
  455. package/dist/commands/init.d.ts.map +1 -1
  456. package/dist/commands/init.js +112 -14
  457. package/dist/commands/init.js.map +1 -1
  458. package/dist/commands/login.d.ts.map +1 -1
  459. package/dist/commands/login.js +15 -11
  460. package/dist/commands/login.js.map +1 -1
  461. package/dist/commands/organisation.d.ts +12 -0
  462. package/dist/commands/organisation.d.ts.map +1 -0
  463. package/dist/commands/organisation.js +146 -0
  464. package/dist/commands/organisation.js.map +1 -0
  465. package/dist/commands/organisation.test.d.ts +2 -0
  466. package/dist/commands/organisation.test.d.ts.map +1 -0
  467. package/dist/commands/organisation.test.js +116 -0
  468. package/dist/commands/organisation.test.js.map +1 -0
  469. package/dist/commands/organisationHierarchy.d.ts +15 -0
  470. package/dist/commands/organisationHierarchy.d.ts.map +1 -0
  471. package/dist/commands/organisationHierarchy.js +114 -0
  472. package/dist/commands/organisationHierarchy.js.map +1 -0
  473. package/dist/commands/organisationHierarchy.test.d.ts +2 -0
  474. package/dist/commands/organisationHierarchy.test.d.ts.map +1 -0
  475. package/dist/commands/organisationHierarchy.test.js +144 -0
  476. package/dist/commands/organisationHierarchy.test.js.map +1 -0
  477. package/dist/commands/organisationWrite.d.ts +20 -0
  478. package/dist/commands/organisationWrite.d.ts.map +1 -0
  479. package/dist/commands/organisationWrite.js +41 -0
  480. package/dist/commands/organisationWrite.js.map +1 -0
  481. package/dist/commands/orient.d.ts +45 -96
  482. package/dist/commands/orient.d.ts.map +1 -1
  483. package/dist/commands/orient.js +139 -36
  484. package/dist/commands/orient.js.map +1 -1
  485. package/dist/commands/outcome.d.ts +90 -0
  486. package/dist/commands/outcome.d.ts.map +1 -0
  487. package/dist/commands/outcome.js +201 -0
  488. package/dist/commands/outcome.js.map +1 -0
  489. package/dist/commands/outcome.test.d.ts +2 -0
  490. package/dist/commands/outcome.test.d.ts.map +1 -0
  491. package/dist/commands/outcome.test.js +320 -0
  492. package/dist/commands/outcome.test.js.map +1 -0
  493. package/dist/commands/people.d.ts +6 -0
  494. package/dist/commands/people.d.ts.map +1 -0
  495. package/dist/commands/people.js +23 -0
  496. package/dist/commands/people.js.map +1 -0
  497. package/dist/commands/people.test.d.ts +2 -0
  498. package/dist/commands/people.test.d.ts.map +1 -0
  499. package/dist/commands/people.test.js +61 -0
  500. package/dist/commands/people.test.js.map +1 -0
  501. package/dist/commands/profile.d.ts +23 -2
  502. package/dist/commands/profile.d.ts.map +1 -1
  503. package/dist/commands/profile.js +192 -35
  504. package/dist/commands/profile.js.map +1 -1
  505. package/dist/commands/quality.d.ts +28 -0
  506. package/dist/commands/quality.d.ts.map +1 -0
  507. package/dist/commands/quality.js +74 -0
  508. package/dist/commands/quality.js.map +1 -0
  509. package/dist/commands/questions.d.ts +23 -0
  510. package/dist/commands/questions.d.ts.map +1 -0
  511. package/dist/commands/questions.js +238 -0
  512. package/dist/commands/questions.js.map +1 -0
  513. package/dist/commands/questions.test.d.ts +2 -0
  514. package/dist/commands/questions.test.d.ts.map +1 -0
  515. package/dist/commands/questions.test.js +159 -0
  516. package/dist/commands/questions.test.js.map +1 -0
  517. package/dist/commands/relate.d.ts +1 -0
  518. package/dist/commands/relate.d.ts.map +1 -1
  519. package/dist/commands/relate.js +85 -13
  520. package/dist/commands/relate.js.map +1 -1
  521. package/dist/commands/restore.d.ts +2 -0
  522. package/dist/commands/restore.d.ts.map +1 -0
  523. package/dist/commands/restore.js +83 -0
  524. package/dist/commands/restore.js.map +1 -0
  525. package/dist/commands/rework.d.ts +24 -0
  526. package/dist/commands/rework.d.ts.map +1 -0
  527. package/dist/commands/rework.js +97 -0
  528. package/dist/commands/rework.js.map +1 -0
  529. package/dist/commands/role.d.ts +88 -0
  530. package/dist/commands/role.d.ts.map +1 -0
  531. package/dist/commands/role.js +235 -0
  532. package/dist/commands/role.js.map +1 -0
  533. package/dist/commands/role.test.d.ts +2 -0
  534. package/dist/commands/role.test.d.ts.map +1 -0
  535. package/dist/commands/role.test.js +348 -0
  536. package/dist/commands/role.test.js.map +1 -0
  537. package/dist/commands/scoreboard.d.ts +26 -0
  538. package/dist/commands/scoreboard.d.ts.map +1 -0
  539. package/dist/commands/scoreboard.js +40 -0
  540. package/dist/commands/scoreboard.js.map +1 -0
  541. package/dist/commands/search.d.ts +2 -1
  542. package/dist/commands/search.d.ts.map +1 -1
  543. package/dist/commands/search.js +5 -4
  544. package/dist/commands/search.js.map +1 -1
  545. package/dist/commands/session.d.ts +36 -5
  546. package/dist/commands/session.d.ts.map +1 -1
  547. package/dist/commands/session.js +301 -155
  548. package/dist/commands/session.js.map +1 -1
  549. package/dist/commands/status.d.ts +7 -0
  550. package/dist/commands/status.d.ts.map +1 -0
  551. package/dist/commands/status.js +101 -0
  552. package/dist/commands/status.js.map +1 -0
  553. package/dist/commands/status.test.d.ts +2 -0
  554. package/dist/commands/status.test.d.ts.map +1 -0
  555. package/dist/commands/status.test.js +75 -0
  556. package/dist/commands/status.test.js.map +1 -0
  557. package/dist/commands/stillTrue.d.ts +14 -0
  558. package/dist/commands/stillTrue.d.ts.map +1 -0
  559. package/dist/commands/stillTrue.js +48 -0
  560. package/dist/commands/stillTrue.js.map +1 -0
  561. package/dist/commands/tensionsList.d.ts +5 -0
  562. package/dist/commands/tensionsList.d.ts.map +1 -0
  563. package/dist/commands/tensionsList.js +27 -0
  564. package/dist/commands/tensionsList.js.map +1 -0
  565. package/dist/commands/update.d.ts +21 -0
  566. package/dist/commands/update.d.ts.map +1 -1
  567. package/dist/commands/update.js +175 -42
  568. package/dist/commands/update.js.map +1 -1
  569. package/dist/commands/usage.d.ts.map +1 -1
  570. package/dist/commands/usage.js +0 -18
  571. package/dist/commands/usage.js.map +1 -1
  572. package/dist/commands/verify.d.ts.map +1 -1
  573. package/dist/commands/verify.js +5 -0
  574. package/dist/commands/verify.js.map +1 -1
  575. package/dist/commands/welcome.d.ts.map +1 -1
  576. package/dist/commands/welcome.js +5 -2
  577. package/dist/commands/welcome.js.map +1 -1
  578. package/dist/commands/whoami.d.ts +10 -2
  579. package/dist/commands/whoami.d.ts.map +1 -1
  580. package/dist/commands/whoami.js +76 -20
  581. package/dist/commands/whoami.js.map +1 -1
  582. package/dist/commands/whoami.test.js +86 -6
  583. package/dist/commands/whoami.test.js.map +1 -1
  584. package/dist/commands/workspace.d.ts +7 -74
  585. package/dist/commands/workspace.d.ts.map +1 -1
  586. package/dist/commands/workspace.js +9 -70
  587. package/dist/commands/workspace.js.map +1 -1
  588. package/dist/formatters/__tests__/orient-plannedWorkCut.test.d.ts +2 -0
  589. package/dist/formatters/__tests__/orient-plannedWorkCut.test.d.ts.map +1 -0
  590. package/dist/formatters/__tests__/orient-plannedWorkCut.test.js +49 -0
  591. package/dist/formatters/__tests__/orient-plannedWorkCut.test.js.map +1 -0
  592. package/dist/formatters/__tests__/orient-provenance.test.d.ts +2 -3
  593. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -1
  594. package/dist/formatters/__tests__/orient-provenance.test.js +41 -176
  595. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -1
  596. package/dist/formatters/__tests__/orient-ruleLists.test.d.ts +2 -0
  597. package/dist/formatters/__tests__/orient-ruleLists.test.d.ts.map +1 -0
  598. package/dist/formatters/__tests__/orient-ruleLists.test.js +93 -0
  599. package/dist/formatters/__tests__/orient-ruleLists.test.js.map +1 -0
  600. package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
  601. package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
  602. package/dist/formatters/__tests__/session-list-show.test.js +195 -0
  603. package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
  604. package/dist/formatters/__tests__/session.test.js +172 -8
  605. package/dist/formatters/__tests__/session.test.js.map +1 -1
  606. package/dist/formatters/__tests__/tensionsList.test.d.ts +2 -0
  607. package/dist/formatters/__tests__/tensionsList.test.d.ts.map +1 -0
  608. package/dist/formatters/__tests__/tensionsList.test.js +30 -0
  609. package/dist/formatters/__tests__/tensionsList.test.js.map +1 -0
  610. package/dist/formatters/brief.d.ts +6 -15
  611. package/dist/formatters/brief.d.ts.map +1 -1
  612. package/dist/formatters/brief.js +16 -14
  613. package/dist/formatters/brief.js.map +1 -1
  614. package/dist/formatters/brief.test.d.ts +2 -0
  615. package/dist/formatters/brief.test.d.ts.map +1 -0
  616. package/dist/formatters/brief.test.js +21 -0
  617. package/dist/formatters/brief.test.js.map +1 -0
  618. package/dist/formatters/capture.d.ts +24 -13
  619. package/dist/formatters/capture.d.ts.map +1 -1
  620. package/dist/formatters/capture.js +36 -14
  621. package/dist/formatters/capture.js.map +1 -1
  622. package/dist/formatters/coaching.d.ts +59 -0
  623. package/dist/formatters/coaching.d.ts.map +1 -0
  624. package/dist/formatters/coaching.js +51 -0
  625. package/dist/formatters/coaching.js.map +1 -0
  626. package/dist/formatters/collections.d.ts +0 -1
  627. package/dist/formatters/collections.d.ts.map +1 -1
  628. package/dist/formatters/collections.js +14 -5
  629. package/dist/formatters/collections.js.map +1 -1
  630. package/dist/formatters/conflicts.d.ts +71 -0
  631. package/dist/formatters/conflicts.d.ts.map +1 -0
  632. package/dist/formatters/conflicts.js +105 -0
  633. package/dist/formatters/conflicts.js.map +1 -0
  634. package/dist/formatters/conflicts.test.d.ts +2 -0
  635. package/dist/formatters/conflicts.test.d.ts.map +1 -0
  636. package/dist/formatters/conflicts.test.js +166 -0
  637. package/dist/formatters/conflicts.test.js.map +1 -0
  638. package/dist/formatters/context.d.ts +1 -1
  639. package/dist/formatters/context.d.ts.map +1 -1
  640. package/dist/formatters/context.js.map +1 -1
  641. package/dist/formatters/direction.d.ts +48 -0
  642. package/dist/formatters/direction.d.ts.map +1 -0
  643. package/dist/formatters/direction.js +75 -0
  644. package/dist/formatters/direction.js.map +1 -0
  645. package/dist/formatters/direction.test.d.ts +2 -0
  646. package/dist/formatters/direction.test.d.ts.map +1 -0
  647. package/dist/formatters/direction.test.js +70 -0
  648. package/dist/formatters/direction.test.js.map +1 -0
  649. package/dist/formatters/entry.d.ts +56 -3
  650. package/dist/formatters/entry.d.ts.map +1 -1
  651. package/dist/formatters/entry.js +69 -8
  652. package/dist/formatters/entry.js.map +1 -1
  653. package/dist/formatters/entryAccept.d.ts +83 -0
  654. package/dist/formatters/entryAccept.d.ts.map +1 -0
  655. package/dist/formatters/entryAccept.js +79 -0
  656. package/dist/formatters/entryAccept.js.map +1 -0
  657. package/dist/formatters/feedback.d.ts +61 -0
  658. package/dist/formatters/feedback.d.ts.map +1 -0
  659. package/dist/formatters/feedback.js +95 -0
  660. package/dist/formatters/feedback.js.map +1 -0
  661. package/dist/formatters/feedback.test.d.ts +2 -0
  662. package/dist/formatters/feedback.test.d.ts.map +1 -0
  663. package/dist/formatters/feedback.test.js +142 -0
  664. package/dist/formatters/feedback.test.js.map +1 -0
  665. package/dist/formatters/fields.d.ts +7 -1
  666. package/dist/formatters/fields.d.ts.map +1 -1
  667. package/dist/formatters/fields.js +9 -3
  668. package/dist/formatters/fields.js.map +1 -1
  669. package/dist/formatters/fields.test.d.ts +2 -0
  670. package/dist/formatters/fields.test.d.ts.map +1 -0
  671. package/dist/formatters/fields.test.js +42 -0
  672. package/dist/formatters/fields.test.js.map +1 -0
  673. package/dist/formatters/handshake.d.ts +24 -6
  674. package/dist/formatters/handshake.d.ts.map +1 -1
  675. package/dist/formatters/handshake.js +34 -15
  676. package/dist/formatters/handshake.js.map +1 -1
  677. package/dist/formatters/orient.coherencyCheckTag.test.d.ts +2 -0
  678. package/dist/formatters/orient.coherencyCheckTag.test.d.ts.map +1 -0
  679. package/dist/formatters/orient.coherencyCheckTag.test.js +22 -0
  680. package/dist/formatters/orient.coherencyCheckTag.test.js.map +1 -0
  681. package/dist/formatters/orient.d.ts +92 -145
  682. package/dist/formatters/orient.d.ts.map +1 -1
  683. package/dist/formatters/orient.js +143 -183
  684. package/dist/formatters/orient.js.map +1 -1
  685. package/dist/formatters/orient.rcrtMiss.test.d.ts +2 -0
  686. package/dist/formatters/orient.rcrtMiss.test.d.ts.map +1 -0
  687. package/dist/formatters/orient.rcrtMiss.test.js +77 -0
  688. package/dist/formatters/orient.rcrtMiss.test.js.map +1 -0
  689. package/dist/formatters/orient.rituals.test.d.ts +2 -0
  690. package/dist/formatters/orient.rituals.test.d.ts.map +1 -0
  691. package/dist/formatters/orient.rituals.test.js +72 -0
  692. package/dist/formatters/orient.rituals.test.js.map +1 -0
  693. package/dist/formatters/orientDegradation.d.ts +38 -0
  694. package/dist/formatters/orientDegradation.d.ts.map +1 -0
  695. package/dist/formatters/orientDegradation.js +50 -0
  696. package/dist/formatters/orientDegradation.js.map +1 -0
  697. package/dist/formatters/orientDegradation.test.d.ts +2 -0
  698. package/dist/formatters/orientDegradation.test.d.ts.map +1 -0
  699. package/dist/formatters/orientDegradation.test.js +28 -0
  700. package/dist/formatters/orientDegradation.test.js.map +1 -0
  701. package/dist/formatters/orientDirection.d.ts +25 -0
  702. package/dist/formatters/orientDirection.d.ts.map +1 -0
  703. package/dist/formatters/orientDirection.js +7 -0
  704. package/dist/formatters/orientDirection.js.map +1 -0
  705. package/dist/formatters/orientDirection.test.d.ts +2 -0
  706. package/dist/formatters/orientDirection.test.d.ts.map +1 -0
  707. package/dist/formatters/orientDirection.test.js +48 -0
  708. package/dist/formatters/orientDirection.test.js.map +1 -0
  709. package/dist/formatters/orientRetrievalMiss.d.ts +22 -0
  710. package/dist/formatters/orientRetrievalMiss.d.ts.map +1 -0
  711. package/dist/formatters/orientRetrievalMiss.js +17 -0
  712. package/dist/formatters/orientRetrievalMiss.js.map +1 -0
  713. package/dist/formatters/plannedWorkCounts.d.ts +19 -0
  714. package/dist/formatters/plannedWorkCounts.d.ts.map +1 -0
  715. package/dist/formatters/plannedWorkCounts.js +17 -0
  716. package/dist/formatters/plannedWorkCounts.js.map +1 -0
  717. package/dist/formatters/qualityChecks.d.ts +14 -0
  718. package/dist/formatters/qualityChecks.d.ts.map +1 -0
  719. package/dist/formatters/qualityChecks.js +97 -0
  720. package/dist/formatters/qualityChecks.js.map +1 -0
  721. package/dist/formatters/questions.d.ts +76 -0
  722. package/dist/formatters/questions.d.ts.map +1 -0
  723. package/dist/formatters/questions.js +122 -0
  724. package/dist/formatters/questions.js.map +1 -0
  725. package/dist/formatters/questions.test.d.ts +2 -0
  726. package/dist/formatters/questions.test.d.ts.map +1 -0
  727. package/dist/formatters/questions.test.js +156 -0
  728. package/dist/formatters/questions.test.js.map +1 -0
  729. package/dist/formatters/relate.d.ts +13 -2
  730. package/dist/formatters/relate.d.ts.map +1 -1
  731. package/dist/formatters/relate.js +15 -5
  732. package/dist/formatters/relate.js.map +1 -1
  733. package/dist/formatters/relate.test.d.ts +2 -0
  734. package/dist/formatters/relate.test.d.ts.map +1 -0
  735. package/dist/formatters/relate.test.js +91 -0
  736. package/dist/formatters/relate.test.js.map +1 -0
  737. package/dist/formatters/scoreboard.d.ts +11 -0
  738. package/dist/formatters/scoreboard.d.ts.map +1 -0
  739. package/dist/formatters/scoreboard.js +156 -0
  740. package/dist/formatters/scoreboard.js.map +1 -0
  741. package/dist/formatters/scoreboard.test.d.ts +2 -0
  742. package/dist/formatters/scoreboard.test.d.ts.map +1 -0
  743. package/dist/formatters/scoreboard.test.js +284 -0
  744. package/dist/formatters/scoreboard.test.js.map +1 -0
  745. package/dist/formatters/search.d.ts +24 -0
  746. package/dist/formatters/search.d.ts.map +1 -1
  747. package/dist/formatters/search.js +26 -11
  748. package/dist/formatters/search.js.map +1 -1
  749. package/dist/formatters/search.test.d.ts +2 -0
  750. package/dist/formatters/search.test.d.ts.map +1 -0
  751. package/dist/formatters/search.test.js +86 -0
  752. package/dist/formatters/search.test.js.map +1 -0
  753. package/dist/formatters/session-feedback.test.d.ts +2 -0
  754. package/dist/formatters/session-feedback.test.d.ts.map +1 -0
  755. package/dist/formatters/session-feedback.test.js +124 -0
  756. package/dist/formatters/session-feedback.test.js.map +1 -0
  757. package/dist/formatters/session.d.ts +121 -5
  758. package/dist/formatters/session.d.ts.map +1 -1
  759. package/dist/formatters/session.js +316 -31
  760. package/dist/formatters/session.js.map +1 -1
  761. package/dist/formatters/spineCheck.d.ts +14 -0
  762. package/dist/formatters/spineCheck.d.ts.map +1 -0
  763. package/dist/formatters/spineCheck.js +113 -0
  764. package/dist/formatters/spineCheck.js.map +1 -0
  765. package/dist/formatters/spineCheck.test.d.ts +2 -0
  766. package/dist/formatters/spineCheck.test.d.ts.map +1 -0
  767. package/dist/formatters/spineCheck.test.js +76 -0
  768. package/dist/formatters/spineCheck.test.js.map +1 -0
  769. package/dist/formatters/tensionsList.d.ts +17 -0
  770. package/dist/formatters/tensionsList.d.ts.map +1 -0
  771. package/dist/formatters/tensionsList.js +33 -0
  772. package/dist/formatters/tensionsList.js.map +1 -0
  773. package/dist/formatters/update.d.ts +26 -0
  774. package/dist/formatters/update.d.ts.map +1 -1
  775. package/dist/formatters/update.js +39 -7
  776. package/dist/formatters/update.js.map +1 -1
  777. package/dist/formatters/update.test.d.ts +2 -0
  778. package/dist/formatters/update.test.d.ts.map +1 -0
  779. package/dist/formatters/update.test.js +71 -0
  780. package/dist/formatters/update.test.js.map +1 -0
  781. package/dist/formatters/verify.d.ts +12 -4
  782. package/dist/formatters/verify.d.ts.map +1 -1
  783. package/dist/formatters/verify.js +20 -2
  784. package/dist/formatters/verify.js.map +1 -1
  785. package/dist/generated/healthGapKinds.generated.d.ts +12 -0
  786. package/dist/generated/healthGapKinds.generated.d.ts.map +1 -0
  787. package/dist/generated/healthGapKinds.generated.js +16 -0
  788. package/dist/generated/healthGapKinds.generated.js.map +1 -0
  789. package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts +12 -0
  790. package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts.map +1 -0
  791. package/dist/generated/organisationalAuthorityRefusalCodes.generated.js +11 -0
  792. package/dist/generated/organisationalAuthorityRefusalCodes.generated.js.map +1 -0
  793. package/dist/generated/routeLatencyBudget.generated.d.ts +54 -0
  794. package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -0
  795. package/dist/generated/routeLatencyBudget.generated.js +264 -0
  796. package/dist/generated/routeLatencyBudget.generated.js.map +1 -0
  797. package/dist/generated/sourceSurfaces.generated.d.ts +12 -0
  798. package/dist/generated/sourceSurfaces.generated.d.ts.map +1 -0
  799. package/dist/generated/sourceSurfaces.generated.js +11 -0
  800. package/dist/generated/sourceSurfaces.generated.js.map +1 -0
  801. package/dist/generators/adapters.d.ts +39 -6
  802. package/dist/generators/adapters.d.ts.map +1 -1
  803. package/dist/generators/adapters.js +88 -89
  804. package/dist/generators/adapters.js.map +1 -1
  805. package/dist/generators/adapters.test.js +14 -6
  806. package/dist/generators/adapters.test.js.map +1 -1
  807. package/dist/generators/briefing-projections.test.d.ts +2 -0
  808. package/dist/generators/briefing-projections.test.d.ts.map +1 -0
  809. package/dist/generators/briefing-projections.test.js +98 -0
  810. package/dist/generators/briefing-projections.test.js.map +1 -0
  811. package/dist/generators/context-md.d.ts +7 -2
  812. package/dist/generators/context-md.d.ts.map +1 -1
  813. package/dist/generators/context-md.js +14 -53
  814. package/dist/generators/context-md.js.map +1 -1
  815. package/dist/generators/everyone-rules-md.d.ts +9 -0
  816. package/dist/generators/everyone-rules-md.d.ts.map +1 -0
  817. package/dist/generators/everyone-rules-md.js +21 -0
  818. package/dist/generators/everyone-rules-md.js.map +1 -0
  819. package/dist/generators/noProjectionAssets.d.ts +15 -0
  820. package/dist/generators/noProjectionAssets.d.ts.map +1 -0
  821. package/dist/generators/noProjectionAssets.js +6 -0
  822. package/dist/generators/noProjectionAssets.js.map +1 -0
  823. package/dist/generators/portable-knowledge.d.ts +9 -26
  824. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  825. package/dist/generators/portable-knowledge.js +11 -125
  826. package/dist/generators/portable-knowledge.js.map +1 -1
  827. package/dist/generators/portable-knowledge.test.js +82 -267
  828. package/dist/generators/portable-knowledge.test.js.map +1 -1
  829. package/dist/generators/region-projections.d.ts +0 -1
  830. package/dist/generators/region-projections.d.ts.map +1 -1
  831. package/dist/generators/region-projections.js +7 -5
  832. package/dist/generators/region-projections.js.map +1 -1
  833. package/dist/generators/region-projections.test.js +10 -15
  834. package/dist/generators/region-projections.test.js.map +1 -1
  835. package/dist/generators/region.test.js +9 -10
  836. package/dist/generators/region.test.js.map +1 -1
  837. package/dist/generators/retired-projections.d.ts +12 -0
  838. package/dist/generators/retired-projections.d.ts.map +1 -0
  839. package/dist/generators/retired-projections.js +75 -0
  840. package/dist/generators/retired-projections.js.map +1 -0
  841. package/dist/generators/retired-projections.test.d.ts +2 -0
  842. package/dist/generators/retired-projections.test.d.ts.map +1 -0
  843. package/dist/generators/retired-projections.test.js +64 -0
  844. package/dist/generators/retired-projections.test.js.map +1 -0
  845. package/dist/handleCliError.d.ts +30 -0
  846. package/dist/handleCliError.d.ts.map +1 -0
  847. package/dist/handleCliError.js +91 -0
  848. package/dist/handleCliError.js.map +1 -0
  849. package/dist/index.d.ts +0 -5
  850. package/dist/index.d.ts.map +1 -1
  851. package/dist/index.js +166 -608
  852. package/dist/index.js.map +1 -1
  853. package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
  854. package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
  855. package/dist/lib/__tests__/parseFields.test.js +40 -0
  856. package/dist/lib/__tests__/parseFields.test.js.map +1 -0
  857. package/dist/lib/adminConfig.d.ts +48 -0
  858. package/dist/lib/adminConfig.d.ts.map +1 -0
  859. package/dist/lib/adminConfig.js +130 -0
  860. package/dist/lib/adminConfig.js.map +1 -0
  861. package/dist/lib/canonicalRefs.d.ts +27 -8
  862. package/dist/lib/canonicalRefs.d.ts.map +1 -1
  863. package/dist/lib/canonicalRefs.js +25 -6
  864. package/dist/lib/canonicalRefs.js.map +1 -1
  865. package/dist/lib/captureLink.d.ts +7 -0
  866. package/dist/lib/captureLink.d.ts.map +1 -0
  867. package/dist/lib/captureLink.js +29 -0
  868. package/dist/lib/captureLink.js.map +1 -0
  869. package/dist/lib/checklist.d.ts +32 -0
  870. package/dist/lib/checklist.d.ts.map +1 -0
  871. package/dist/lib/checklist.js +79 -0
  872. package/dist/lib/checklist.js.map +1 -0
  873. package/dist/lib/client.d.ts +38 -24
  874. package/dist/lib/client.d.ts.map +1 -1
  875. package/dist/lib/client.js +209 -102
  876. package/dist/lib/client.js.map +1 -1
  877. package/dist/lib/commanderOptions.d.ts +8 -0
  878. package/dist/lib/commanderOptions.d.ts.map +1 -0
  879. package/dist/lib/commanderOptions.js +10 -0
  880. package/dist/lib/commanderOptions.js.map +1 -0
  881. package/dist/lib/compose-wrapup-view.d.ts +68 -0
  882. package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
  883. package/dist/lib/compose-wrapup-view.js +40 -0
  884. package/dist/lib/compose-wrapup-view.js.map +1 -0
  885. package/dist/lib/config.d.ts +43 -111
  886. package/dist/lib/config.d.ts.map +1 -1
  887. package/dist/lib/config.js +103 -309
  888. package/dist/lib/config.js.map +1 -1
  889. package/dist/lib/configResult.d.ts +102 -0
  890. package/dist/lib/configResult.d.ts.map +1 -0
  891. package/dist/lib/configResult.js +179 -0
  892. package/dist/lib/configResult.js.map +1 -0
  893. package/dist/lib/connectProfileName.d.ts +36 -0
  894. package/dist/lib/connectProfileName.d.ts.map +1 -0
  895. package/dist/lib/connectProfileName.js +72 -0
  896. package/dist/lib/connectProfileName.js.map +1 -0
  897. package/dist/lib/connectProfileName.test.d.ts +2 -0
  898. package/dist/lib/connectProfileName.test.d.ts.map +1 -0
  899. package/dist/lib/connectProfileName.test.js +100 -0
  900. package/dist/lib/connectProfileName.test.js.map +1 -0
  901. package/dist/lib/constants.d.ts +3 -0
  902. package/dist/lib/constants.d.ts.map +1 -1
  903. package/dist/lib/constants.js +3 -0
  904. package/dist/lib/constants.js.map +1 -1
  905. package/dist/lib/conversation.d.ts +36 -0
  906. package/dist/lib/conversation.d.ts.map +1 -0
  907. package/dist/lib/conversation.js +66 -0
  908. package/dist/lib/conversation.js.map +1 -0
  909. package/dist/lib/createEntryResult.d.ts +34 -0
  910. package/dist/lib/createEntryResult.d.ts.map +1 -0
  911. package/dist/lib/createEntryResult.js +12 -0
  912. package/dist/lib/createEntryResult.js.map +1 -0
  913. package/dist/lib/deployment.js +2 -2
  914. package/dist/lib/deployment.js.map +1 -1
  915. package/dist/lib/deployment.test.js +20 -1
  916. package/dist/lib/deployment.test.js.map +1 -1
  917. package/dist/lib/envKeySnapshot.d.ts +10 -0
  918. package/dist/lib/envKeySnapshot.d.ts.map +1 -0
  919. package/dist/lib/envKeySnapshot.js +30 -0
  920. package/dist/lib/envKeySnapshot.js.map +1 -0
  921. package/dist/lib/errors.d.ts +90 -0
  922. package/dist/lib/errors.d.ts.map +1 -1
  923. package/dist/lib/errors.js +83 -0
  924. package/dist/lib/errors.js.map +1 -1
  925. package/dist/lib/frontmatter.d.ts +55 -0
  926. package/dist/lib/frontmatter.d.ts.map +1 -0
  927. package/dist/lib/frontmatter.js +92 -0
  928. package/dist/lib/frontmatter.js.map +1 -0
  929. package/dist/lib/frontmatter.test.d.ts +15 -0
  930. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  931. package/dist/lib/frontmatter.test.js +98 -0
  932. package/dist/lib/frontmatter.test.js.map +1 -0
  933. package/dist/lib/gatewayTimeout.d.ts +88 -0
  934. package/dist/lib/gatewayTimeout.d.ts.map +1 -0
  935. package/dist/lib/gatewayTimeout.js +118 -0
  936. package/dist/lib/gatewayTimeout.js.map +1 -0
  937. package/dist/lib/gitEnvLeakKeysParity.test.d.ts +2 -0
  938. package/dist/lib/gitEnvLeakKeysParity.test.d.ts.map +1 -0
  939. package/dist/lib/gitEnvLeakKeysParity.test.js +73 -0
  940. package/dist/lib/gitEnvLeakKeysParity.test.js.map +1 -0
  941. package/dist/lib/glossary.d.ts +3 -15
  942. package/dist/lib/glossary.d.ts.map +1 -1
  943. package/dist/lib/glossary.js +6 -47
  944. package/dist/lib/glossary.js.map +1 -1
  945. package/dist/lib/hook-intents.d.ts +9 -4
  946. package/dist/lib/hook-intents.d.ts.map +1 -1
  947. package/dist/lib/hook-intents.js +10 -11
  948. package/dist/lib/hook-intents.js.map +1 -1
  949. package/dist/lib/judgeWait.d.ts +50 -0
  950. package/dist/lib/judgeWait.d.ts.map +1 -0
  951. package/dist/lib/judgeWait.js +64 -0
  952. package/dist/lib/judgeWait.js.map +1 -0
  953. package/dist/lib/kernelEnvelope.d.ts +42 -0
  954. package/dist/lib/kernelEnvelope.d.ts.map +1 -0
  955. package/dist/lib/kernelEnvelope.js +67 -0
  956. package/dist/lib/kernelEnvelope.js.map +1 -0
  957. package/dist/lib/localBinding.d.ts +86 -0
  958. package/dist/lib/localBinding.d.ts.map +1 -0
  959. package/dist/lib/localBinding.js +173 -0
  960. package/dist/lib/localBinding.js.map +1 -0
  961. package/dist/lib/normalizeMaterializedFilename.d.ts +3 -3
  962. package/dist/lib/normalizeMaterializedFilename.js +3 -3
  963. package/dist/lib/notice-marker.d.ts.map +1 -1
  964. package/dist/lib/notice-marker.js +186 -16
  965. package/dist/lib/notice-marker.js.map +1 -1
  966. package/dist/lib/outcomeObjectiveLines.d.ts +30 -0
  967. package/dist/lib/outcomeObjectiveLines.d.ts.map +1 -0
  968. package/dist/lib/outcomeObjectiveLines.js +29 -0
  969. package/dist/lib/outcomeObjectiveLines.js.map +1 -0
  970. package/dist/lib/ownerLine.d.ts +90 -0
  971. package/dist/lib/ownerLine.d.ts.map +1 -0
  972. package/dist/lib/ownerLine.js +77 -0
  973. package/dist/lib/ownerLine.js.map +1 -0
  974. package/dist/lib/parseFields.d.ts +19 -0
  975. package/dist/lib/parseFields.d.ts.map +1 -0
  976. package/dist/lib/parseFields.js +49 -0
  977. package/dist/lib/parseFields.js.map +1 -0
  978. package/dist/lib/pinnedRole.d.ts +28 -0
  979. package/dist/lib/pinnedRole.d.ts.map +1 -0
  980. package/dist/lib/pinnedRole.js +106 -0
  981. package/dist/lib/pinnedRole.js.map +1 -0
  982. package/dist/lib/platformGlossary.d.ts +22 -0
  983. package/dist/lib/platformGlossary.d.ts.map +1 -0
  984. package/dist/lib/platformGlossary.js +26 -0
  985. package/dist/lib/platformGlossary.js.map +1 -0
  986. package/dist/lib/previewBanner.d.ts +9 -0
  987. package/dist/lib/previewBanner.d.ts.map +1 -0
  988. package/dist/lib/previewBanner.js +36 -0
  989. package/dist/lib/previewBanner.js.map +1 -0
  990. package/dist/lib/productbrain-files.d.ts +108 -0
  991. package/dist/lib/productbrain-files.d.ts.map +1 -0
  992. package/dist/lib/productbrain-files.js +240 -0
  993. package/dist/lib/productbrain-files.js.map +1 -0
  994. package/dist/lib/productbrain-files.test.d.ts +2 -0
  995. package/dist/lib/productbrain-files.test.d.ts.map +1 -0
  996. package/dist/lib/productbrain-files.test.js +518 -0
  997. package/dist/lib/productbrain-files.test.js.map +1 -0
  998. package/dist/lib/profiles.d.ts +52 -4
  999. package/dist/lib/profiles.d.ts.map +1 -1
  1000. package/dist/lib/profiles.js +72 -21
  1001. package/dist/lib/profiles.js.map +1 -1
  1002. package/dist/lib/projectConfig.d.ts +121 -0
  1003. package/dist/lib/projectConfig.d.ts.map +1 -0
  1004. package/dist/lib/projectConfig.js +226 -0
  1005. package/dist/lib/projectConfig.js.map +1 -0
  1006. package/dist/lib/prompts.d.ts +2 -0
  1007. package/dist/lib/prompts.d.ts.map +1 -1
  1008. package/dist/lib/prompts.js +2 -0
  1009. package/dist/lib/prompts.js.map +1 -1
  1010. package/dist/lib/proseBody.d.ts +14 -0
  1011. package/dist/lib/proseBody.d.ts.map +1 -0
  1012. package/dist/lib/proseBody.js +25 -0
  1013. package/dist/lib/proseBody.js.map +1 -0
  1014. package/dist/lib/rate-limit.d.ts +34 -0
  1015. package/dist/lib/rate-limit.d.ts.map +1 -0
  1016. package/dist/lib/rate-limit.js +89 -0
  1017. package/dist/lib/rate-limit.js.map +1 -0
  1018. package/dist/lib/readinessNotices.d.ts +12 -0
  1019. package/dist/lib/readinessNotices.d.ts.map +1 -0
  1020. package/dist/lib/readinessNotices.js +15 -0
  1021. package/dist/lib/readinessNotices.js.map +1 -0
  1022. package/dist/lib/repo-detect.d.ts +8 -2
  1023. package/dist/lib/repo-detect.d.ts.map +1 -1
  1024. package/dist/lib/repo-detect.js +11 -6
  1025. package/dist/lib/repo-detect.js.map +1 -1
  1026. package/dist/lib/reportedProfile.d.ts +18 -0
  1027. package/dist/lib/reportedProfile.d.ts.map +1 -0
  1028. package/dist/lib/reportedProfile.js +144 -0
  1029. package/dist/lib/reportedProfile.js.map +1 -0
  1030. package/dist/lib/restsOn.d.ts +33 -0
  1031. package/dist/lib/restsOn.d.ts.map +1 -0
  1032. package/dist/lib/restsOn.js +34 -0
  1033. package/dist/lib/restsOn.js.map +1 -0
  1034. package/dist/lib/ruleListRender.d.ts +268 -0
  1035. package/dist/lib/ruleListRender.d.ts.map +1 -0
  1036. package/dist/lib/ruleListRender.js +350 -0
  1037. package/dist/lib/ruleListRender.js.map +1 -0
  1038. package/dist/lib/runner.d.ts +9 -1
  1039. package/dist/lib/runner.d.ts.map +1 -1
  1040. package/dist/lib/runner.js +30 -4
  1041. package/dist/lib/runner.js.map +1 -1
  1042. package/dist/lib/seatSentence.d.ts +62 -0
  1043. package/dist/lib/seatSentence.d.ts.map +1 -0
  1044. package/dist/lib/seatSentence.js +82 -0
  1045. package/dist/lib/seatSentence.js.map +1 -0
  1046. package/dist/lib/session.d.ts +86 -12
  1047. package/dist/lib/session.d.ts.map +1 -1
  1048. package/dist/lib/session.js +243 -24
  1049. package/dist/lib/session.js.map +1 -1
  1050. package/dist/lib/sessionBinding.d.ts +61 -0
  1051. package/dist/lib/sessionBinding.d.ts.map +1 -0
  1052. package/dist/lib/sessionBinding.js +125 -0
  1053. package/dist/lib/sessionBinding.js.map +1 -0
  1054. package/dist/lib/sessionNotices.d.ts +54 -0
  1055. package/dist/lib/sessionNotices.d.ts.map +1 -0
  1056. package/dist/lib/sessionNotices.js +132 -0
  1057. package/dist/lib/sessionNotices.js.map +1 -0
  1058. package/dist/lib/sessionNotices.test.d.ts +2 -0
  1059. package/dist/lib/sessionNotices.test.d.ts.map +1 -0
  1060. package/dist/lib/sessionNotices.test.js +53 -0
  1061. package/dist/lib/sessionNotices.test.js.map +1 -0
  1062. package/dist/lib/spineVerdictRead.d.ts +70 -0
  1063. package/dist/lib/spineVerdictRead.d.ts.map +1 -0
  1064. package/dist/lib/spineVerdictRead.js +73 -0
  1065. package/dist/lib/spineVerdictRead.js.map +1 -0
  1066. package/dist/lib/spinner.js +2 -2
  1067. package/dist/lib/spinner.js.map +1 -1
  1068. package/dist/lib/startup-resolution-signals.d.ts +34 -0
  1069. package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
  1070. package/dist/lib/startup-resolution-signals.js +116 -0
  1071. package/dist/lib/startup-resolution-signals.js.map +1 -0
  1072. package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
  1073. package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
  1074. package/dist/lib/startup-resolution-signals.test.js +113 -0
  1075. package/dist/lib/startup-resolution-signals.test.js.map +1 -0
  1076. package/dist/lib/startup-signals.d.ts +12 -0
  1077. package/dist/lib/startup-signals.d.ts.map +1 -0
  1078. package/dist/lib/startup-signals.js +179 -0
  1079. package/dist/lib/startup-signals.js.map +1 -0
  1080. package/dist/lib/startup-signals.test.d.ts +2 -0
  1081. package/dist/lib/startup-signals.test.d.ts.map +1 -0
  1082. package/dist/lib/startup-signals.test.js +165 -0
  1083. package/dist/lib/startup-signals.test.js.map +1 -0
  1084. package/dist/lib/state.d.ts +11 -2
  1085. package/dist/lib/state.d.ts.map +1 -1
  1086. package/dist/lib/state.js +11 -4
  1087. package/dist/lib/state.js.map +1 -1
  1088. package/dist/lib/statusCategories.d.ts +162 -0
  1089. package/dist/lib/statusCategories.d.ts.map +1 -0
  1090. package/dist/lib/statusCategories.js +286 -0
  1091. package/dist/lib/statusCategories.js.map +1 -0
  1092. package/dist/lib/strip.d.ts +17 -0
  1093. package/dist/lib/strip.d.ts.map +1 -1
  1094. package/dist/lib/strip.js +48 -1
  1095. package/dist/lib/strip.js.map +1 -1
  1096. package/dist/lib/style.d.ts +8 -2
  1097. package/dist/lib/style.d.ts.map +1 -1
  1098. package/dist/lib/style.js +24 -17
  1099. package/dist/lib/style.js.map +1 -1
  1100. package/dist/lib/update-check.d.ts +3 -2
  1101. package/dist/lib/update-check.d.ts.map +1 -1
  1102. package/dist/lib/update-check.js +10 -4
  1103. package/dist/lib/update-check.js.map +1 -1
  1104. package/dist/lib/workspaceNotice.d.ts +202 -0
  1105. package/dist/lib/workspaceNotice.d.ts.map +1 -0
  1106. package/dist/lib/workspaceNotice.js +345 -0
  1107. package/dist/lib/workspaceNotice.js.map +1 -0
  1108. package/dist/lib/writePerimeter.d.ts +72 -0
  1109. package/dist/lib/writePerimeter.d.ts.map +1 -0
  1110. package/dist/lib/writePerimeter.js +128 -0
  1111. package/dist/lib/writePerimeter.js.map +1 -0
  1112. package/dist/registerEntryCommands.d.ts +18 -0
  1113. package/dist/registerEntryCommands.d.ts.map +1 -0
  1114. package/dist/registerEntryCommands.js +122 -0
  1115. package/dist/registerEntryCommands.js.map +1 -0
  1116. package/dist/registerHistoryCommand.d.ts +8 -0
  1117. package/dist/registerHistoryCommand.d.ts.map +1 -0
  1118. package/dist/registerHistoryCommand.js +14 -0
  1119. package/dist/registerHistoryCommand.js.map +1 -0
  1120. package/dist/registerOutcomeCommands.d.ts +27 -0
  1121. package/dist/registerOutcomeCommands.d.ts.map +1 -0
  1122. package/dist/registerOutcomeCommands.js +27 -0
  1123. package/dist/registerOutcomeCommands.js.map +1 -0
  1124. package/dist/registerRoleCommands.d.ts +11 -0
  1125. package/dist/registerRoleCommands.d.ts.map +1 -0
  1126. package/dist/registerRoleCommands.js +42 -0
  1127. package/dist/registerRoleCommands.js.map +1 -0
  1128. package/dist/registerTensionsCommands.d.ts +10 -0
  1129. package/dist/registerTensionsCommands.d.ts.map +1 -0
  1130. package/dist/registerTensionsCommands.js +15 -0
  1131. package/dist/registerTensionsCommands.js.map +1 -0
  1132. package/dist/scoreboard/diagnose.d.ts +185 -0
  1133. package/dist/scoreboard/diagnose.d.ts.map +1 -0
  1134. package/dist/scoreboard/diagnose.js +282 -0
  1135. package/dist/scoreboard/diagnose.js.map +1 -0
  1136. package/dist/scoreboard/diagnose.test.d.ts +15 -0
  1137. package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
  1138. package/dist/scoreboard/diagnose.test.js +288 -0
  1139. package/dist/scoreboard/diagnose.test.js.map +1 -0
  1140. package/dist/scoreboard/floors.d.ts +47 -0
  1141. package/dist/scoreboard/floors.d.ts.map +1 -0
  1142. package/dist/scoreboard/floors.js +33 -0
  1143. package/dist/scoreboard/floors.js.map +1 -0
  1144. package/dist/scoreboard/localDrift.d.ts +23 -0
  1145. package/dist/scoreboard/localDrift.d.ts.map +1 -0
  1146. package/dist/scoreboard/localDrift.js +111 -0
  1147. package/dist/scoreboard/localDrift.js.map +1 -0
  1148. package/dist/scoreboard/localDrift.test.d.ts +9 -0
  1149. package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
  1150. package/dist/scoreboard/localDrift.test.js +82 -0
  1151. package/dist/scoreboard/localDrift.test.js.map +1 -0
  1152. package/dist/surfaces/__tests__/adapter.test.js +2 -6
  1153. package/dist/surfaces/__tests__/adapter.test.js.map +1 -1
  1154. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts +2 -0
  1155. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts.map +1 -0
  1156. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js +180 -0
  1157. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js.map +1 -0
  1158. package/dist/surfaces/adapters/claude.d.ts.map +1 -1
  1159. package/dist/surfaces/adapters/claude.js +30 -25
  1160. package/dist/surfaces/adapters/claude.js.map +1 -1
  1161. package/dist/surfaces/registry.js +1 -1
  1162. package/dist/surfaces/registry.js.map +1 -1
  1163. package/package.json +9 -9
  1164. package/dist/__tests__/audit.test.d.ts +0 -2
  1165. package/dist/__tests__/audit.test.d.ts.map +0 -1
  1166. package/dist/__tests__/audit.test.js +0 -399
  1167. package/dist/__tests__/audit.test.js.map +0 -1
  1168. package/dist/__tests__/authority-domains.test.d.ts +0 -2
  1169. package/dist/__tests__/authority-domains.test.d.ts.map +0 -1
  1170. package/dist/__tests__/authority-domains.test.js +0 -48
  1171. package/dist/__tests__/authority-domains.test.js.map +0 -1
  1172. package/dist/__tests__/handshake-augment.test.d.ts +0 -2
  1173. package/dist/__tests__/handshake-augment.test.d.ts.map +0 -1
  1174. package/dist/__tests__/handshake-augment.test.js +0 -423
  1175. package/dist/__tests__/handshake-augment.test.js.map +0 -1
  1176. package/dist/__tests__/handshake-dormancy.test.d.ts +0 -2
  1177. package/dist/__tests__/handshake-dormancy.test.d.ts.map +0 -1
  1178. package/dist/__tests__/handshake-dormancy.test.js +0 -207
  1179. package/dist/__tests__/handshake-dormancy.test.js.map +0 -1
  1180. package/dist/__tests__/handshake-formatter.test.d.ts +0 -2
  1181. package/dist/__tests__/handshake-formatter.test.d.ts.map +0 -1
  1182. package/dist/__tests__/handshake-formatter.test.js +0 -67
  1183. package/dist/__tests__/handshake-formatter.test.js.map +0 -1
  1184. package/dist/__tests__/handshake-preview.test.d.ts +0 -2
  1185. package/dist/__tests__/handshake-preview.test.d.ts.map +0 -1
  1186. package/dist/__tests__/handshake-preview.test.js +0 -841
  1187. package/dist/__tests__/handshake-preview.test.js.map +0 -1
  1188. package/dist/__tests__/handshake.e2e.test.d.ts +0 -2
  1189. package/dist/__tests__/handshake.e2e.test.d.ts.map +0 -1
  1190. package/dist/__tests__/handshake.e2e.test.js +0 -1252
  1191. package/dist/__tests__/handshake.e2e.test.js.map +0 -1
  1192. package/dist/__tests__/handshake.test.d.ts +0 -2
  1193. package/dist/__tests__/handshake.test.d.ts.map +0 -1
  1194. package/dist/__tests__/handshake.test.js +0 -805
  1195. package/dist/__tests__/handshake.test.js.map +0 -1
  1196. package/dist/__tests__/ingest.test.d.ts +0 -2
  1197. package/dist/__tests__/ingest.test.d.ts.map +0 -1
  1198. package/dist/__tests__/ingest.test.js +0 -185
  1199. package/dist/__tests__/ingest.test.js.map +0 -1
  1200. package/dist/__tests__/method-registry.integration.test.d.ts +0 -6
  1201. package/dist/__tests__/method-registry.integration.test.d.ts.map +0 -1
  1202. package/dist/__tests__/method-registry.integration.test.js +0 -18
  1203. package/dist/__tests__/method-registry.integration.test.js.map +0 -1
  1204. package/dist/__tests__/method-registry.test.d.ts +0 -14
  1205. package/dist/__tests__/method-registry.test.d.ts.map +0 -1
  1206. package/dist/__tests__/method-registry.test.js +0 -134
  1207. package/dist/__tests__/method-registry.test.js.map +0 -1
  1208. package/dist/__tests__/onboarding-path-b.test.d.ts +0 -2
  1209. package/dist/__tests__/onboarding-path-b.test.d.ts.map +0 -1
  1210. package/dist/__tests__/onboarding-path-b.test.js +0 -46
  1211. package/dist/__tests__/onboarding-path-b.test.js.map +0 -1
  1212. package/dist/__tests__/onboarding.test.d.ts +0 -6
  1213. package/dist/__tests__/onboarding.test.d.ts.map +0 -1
  1214. package/dist/__tests__/onboarding.test.js +0 -347
  1215. package/dist/__tests__/onboarding.test.js.map +0 -1
  1216. package/dist/__tests__/promote.test.d.ts +0 -2
  1217. package/dist/__tests__/promote.test.d.ts.map +0 -1
  1218. package/dist/__tests__/promote.test.js +0 -230
  1219. package/dist/__tests__/promote.test.js.map +0 -1
  1220. package/dist/__tests__/proposals.test.d.ts +0 -2
  1221. package/dist/__tests__/proposals.test.d.ts.map +0 -1
  1222. package/dist/__tests__/proposals.test.js +0 -167
  1223. package/dist/__tests__/proposals.test.js.map +0 -1
  1224. package/dist/__tests__/setup-ingest.test.d.ts +0 -2
  1225. package/dist/__tests__/setup-ingest.test.d.ts.map +0 -1
  1226. package/dist/__tests__/setup-ingest.test.js +0 -71
  1227. package/dist/__tests__/setup-ingest.test.js.map +0 -1
  1228. package/dist/__tests__/setup-resolver.test.d.ts +0 -14
  1229. package/dist/__tests__/setup-resolver.test.d.ts.map +0 -1
  1230. package/dist/__tests__/setup-resolver.test.js +0 -228
  1231. package/dist/__tests__/setup-resolver.test.js.map +0 -1
  1232. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +0 -15
  1233. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +0 -1
  1234. package/dist/commands/__tests__/setup-detect-surfaces.test.js +0 -149
  1235. package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +0 -1
  1236. package/dist/commands/__tests__/setup-state.test.d.ts +0 -2
  1237. package/dist/commands/__tests__/setup-state.test.d.ts.map +0 -1
  1238. package/dist/commands/__tests__/setup-state.test.js +0 -194
  1239. package/dist/commands/__tests__/setup-state.test.js.map +0 -1
  1240. package/dist/commands/accept.d.ts +0 -18
  1241. package/dist/commands/accept.d.ts.map +0 -1
  1242. package/dist/commands/accept.js +0 -76
  1243. package/dist/commands/accept.js.map +0 -1
  1244. package/dist/commands/audit.d.ts +0 -25
  1245. package/dist/commands/audit.d.ts.map +0 -1
  1246. package/dist/commands/audit.js +0 -215
  1247. package/dist/commands/audit.js.map +0 -1
  1248. package/dist/commands/authority-domains.d.ts +0 -146
  1249. package/dist/commands/authority-domains.d.ts.map +0 -1
  1250. package/dist/commands/authority-domains.js +0 -283
  1251. package/dist/commands/authority-domains.js.map +0 -1
  1252. package/dist/commands/brand-pack.d.ts +0 -2
  1253. package/dist/commands/brand-pack.d.ts.map +0 -1
  1254. package/dist/commands/brand-pack.js +0 -25
  1255. package/dist/commands/brand-pack.js.map +0 -1
  1256. package/dist/commands/connect-context.d.ts +0 -45
  1257. package/dist/commands/connect-context.d.ts.map +0 -1
  1258. package/dist/commands/connect-context.js +0 -64
  1259. package/dist/commands/connect-context.js.map +0 -1
  1260. package/dist/commands/connect-context.test.d.ts +0 -2
  1261. package/dist/commands/connect-context.test.d.ts.map +0 -1
  1262. package/dist/commands/connect-context.test.js +0 -110
  1263. package/dist/commands/connect-context.test.js.map +0 -1
  1264. package/dist/commands/handshake.d.ts +0 -222
  1265. package/dist/commands/handshake.d.ts.map +0 -1
  1266. package/dist/commands/handshake.js +0 -2421
  1267. package/dist/commands/handshake.js.map +0 -1
  1268. package/dist/commands/ingest.d.ts +0 -14
  1269. package/dist/commands/ingest.d.ts.map +0 -1
  1270. package/dist/commands/ingest.js +0 -189
  1271. package/dist/commands/ingest.js.map +0 -1
  1272. package/dist/commands/method.d.ts +0 -99
  1273. package/dist/commands/method.d.ts.map +0 -1
  1274. package/dist/commands/method.js +0 -785
  1275. package/dist/commands/method.js.map +0 -1
  1276. package/dist/commands/migrate-setup.d.ts +0 -18
  1277. package/dist/commands/migrate-setup.d.ts.map +0 -1
  1278. package/dist/commands/migrate-setup.js +0 -198
  1279. package/dist/commands/migrate-setup.js.map +0 -1
  1280. package/dist/commands/promote.d.ts +0 -12
  1281. package/dist/commands/promote.d.ts.map +0 -1
  1282. package/dist/commands/promote.js +0 -113
  1283. package/dist/commands/promote.js.map +0 -1
  1284. package/dist/commands/proposals.d.ts +0 -9
  1285. package/dist/commands/proposals.d.ts.map +0 -1
  1286. package/dist/commands/proposals.js +0 -24
  1287. package/dist/commands/proposals.js.map +0 -1
  1288. package/dist/commands/reject.d.ts +0 -14
  1289. package/dist/commands/reject.d.ts.map +0 -1
  1290. package/dist/commands/reject.js +0 -44
  1291. package/dist/commands/reject.js.map +0 -1
  1292. package/dist/commands/setup-audit.d.ts +0 -59
  1293. package/dist/commands/setup-audit.d.ts.map +0 -1
  1294. package/dist/commands/setup-audit.js +0 -250
  1295. package/dist/commands/setup-audit.js.map +0 -1
  1296. package/dist/commands/setup-detect-surfaces.d.ts +0 -38
  1297. package/dist/commands/setup-detect-surfaces.d.ts.map +0 -1
  1298. package/dist/commands/setup-detect-surfaces.js +0 -76
  1299. package/dist/commands/setup-detect-surfaces.js.map +0 -1
  1300. package/dist/commands/setup-ingest.d.ts +0 -17
  1301. package/dist/commands/setup-ingest.d.ts.map +0 -1
  1302. package/dist/commands/setup-ingest.js +0 -226
  1303. package/dist/commands/setup-ingest.js.map +0 -1
  1304. package/dist/commands/setup-resolver.d.ts +0 -58
  1305. package/dist/commands/setup-resolver.d.ts.map +0 -1
  1306. package/dist/commands/setup-resolver.js +0 -150
  1307. package/dist/commands/setup-resolver.js.map +0 -1
  1308. package/dist/commands/setup-state.d.ts +0 -42
  1309. package/dist/commands/setup-state.d.ts.map +0 -1
  1310. package/dist/commands/setup-state.js +0 -93
  1311. package/dist/commands/setup-state.js.map +0 -1
  1312. package/dist/commands/setup.d.ts +0 -23
  1313. package/dist/commands/setup.d.ts.map +0 -1
  1314. package/dist/commands/setup.js +0 -69
  1315. package/dist/commands/setup.js.map +0 -1
  1316. package/dist/formatters/audit.d.ts +0 -52
  1317. package/dist/formatters/audit.d.ts.map +0 -1
  1318. package/dist/formatters/audit.js +0 -81
  1319. package/dist/formatters/audit.js.map +0 -1
  1320. package/dist/formatters/promote.d.ts +0 -30
  1321. package/dist/formatters/promote.d.ts.map +0 -1
  1322. package/dist/formatters/promote.js +0 -39
  1323. package/dist/formatters/promote.js.map +0 -1
  1324. package/dist/formatters/proposals.d.ts +0 -45
  1325. package/dist/formatters/proposals.d.ts.map +0 -1
  1326. package/dist/formatters/proposals.js +0 -62
  1327. package/dist/formatters/proposals.js.map +0 -1
  1328. package/dist/generators/archetypes.d.ts +0 -52
  1329. package/dist/generators/archetypes.d.ts.map +0 -1
  1330. package/dist/generators/archetypes.js +0 -153
  1331. package/dist/generators/archetypes.js.map +0 -1
  1332. package/dist/generators/archetypes.test.d.ts +0 -2
  1333. package/dist/generators/archetypes.test.d.ts.map +0 -1
  1334. package/dist/generators/archetypes.test.js +0 -237
  1335. package/dist/generators/archetypes.test.js.map +0 -1
  1336. package/dist/generators/chain-classifier.d.ts +0 -49
  1337. package/dist/generators/chain-classifier.d.ts.map +0 -1
  1338. package/dist/generators/chain-classifier.js +0 -180
  1339. package/dist/generators/chain-classifier.js.map +0 -1
  1340. package/dist/generators/chain-classifier.test.d.ts +0 -2
  1341. package/dist/generators/chain-classifier.test.d.ts.map +0 -1
  1342. package/dist/generators/chain-classifier.test.js +0 -257
  1343. package/dist/generators/chain-classifier.test.js.map +0 -1
  1344. package/dist/generators/chain-rules.d.ts +0 -42
  1345. package/dist/generators/chain-rules.d.ts.map +0 -1
  1346. package/dist/generators/chain-rules.js +0 -144
  1347. package/dist/generators/chain-rules.js.map +0 -1
  1348. package/dist/generators/chain-rules.test.d.ts +0 -2
  1349. package/dist/generators/chain-rules.test.d.ts.map +0 -1
  1350. package/dist/generators/chain-rules.test.js +0 -179
  1351. package/dist/generators/chain-rules.test.js.map +0 -1
  1352. package/dist/generators/handshake-diff.d.ts +0 -67
  1353. package/dist/generators/handshake-diff.d.ts.map +0 -1
  1354. package/dist/generators/handshake-diff.js +0 -183
  1355. package/dist/generators/handshake-diff.js.map +0 -1
  1356. package/dist/generators/handshake-diff.test.d.ts +0 -2
  1357. package/dist/generators/handshake-diff.test.d.ts.map +0 -1
  1358. package/dist/generators/handshake-diff.test.js +0 -264
  1359. package/dist/generators/handshake-diff.test.js.map +0 -1
  1360. package/dist/lib/activation.d.ts +0 -28
  1361. package/dist/lib/activation.d.ts.map +0 -1
  1362. package/dist/lib/activation.js +0 -57
  1363. package/dist/lib/activation.js.map +0 -1
  1364. package/dist/lib/activation.test.d.ts +0 -6
  1365. package/dist/lib/activation.test.d.ts.map +0 -1
  1366. package/dist/lib/activation.test.js +0 -121
  1367. package/dist/lib/activation.test.js.map +0 -1
  1368. package/dist/lib/collectionRegistry.d.ts +0 -38
  1369. package/dist/lib/collectionRegistry.d.ts.map +0 -1
  1370. package/dist/lib/collectionRegistry.js +0 -112
  1371. package/dist/lib/collectionRegistry.js.map +0 -1
  1372. package/dist/lib/conversation-engine.d.ts +0 -45
  1373. package/dist/lib/conversation-engine.d.ts.map +0 -1
  1374. package/dist/lib/conversation-engine.js +0 -112
  1375. package/dist/lib/conversation-engine.js.map +0 -1
  1376. package/dist/lib/conversation-phases.d.ts +0 -59
  1377. package/dist/lib/conversation-phases.d.ts.map +0 -1
  1378. package/dist/lib/conversation-phases.js +0 -11
  1379. package/dist/lib/conversation-phases.js.map +0 -1
  1380. package/dist/lib/conversation-signals.d.ts +0 -30
  1381. package/dist/lib/conversation-signals.d.ts.map +0 -1
  1382. package/dist/lib/conversation-signals.js +0 -64
  1383. package/dist/lib/conversation-signals.js.map +0 -1
  1384. package/dist/lib/inferSourceDate.d.ts +0 -12
  1385. package/dist/lib/inferSourceDate.d.ts.map +0 -1
  1386. package/dist/lib/inferSourceDate.js +0 -44
  1387. package/dist/lib/inferSourceDate.js.map +0 -1
  1388. package/dist/lib/method-registry.d.ts +0 -32
  1389. package/dist/lib/method-registry.d.ts.map +0 -1
  1390. package/dist/lib/method-registry.js +0 -53
  1391. package/dist/lib/method-registry.js.map +0 -1
  1392. package/dist/lib/onboarding-path-b.d.ts +0 -10
  1393. package/dist/lib/onboarding-path-b.d.ts.map +0 -1
  1394. package/dist/lib/onboarding-path-b.js +0 -213
  1395. package/dist/lib/onboarding-path-b.js.map +0 -1
  1396. package/dist/lib/onboarding-shared.d.ts +0 -80
  1397. package/dist/lib/onboarding-shared.d.ts.map +0 -1
  1398. package/dist/lib/onboarding-shared.js +0 -174
  1399. package/dist/lib/onboarding-shared.js.map +0 -1
  1400. package/dist/lib/onboarding-topics.d.ts +0 -27
  1401. package/dist/lib/onboarding-topics.d.ts.map +0 -1
  1402. package/dist/lib/onboarding-topics.js +0 -57
  1403. package/dist/lib/onboarding-topics.js.map +0 -1
  1404. package/dist/lib/onboarding.d.ts +0 -17
  1405. package/dist/lib/onboarding.d.ts.map +0 -1
  1406. package/dist/lib/onboarding.js +0 -350
  1407. package/dist/lib/onboarding.js.map +0 -1
  1408. package/dist/setup/__tests__/coach-traces.test.d.ts +0 -2
  1409. package/dist/setup/__tests__/coach-traces.test.d.ts.map +0 -1
  1410. package/dist/setup/__tests__/coach-traces.test.js +0 -189
  1411. package/dist/setup/__tests__/coach-traces.test.js.map +0 -1
  1412. package/dist/setup/__tests__/setup-commands.test.d.ts +0 -2
  1413. package/dist/setup/__tests__/setup-commands.test.d.ts.map +0 -1
  1414. package/dist/setup/__tests__/setup-commands.test.js +0 -177
  1415. package/dist/setup/__tests__/setup-commands.test.js.map +0 -1
  1416. package/dist/setup/__tests__/state-machine.test.d.ts +0 -2
  1417. package/dist/setup/__tests__/state-machine.test.d.ts.map +0 -1
  1418. package/dist/setup/__tests__/state-machine.test.js +0 -341
  1419. package/dist/setup/__tests__/state-machine.test.js.map +0 -1
  1420. package/dist/setup/detect-surfaces.d.ts +0 -21
  1421. package/dist/setup/detect-surfaces.d.ts.map +0 -1
  1422. package/dist/setup/detect-surfaces.js +0 -39
  1423. package/dist/setup/detect-surfaces.js.map +0 -1
  1424. package/dist/setup/manifest-writer.d.ts +0 -17
  1425. package/dist/setup/manifest-writer.d.ts.map +0 -1
  1426. package/dist/setup/manifest-writer.js +0 -153
  1427. package/dist/setup/manifest-writer.js.map +0 -1
  1428. package/dist/setup/perimeter.d.ts +0 -72
  1429. package/dist/setup/perimeter.d.ts.map +0 -1
  1430. package/dist/setup/perimeter.js +0 -128
  1431. package/dist/setup/perimeter.js.map +0 -1
  1432. package/dist/setup/state-machine.d.ts +0 -67
  1433. package/dist/setup/state-machine.d.ts.map +0 -1
  1434. package/dist/setup/state-machine.js +0 -124
  1435. package/dist/setup/state-machine.js.map +0 -1
  1436. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +0 -2
  1437. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +0 -1
  1438. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +0 -132
  1439. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +0 -1
  1440. package/templates/archetypes/boundary.md +0 -23
  1441. package/templates/archetypes/constraint.md +0 -23
  1442. package/templates/archetypes/convention.md +0 -23
  1443. package/templates/archetypes/policy.md +0 -23
  1444. package/templates/archetypes/quality-gate.md +0 -23
  1445. package/templates/archetypes/workflow.md +0 -23
  1446. package/templates/general/code-integrity.md +0 -11
  1447. package/templates/general/getting-started.md +0 -12
  1448. package/templates/method-registry.json +0 -16
  1449. package/templates/node-ts/code-integrity.md +0 -13
  1450. package/templates/node-ts/testing.md +0 -12
  1451. package/templates/python/code-integrity.md +0 -13
  1452. package/templates/python/testing.md +0 -12
@@ -0,0 +1,235 @@
1
+ import { getConfigOrGuide } from '../lib/config.js';
2
+ import { kernelCall, kernelCallWithSession } from '../lib/client.js';
3
+ import { CLIError, ErrorCode } from '../lib/errors.js';
4
+ import { runCliCommand } from '../lib/runner.js';
5
+ import { formatSeatSentence, personStatusTag } from '../lib/seatSentence.js';
6
+ import { sanitizeSingleLineField } from '../lib/strip.js';
7
+ import { runOrganisationWrite } from './organisationWrite.js';
8
+ import { formatOwnerLine } from '../formatters/entry.js';
9
+ /** Holders first: who answers for the role, a non-active holder tagged with their state word (TASK-712, DEC-2007). */
10
+ function formatHolders(result) {
11
+ if (result.holders.length === 0)
12
+ return [` holders: none${result.holdersTruncated ? ' found, but the membership scan is incomplete' : ''}`];
13
+ return [
14
+ ' holders:',
15
+ ...result.holders.map((h) => {
16
+ const word = personStatusTag(h.status);
17
+ const tag = word ? ` (${word})` : '';
18
+ const team = h.teamName ? ` in ${sanitizeSingleLineField(h.teamName)}` : '';
19
+ return ` ${sanitizeSingleLineField(h.displayName)}${tag}${team}`;
20
+ }),
21
+ ...(result.holdersTruncated ? [' (membership scan cut at 500 rows, more holders may exist)'] : []),
22
+ ];
23
+ }
24
+ const validation = (message, guidance) => new CLIError(message, { code: ErrorCode.VALIDATION_FAILED, category: 'validation', guidance });
25
+ /** argv is a string; `--limit`/`--cursor` want whole numbers. Refused HERE, before any network
26
+ * call, naming the flag — same shape `outcome.ts`'s own `requireNumber` and `shape.ts`'s enum
27
+ * checks use (CLIError + code: VALIDATION_FAILED + category: 'validation'), so an invalid flag
28
+ * reports category=validation in JSON mode rather than falling through to `runCliCommand`'s
29
+ * generic unknown-error wrap (code: INTERNAL). Un-refused, `Number('abc')` is NaN, which
30
+ * `JSON.stringify` silently turns into `null` on the wire — a validation bug disguised as a
31
+ * present-but-empty value, not caught until the gateway's own (differently-worded) refusal.
32
+ */
33
+ function requireInteger(raw, flag, range) {
34
+ const trimmed = raw.trim();
35
+ const parsed = Number(trimmed);
36
+ if (trimmed === '' || !Number.isInteger(parsed)) {
37
+ throw validation(`${flag} must be a whole number (got "${raw}").`, 'Usage: pb role accountable <role-id> [--limit <n>] [--cursor <n>]');
38
+ }
39
+ // PR #856 review round 3 (Codex P2, PRRT_kwDORS4ils6gQrZI): `requireInteger` checked only
40
+ // integrality, so `--limit 0`, a negative value, or anything above 200 reached the network
41
+ // call and was silently clamped server-side (convex/agentKnowledge/entriesByRole.ts:1-200
42
+ // range) to a page size the caller never asked for. Reject the advertised 1-200 range here,
43
+ // matching the MCP tool's own schema (packages/mcp-server/src/tools/role.ts), before the call.
44
+ if (range && (parsed < range.min || parsed > range.max)) {
45
+ throw validation(`${flag} must be between ${range.min} and ${range.max} (got ${parsed}).`, 'Usage: pb role accountable <role-id> [--limit <n>] [--cursor <n>]');
46
+ }
47
+ return parsed;
48
+ }
49
+ /** One row, terminal-safe. `name` is stored content any connector with write access can set —
50
+ * sanitized for the same reason `outcome.ts`'s `formatReadingsList` sanitizes `note`/`valueText`:
51
+ * this rendering is a plain-text sink, and an embedded newline would forge an extra row. */
52
+ function formatRow(row) {
53
+ const id = row.entryId ?? row.id;
54
+ // PR #856 review round 3 (Codex P2, PRRT_kwDORS4ils6gQrZW): `chain.listByRole` deliberately
55
+ // includes each row's domain `workflowStatus` (convex/agentKnowledge/entriesByRole.ts:73-90)
56
+ // separately from `status` (the TRUST status, e.g. 'accepted') — a tension's `open` vs
57
+ // `closed` is exactly the distinction between a current obligation and a completed one.
58
+ // Dropping it here made both render identically as `[tension/accepted]`; render it, mirroring
59
+ // `packages/mcp-server/src/tools/entries.ts:697-700`'s existing formatter.
60
+ // PR #872 review round 3 (Codex P2): workflowStatus is stored content read from a workspace
61
+ // collection's `validWorkflowStatuses` declaration — vocabulary-checked by guardWorkflowStatus,
62
+ // never terminal-safety-checked, so a value containing a newline/control sequence could still
63
+ // forge an extra row. Sanitized the same way `row.name` already is.
64
+ const statusDisplay = row.workflowStatus ? `${row.status} / ${sanitizeSingleLineField(row.workflowStatus)}` : row.status;
65
+ // WP-771 S1b round 2 (Codex P2, PRRT_kwDORS4ils6lGWJ0): render the real collection slug,
66
+ // matching the MCP `role` tool's formatRow fixed this round — same sanitization, same '?'
67
+ // fallback for a row whose collection couldn't be resolved.
68
+ const collectionSlug = row.collectionSlug ? sanitizeSingleLineField(row.collectionSlug) : '?';
69
+ return ` ${id} ${sanitizeSingleLineField(row.name)} [${collectionSlug}/${statusDisplay}]`;
70
+ }
71
+ /** One labelled section — `explicit` or `reporting`. Empty prints the shared empty-state text
72
+ * rather than an ambiguous blank, and a truncated page says so with an ACTIONABLE hint rather
73
+ * than a vague "more exist" (review PRRT_kwDORS4ils6gQAqo, §13: cap every read AND surface
74
+ * truncation to the caller — a claim of "continue with the printed cursor" that never printed
75
+ * one is the failure this fixes). `cursorHint` is `undefined` for a section the gateway cannot
76
+ * page (`reporting` — PR-1's own design: only `explicit` accepts a cursor) — that section
77
+ * states the cap plainly instead of pointing at a flag that would silently be ignored. */
78
+ function formatSection(label, rows, truncated, cursorHint) {
79
+ // PR #856 review round 3 (Codex P2, PRRT_kwDORS4ils6gQrY9): `canonicalKey` filtering can
80
+ // legitimately return `rows: []` with `truncated: true` and a usable cursor — the backend's
81
+ // raw scan window was exhausted without confirming no more matches exist beyond it
82
+ // (convex/agentKnowledge/entriesByRole.ts). Printing "not recorded yet" for that response
83
+ // falsely presents the role as having no matching entries at all and swallows the cursor that
84
+ // would let the caller keep looking. Check truncation BEFORE the empty-state early return.
85
+ if (rows.length === 0 && !truncated)
86
+ return [` ${label}: not recorded yet`];
87
+ const lines = rows.length === 0 ? [` ${label}: not recorded yet, but the scan is incomplete`] : [` ${label}:`, ...rows.map(formatRow)];
88
+ // PR #872 review round 3 (Codex P2): `truncated` can be true purely because the raw scan
89
+ // budget (MAX_SCAN_BATCHES batches, entriesByRole.ts) was exhausted without confirming the
90
+ // true end of the index range — NOT because a filtered match beyond this page was actually
91
+ // found. "more exist" overclaimed a fact the backend never established; "scan incomplete"
92
+ // states only what is actually known (keep paging to find out), never asserts a match exists.
93
+ if (truncated)
94
+ lines.push(` (scan incomplete, more may exist — ${cursorHint ?? 'raise --limit (capped at 200, no cursor for this list)'})`);
95
+ return lines;
96
+ }
97
+ /**
98
+ * Pretty rendering for `pb role accountable`. Exported so door-parity content-equality against
99
+ * the MCP tool's own rendering (`packages/mcp-server/src/tools/role.ts`) is assertable directly,
100
+ * not only through a live walk — both read the SAME `chain.listByRole` JSON shape and both print
101
+ * the SAME three sections in the SAME order.
102
+ */
103
+ export function formatRoleAccountable(result) {
104
+ if (!result)
105
+ return 'Role not found.';
106
+ const roleLabel = `${sanitizeSingleLineField(result.role.name)} (${result.role.entryId ?? result.role.id})`;
107
+ // `explicit` is the only cursor-able list (PR-1's design) — print the REAL next cursor when
108
+ // truncated, never a bare claim that one exists.
109
+ const explicitCursorHint = result.nextCursor !== null
110
+ ? `raise --limit or continue with --cursor ${result.nextCursor}`
111
+ : 'raise --limit';
112
+ return [
113
+ `${roleLabel} — accountability:`,
114
+ ...formatHolders(result),
115
+ ...formatSection('explicit (owns)', result.explicit, result.explicitTruncated, explicitCursorHint),
116
+ ...formatSection('reporting (reports on)', result.reporting, result.reportingTruncated),
117
+ // DEC-1587 Team-Lead vacancy coverage — always not-computed today (see
118
+ // convex/agentKnowledge/entriesByRole.ts's own header for why); named, never faked as an
119
+ // empty computed list.
120
+ ` inherited: not-computed — ${result.inheritedNotComputedReason}`,
121
+ ].join('\n');
122
+ }
123
+ export async function runRoleAccountable(roleId, options) {
124
+ // Refuse everything refusable BEFORE the network call — same discipline outcome.ts's
125
+ // requireNumber and shape.ts's enum checks use.
126
+ const limit = options.limit !== undefined ? requireInteger(options.limit, '--limit', { min: 1, max: 200 }) : undefined;
127
+ const cursor = options.cursor !== undefined ? requireInteger(options.cursor, '--cursor') : undefined;
128
+ const config = await getConfigOrGuide(() => runRoleAccountable(roleId, options));
129
+ if (!config)
130
+ return;
131
+ await runCliCommand({
132
+ // A read: no session required, same posture as `pb outcome list`.
133
+ fn: async () => {
134
+ const raw = await kernelCall('chain.listByRole', {
135
+ roleId,
136
+ ...(options.canonicalKey ? { canonicalKey: options.canonicalKey } : {}),
137
+ ...(limit !== undefined ? { limit } : {}),
138
+ ...(cursor !== undefined ? { cursor } : {}),
139
+ });
140
+ return raw;
141
+ },
142
+ formatPretty: (value_) => formatRoleAccountable(value_),
143
+ });
144
+ }
145
+ const seatSentence = (action) => (result) => formatSeatSentence(action, result, sanitizeSingleLineField);
146
+ export async function runRoleSeat(roleId, options) {
147
+ // Exactly one of an existing person or --new-person; refused before any network call.
148
+ if ((options.person === undefined) === (options.newPerson === undefined)) {
149
+ throw validation(options.person === undefined ? 'Say who to seat: --person <id-or-email>, or --new-person <name>.' : 'Give --person or --new-person, not both.', 'Usage: pb role seat <role-id> (--person <id-or-email> | --new-person <name>) [--team <team-id>]');
150
+ }
151
+ const config = await getConfigOrGuide(() => runRoleSeat(roleId, options));
152
+ if (!config)
153
+ return;
154
+ await runOrganisationWrite((context) => kernelCallWithSession('organisation.seatInRole', {
155
+ roleRef: roleId, targetPersonRef: options.person, newPersonName: options.newPerson, teamRef: options.team, sessionId: context.sessionId,
156
+ }), seatSentence('seat'));
157
+ }
158
+ export async function runRoleUnseat(roleId, options) {
159
+ const config = await getConfigOrGuide(() => runRoleUnseat(roleId, options));
160
+ if (!config)
161
+ return;
162
+ await runOrganisationWrite((context) => kernelCallWithSession('organisation.unseatFromRole', {
163
+ roleRef: roleId, targetPersonRef: options.person, teamRef: options.team, sessionId: context.sessionId,
164
+ }), seatSentence('unseat'));
165
+ }
166
+ /** TEN-4847: `pb role list` reads at most this many roles; past it, it says the list is cut. Each role
167
+ * costs two gateway reads (team, holders), so 40 roles stay near 82 requests, under the default
168
+ * 120-per-minute API-key quota (convex/rateLimiter.ts). A larger list needs one kernel read (DEC-2104). */
169
+ export const ROLE_LIST_CAP = 40;
170
+ const ROLE_PAGE_SIZE = 50; // the paged read's own page cap (convex/agentKnowledge/listEntriesPaged.ts)
171
+ const ROLE_READS_AT_ONCE = 8;
172
+ const MAX_ROLE_PAGES = 10;
173
+ /** One role's team (its owner line, as `pb get` reads it) and how many holder seats it has. */
174
+ async function readRoleRow(role) {
175
+ const [entry, raw] = await Promise.all([
176
+ kernelCall('chain.getEntry', { entryId: role.entryId }),
177
+ kernelCall('chain.listByRole', { roleId: role.entryId, limit: 1 }),
178
+ ]);
179
+ const holders = raw;
180
+ return {
181
+ entryId: role.entryId,
182
+ name: role.name,
183
+ owner: entry?.owner ?? null,
184
+ holders: holders.holders.length,
185
+ holdersTruncated: holders.holdersTruncated,
186
+ };
187
+ }
188
+ /** Every role in the workspace over the paged collection read (slug `roles`), capped at ROLE_LIST_CAP. */
189
+ export async function readRoleList() {
190
+ const roles = [];
191
+ let cursor;
192
+ let truncated = false;
193
+ let pages = 0;
194
+ do {
195
+ pages += 1;
196
+ const page = (await kernelCall('chain.listEntriesPaged', {
197
+ collectionSlug: 'roles', cursor, pageSize: Math.min(ROLE_PAGE_SIZE, ROLE_LIST_CAP - roles.length),
198
+ }));
199
+ for (const row of page.rows)
200
+ if (row.entryId)
201
+ roles.push({ entryId: row.entryId, name: row.name });
202
+ cursor = page.continueCursor ?? undefined;
203
+ // A page can come back short (drafts are filtered after the index), so pages are bounded too.
204
+ if (cursor && (roles.length >= ROLE_LIST_CAP || pages >= MAX_ROLE_PAGES))
205
+ truncated = true;
206
+ } while (cursor && !truncated);
207
+ const kept = roles.slice(0, ROLE_LIST_CAP);
208
+ const rows = [];
209
+ for (let i = 0; i < kept.length; i += ROLE_READS_AT_ONCE) {
210
+ rows.push(...await Promise.all(kept.slice(i, i + ROLE_READS_AT_ONCE).map(readRoleRow)));
211
+ }
212
+ return { roles: rows, truncated: truncated || roles.length > ROLE_LIST_CAP };
213
+ }
214
+ export function formatRoleList(result) {
215
+ const cut = result.truncated ? [` (list cut after ${result.roles.length} roles; more may exist)`] : [];
216
+ if (result.roles.length === 0)
217
+ return cut.length > 0 ? ['No roles read yet.', ...cut].join('\n') : 'No roles in this workspace.';
218
+ const lines = result.roles.map((r) => {
219
+ const holders = `${r.holders}${r.holdersTruncated ? '+' : ''} ${r.holders === 1 && !r.holdersTruncated ? 'holder' : 'holders'}`;
220
+ return ` ${r.entryId} ${sanitizeSingleLineField(r.name)}${r.owner ? ` ${formatOwnerLine(r.owner)}` : ''} ${holders}`;
221
+ });
222
+ return [
223
+ `Roles (${result.roles.length}):`,
224
+ ...lines,
225
+ ...cut,
226
+ ].join('\n');
227
+ }
228
+ export async function runRoleList() {
229
+ const config = await getConfigOrGuide(runRoleList);
230
+ if (!config)
231
+ return;
232
+ // A read: no session required, same posture as `pb role accountable`.
233
+ await runCliCommand({ fn: readRoleList, formatPretty: formatRoleList });
234
+ }
235
+ //# sourceMappingURL=role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/commands/role.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=role.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.test.d.ts","sourceRoot":"","sources":["../../src/commands/role.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,348 @@
1
+ /**
2
+ * WP-730 S2 — `pb role accountable <role-id>`.
3
+ *
4
+ * The surface is thin on purpose: every rule that matters (fail-closed roleId resolution,
5
+ * canonical-key restriction, the explicit/reporting split) lives behind the gateway and was
6
+ * proven in S1 (`convex/agentKnowledge/entriesByRole.ts`). What THIS slice can get wrong is the
7
+ * wire shape and the rendering — dropping a flag, or printing an empty section as a blank
8
+ * instead of the shared "not recorded yet" text.
9
+ */
10
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
11
+ const { getConfigOrGuide, kernelCall, kernelCallWithSession, runCliCommand, isJsonMode, readSession } = vi.hoisted(() => ({
12
+ getConfigOrGuide: vi.fn(),
13
+ kernelCall: vi.fn(),
14
+ kernelCallWithSession: vi.fn(),
15
+ runCliCommand: vi.fn(async ({ fn }) => fn()),
16
+ isJsonMode: vi.fn(() => false),
17
+ readSession: vi.fn(),
18
+ }));
19
+ vi.mock('../lib/config.js', () => ({ getConfigOrGuide }));
20
+ vi.mock('../lib/client.js', () => ({ kernelCall, kernelCallWithSession }));
21
+ vi.mock('../lib/runner.js', () => ({ runCliCommand, isJsonMode }));
22
+ vi.mock('../lib/session.js', () => ({ readSession }));
23
+ vi.mock('../lib/workspaceNotice.js', () => ({ emitEffectiveTenantNotice: vi.fn(async () => undefined) }));
24
+ import { runRoleAccountable, runRoleSeat, runRoleUnseat, formatRoleAccountable, readRoleList, formatRoleList, ROLE_LIST_CAP } from './role.js';
25
+ import { CLIError, ErrorCode } from '../lib/errors.js';
26
+ const ROLE = { id: 'doc-role-1', entryId: 'ROL-2', name: 'Data Steward' };
27
+ const OWNED = { id: 'doc-obj-1', entryId: 'OBJ-1', name: 'An owned objective', canonicalKey: 'objective', collectionSlug: 'objectives', status: 'accepted' };
28
+ const REPORTED = { id: 'doc-kr-1', entryId: 'KR-1', name: 'A reported key result', canonicalKey: 'key_result', collectionSlug: 'key-results', status: 'accepted' };
29
+ const emptyResult = {
30
+ role: ROLE,
31
+ explicit: [], explicitTruncated: false, nextCursor: null,
32
+ reporting: [], reportingTruncated: false,
33
+ inherited: [], inheritedResolution: 'not-computed',
34
+ inheritedNotComputedReason: 'What a Team Lead covers for its empty roles is not computed per role yet, so this list is never shown as empty.',
35
+ truncated: false,
36
+ holders: [],
37
+ holdersTruncated: false,
38
+ };
39
+ describe('pb role accountable', () => {
40
+ beforeEach(() => {
41
+ vi.clearAllMocks();
42
+ getConfigOrGuide.mockResolvedValue({ apiKey: 'pb_sk_test', siteUrl: 'https://example.test' });
43
+ kernelCall.mockResolvedValue(emptyResult);
44
+ });
45
+ it('calls chain.listByRole with roleId, no session required', async () => {
46
+ await runRoleAccountable('ROL-2', {});
47
+ expect(kernelCall).toHaveBeenCalledWith('chain.listByRole', { roleId: 'ROL-2' });
48
+ });
49
+ it('forwards canonicalKey, limit, and cursor only when supplied', async () => {
50
+ await runRoleAccountable('ROL-2', { canonicalKey: 'objective', limit: '5', cursor: '1700000000000' });
51
+ expect(kernelCall).toHaveBeenCalledWith('chain.listByRole', {
52
+ roleId: 'ROL-2', canonicalKey: 'objective', limit: 5, cursor: 1700000000000,
53
+ });
54
+ });
55
+ it('sends limit/cursor as NUMBERS, not the raw argv strings', async () => {
56
+ await runRoleAccountable('ROL-2', { limit: '5' });
57
+ const [, args] = kernelCall.mock.calls[0];
58
+ expect(args.limit).toBe(5);
59
+ expect(args.limit).not.toBe('5');
60
+ });
61
+ // PRRT_kwDORS4ils6gP8P9 (review): a non-numeric --limit/--cursor must refuse with
62
+ // CLIError/VALIDATION_FAILED (category: 'validation') BEFORE any network call — not fall
63
+ // through to runCliCommand's generic unknown-error wrap (code: INTERNAL), and never reach
64
+ // the gateway as `NaN` (which JSON.stringify silently turns into `null`).
65
+ it('refuses a non-numeric --limit with CLIError/VALIDATION_FAILED, before any network call', async () => {
66
+ await expect(runRoleAccountable('ROL-2', { limit: 'abc' })).rejects.toMatchObject({
67
+ code: ErrorCode.VALIDATION_FAILED,
68
+ category: 'validation',
69
+ });
70
+ expect(kernelCall).not.toHaveBeenCalled();
71
+ });
72
+ it('refuses a non-numeric --cursor with CLIError/VALIDATION_FAILED, before any network call', async () => {
73
+ await expect(runRoleAccountable('ROL-2', { cursor: 'not-a-timestamp' })).rejects.toBeInstanceOf(CLIError);
74
+ expect(kernelCall).not.toHaveBeenCalled();
75
+ });
76
+ it('refuses a fractional --limit (not a whole number)', async () => {
77
+ await expect(runRoleAccountable('ROL-2', { limit: '1.5' })).rejects.toMatchObject({
78
+ code: ErrorCode.VALIDATION_FAILED,
79
+ });
80
+ expect(kernelCall).not.toHaveBeenCalled();
81
+ });
82
+ // PR #856 review round 3 (Codex P2, PRRT_kwDORS4ils6gQrZI): a whole number outside the
83
+ // advertised 1-200 range must be refused HERE, before the network call, not silently
84
+ // clamped server-side to a different page size than the caller asked for.
85
+ it.each(['0', '-1', '201'])('refuses --limit %s (outside the advertised 1-200 range)', async (limit) => {
86
+ await expect(runRoleAccountable('ROL-2', { limit })).rejects.toMatchObject({
87
+ code: ErrorCode.VALIDATION_FAILED,
88
+ });
89
+ expect(kernelCall).not.toHaveBeenCalled();
90
+ });
91
+ it('accepts the boundary values --limit 1 and --limit 200', async () => {
92
+ await runRoleAccountable('ROL-2', { limit: '1' });
93
+ await runRoleAccountable('ROL-2', { limit: '200' });
94
+ expect(kernelCall).toHaveBeenCalledTimes(2);
95
+ });
96
+ });
97
+ describe('formatRoleAccountable', () => {
98
+ it('prints "not recorded yet" for an empty explicit and reporting section', () => {
99
+ const text = formatRoleAccountable(emptyResult);
100
+ expect(text).toContain('explicit (owns): not recorded yet');
101
+ expect(text).toContain('reporting (reports on): not recorded yet');
102
+ });
103
+ it('lists explicit and reporting rows separately, never merged', () => {
104
+ const text = formatRoleAccountable({
105
+ ...emptyResult,
106
+ explicit: [OWNED], reporting: [REPORTED],
107
+ });
108
+ expect(text).toContain('explicit (owns):');
109
+ expect(text).toContain('OBJ-1');
110
+ expect(text).toContain('reporting (reports on):');
111
+ expect(text).toContain('KR-1');
112
+ // Never merged: OBJ-1 must not appear in the reporting section's own lines.
113
+ const reportingSection = text.split('reporting (reports on):')[1] ?? '';
114
+ expect(reportingSection).not.toContain('OBJ-1');
115
+ });
116
+ it('names the holders, tagging a placeholder or invited holder with that word (TASK-636)', () => {
117
+ expect(formatRoleAccountable(emptyResult)).toContain('holders: none');
118
+ const text = formatRoleAccountable({
119
+ ...emptyResult,
120
+ holders: [
121
+ { personId: 'p1', displayName: 'Ann', status: 'active', teamName: 'Core' },
122
+ { personId: 'p2', displayName: 'Jan Jansen', status: 'placeholder', teamName: 'Core' },
123
+ { personId: 'p3', displayName: 'Mathijs', status: 'invited', teamName: null },
124
+ ],
125
+ });
126
+ expect(text).toContain(' Ann in Core');
127
+ expect(text).toContain(' Jan Jansen (Not invited) in Core');
128
+ expect(text).toContain(' Mathijs (Invited)');
129
+ });
130
+ it('always reports inherited as not-computed, with the reason, never faked as empty', () => {
131
+ const text = formatRoleAccountable(emptyResult);
132
+ expect(text).toContain('inherited: not-computed');
133
+ expect(text).toContain(emptyResult.inheritedNotComputedReason);
134
+ });
135
+ it('notes truncation on the relevant section only', () => {
136
+ const text = formatRoleAccountable({ ...emptyResult, explicit: [OWNED], explicitTruncated: true });
137
+ const explicitSection = text.split('reporting (reports on):')[0] ?? '';
138
+ expect(explicitSection).toContain('scan incomplete, more may exist');
139
+ });
140
+ // PRRT_kwDORS4ils6gQAqo (review): the truncation hint used to CLAIM a cursor was printed
141
+ // without ever printing one. `nextCursor` must actually appear so a caller (human or agent)
142
+ // can literally copy it into --cursor.
143
+ it('renders the REAL nextCursor value when explicit is truncated, not just a bare claim', () => {
144
+ const text = formatRoleAccountable({
145
+ ...emptyResult, explicit: [OWNED], explicitTruncated: true, nextCursor: 1700000000000,
146
+ });
147
+ expect(text).toContain('--cursor 1700000000000');
148
+ });
149
+ // reporting has no cursor support (PR-1's own design — only `explicit` accepts one). A
150
+ // truncated reporting page must say so plainly, never point at a flag the gateway ignores.
151
+ it('states plainly that reporting has NO cursor when truncated, never a fake cursor hint', () => {
152
+ const text = formatRoleAccountable({
153
+ ...emptyResult, reporting: [REPORTED], reportingTruncated: true,
154
+ });
155
+ const reportingSection = text.split('reporting (reports on):')[1] ?? '';
156
+ expect(reportingSection).toContain('no cursor');
157
+ expect(reportingSection).not.toContain('--cursor');
158
+ });
159
+ it('returns "Role not found." for a null result', () => {
160
+ expect(formatRoleAccountable(null)).toBe('Role not found.');
161
+ });
162
+ // PR #856 review round 3 (Codex P2, PRRT_kwDORS4ils6gQrY9): an empty-but-truncated response
163
+ // (canonicalKey narrowing filtered out every row on this page, but the scan is incomplete and
164
+ // a real cursor exists) must never print the plain "not recorded yet" empty state — that
165
+ // swallows the cursor and falsely claims the role has no matching entries at all.
166
+ it('shows truncation and the cursor even when the page is empty (empty-but-truncated)', () => {
167
+ const text = formatRoleAccountable({
168
+ ...emptyResult, explicit: [], explicitTruncated: true, nextCursor: 1700000000000,
169
+ });
170
+ const explicitSection = text.split('reporting (reports on):')[0] ?? '';
171
+ expect(explicitSection).not.toContain('explicit (owns): not recorded yet\n');
172
+ expect(explicitSection).toContain('--cursor 1700000000000');
173
+ });
174
+ // PR #856 review round 3 (Codex P2, PRRT_kwDORS4ils6gQrZW): a tension's domain workflowStatus
175
+ // (open/closed) must render distinctly from its trust status, or two very different rows both
176
+ // print as `[tension/accepted]`.
177
+ it('renders the workflow status carried by a row, distinguishing open from closed', () => {
178
+ const openTension = { id: 'doc-ten-1', entryId: 'TEN-1', name: 'An open tension', canonicalKey: 'tension', collectionSlug: 'tensions', status: 'accepted', workflowStatus: 'open' };
179
+ const closedTension = { id: 'doc-ten-2', entryId: 'TEN-2', name: 'A closed tension', canonicalKey: 'tension', collectionSlug: 'tensions', status: 'accepted', workflowStatus: 'closed' };
180
+ const text = formatRoleAccountable({ ...emptyResult, explicit: [openTension, closedTension] });
181
+ expect(text).toContain('[tensions/accepted / open]');
182
+ expect(text).toContain('[tensions/accepted / closed]');
183
+ });
184
+ // WP-771 S1b round 2 (Codex P2, PRRT_kwDORS4ils6lGWJ0): the bracket must show the real
185
+ // collection slug, not canonicalKey (the semantic type) — door parity with the MCP `role`
186
+ // tool's own formatRow fix this round (packages/mcp-server/src/tools/role.ts), and with
187
+ // `pb get`'s own bracket fix (packages/cli/src/formatters/entry.ts).
188
+ it("prints the row's collectionSlug in the bracket, never canonicalKey", () => {
189
+ const text = formatRoleAccountable({ ...emptyResult, explicit: [OWNED] });
190
+ expect(text).toContain('[objectives/accepted]');
191
+ expect(text).not.toContain('[objective/accepted]');
192
+ });
193
+ it('falls back to "?" when a row has no collectionSlug', () => {
194
+ const rowWithoutSlug = { id: 'doc-obj-2', entryId: 'OBJ-2', name: 'Unresolved', canonicalKey: 'objective', status: 'accepted' };
195
+ const text = formatRoleAccountable({ ...emptyResult, explicit: [rowWithoutSlug] });
196
+ expect(text).toContain('[?/accepted]');
197
+ });
198
+ // WP-771 S1b round 2 (Codex P2, PRRT_kwDORS4ils6lGWJs class): a collectionSlug with an
199
+ // embedded newline must not forge an extra row, same treatment as name/workflowStatus above.
200
+ it('sanitizes an embedded newline in collectionSlug instead of forging an extra row', () => {
201
+ const evilRow = { ...OWNED, collectionSlug: 'objectives\nFAKE ROW: nothing to see here' };
202
+ const text = formatRoleAccountable({ ...emptyResult, explicit: [evilRow] });
203
+ expect(text.split('\n')).not.toContain(' FAKE ROW: nothing to see here');
204
+ expect(text).toContain('objectives FAKE ROW: nothing to see here');
205
+ });
206
+ // PR #872 review round 3 (Codex P2): workflowStatus is stored content (a workspace
207
+ // collection's validWorkflowStatuses declaration), vocabulary-checked but never
208
+ // terminal-safety-checked — an embedded newline must not forge an extra row.
209
+ it('sanitizes an embedded newline in workflowStatus instead of forging an extra row', () => {
210
+ const evilRow = { id: 'doc-ten-1', entryId: 'TEN-1', name: 'A tension', canonicalKey: 'tension', status: 'accepted', workflowStatus: 'open\nFAKE ROW: nothing to see here' };
211
+ const text = formatRoleAccountable({ ...emptyResult, explicit: [evilRow] });
212
+ expect(text.split('\n')).not.toContain(' FAKE ROW: nothing to see here');
213
+ expect(text).toContain('open FAKE ROW: nothing to see here');
214
+ });
215
+ });
216
+ // TASK-633 S3c (WP-808, DEC-1954): `pb role seat` / `pb role unseat` call the same kernel doors as the
217
+ // MCP role tool and print the same sentence (packages/mcp-server/src/tools/__tests__/role.test.ts).
218
+ describe('pb role seat / unseat', () => {
219
+ const seated = {
220
+ outcome: 'applied', operation: 'role.seat', created: true, person: 'Jan Jansen', personId: 'p1', personStatus: 'placeholder',
221
+ role: 'ROL-8', roleName: 'Product Analyst', team: 'TEAM-1', teamName: 'Product',
222
+ };
223
+ let printed;
224
+ beforeEach(() => {
225
+ vi.clearAllMocks();
226
+ getConfigOrGuide.mockResolvedValue({ apiKey: 'pb_sk_test', siteUrl: 'https://example.test' });
227
+ readSession.mockReturnValue({ sessionId: 'sess-1' });
228
+ isJsonMode.mockReturnValue(false);
229
+ printed = [];
230
+ vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => { printed.push(String(chunk)); return true; });
231
+ });
232
+ it('seat: a new person by name calls organisation.seatInRole with the session and prints who was seated as what', async () => {
233
+ kernelCallWithSession.mockResolvedValue(seated);
234
+ await runRoleSeat('ROL-8', { newPerson: 'Jan Jansen' });
235
+ expect(kernelCallWithSession).toHaveBeenCalledWith('organisation.seatInRole', {
236
+ roleRef: 'ROL-8', targetPersonRef: undefined, newPersonName: 'Jan Jansen', teamRef: undefined, sessionId: 'sess-1',
237
+ });
238
+ expect(printed.join('')).toBe('Seated Jan Jansen (Not invited) [p1] as Product Analyst (ROL-8) in Product.\n');
239
+ });
240
+ it('seat: the same placeholder again reads as confirmed (the kernel reuses the person by exact name)', async () => {
241
+ kernelCallWithSession.mockResolvedValue({ ...seated, created: false });
242
+ await runRoleSeat('ROL-8', { newPerson: 'Jan Jansen' });
243
+ expect(printed.join('')).toBe('Confirmed Jan Jansen (Not invited) [p1] as Product Analyst (ROL-8) in Product.\n');
244
+ });
245
+ it('seat: an existing person with --team (Team Lead) forwards the team, and an active person carries no status tag', async () => {
246
+ kernelCallWithSession.mockResolvedValue({ ...seated, created: false, person: 'Ada', personStatus: 'active', roleName: 'Team Lead', role: 'ROL-1' });
247
+ await runRoleSeat('ROL-1', { person: 'ada@example.test', team: 'TEAM-1' });
248
+ expect(kernelCallWithSession).toHaveBeenCalledWith('organisation.seatInRole', expect.objectContaining({ roleRef: 'ROL-1', targetPersonRef: 'ada@example.test', teamRef: 'TEAM-1' }));
249
+ expect(printed.join('')).toBe('Confirmed Ada [p1] as Team Lead (ROL-1) in Product.\n');
250
+ });
251
+ it('seat: refuses both or neither person before any call', async () => {
252
+ await expect(runRoleSeat('ROL-8', { person: 'p1', newPerson: 'Jan' })).rejects.toThrow('not both');
253
+ await expect(runRoleSeat('ROL-8', {})).rejects.toMatchObject({ code: ErrorCode.VALIDATION_FAILED, message: expect.stringContaining('Say who to seat') });
254
+ expect(kernelCallWithSession).not.toHaveBeenCalled();
255
+ });
256
+ it('seat: a kernel refusal fails the command with its reason, and the required action as guidance', async () => {
257
+ kernelCallWithSession.mockResolvedValue({ outcome: 'refused', refusal: { code: 'team_lead_required', reason: "Only the team's Team Lead can change its seats.", requiredAction: 'Ask the Team Lead.' } });
258
+ await expect(runRoleSeat('ROL-8', { person: 'p1' })).rejects.toMatchObject({
259
+ message: "Only the team's Team Lead can change its seats.", code: ErrorCode.AUTH_DENIED, guidance: 'Ask the Team Lead.',
260
+ });
261
+ expect(printed.join('')).toBe('');
262
+ });
263
+ it('seat and unseat refuse without an active session, before any call', async () => {
264
+ readSession.mockReturnValue(null);
265
+ await expect(runRoleSeat('ROL-8', { person: 'p1' })).rejects.toThrow('No active session');
266
+ await expect(runRoleUnseat('ROL-8', { person: 'p1' })).rejects.toThrow('No active session');
267
+ expect(kernelCallWithSession).not.toHaveBeenCalled();
268
+ });
269
+ it('unseat: calls organisation.unseatFromRole and says who lost which role, or that nothing changed', async () => {
270
+ kernelCallWithSession.mockResolvedValue({ ...seated, operation: 'role.unseat', removed: true, personStatus: undefined });
271
+ await runRoleUnseat('ROL-8', { person: 'p1' });
272
+ expect(kernelCallWithSession).toHaveBeenCalledWith('organisation.unseatFromRole', { roleRef: 'ROL-8', targetPersonRef: 'p1', teamRef: undefined, sessionId: 'sess-1' });
273
+ kernelCallWithSession.mockResolvedValue({ ...seated, operation: 'role.unseat', removed: false, personStatus: undefined });
274
+ await runRoleUnseat('ROL-8', { person: 'p1' });
275
+ expect(printed.join('')).toBe('Unseated Jan Jansen from Product Analyst (ROL-8) in Product.\nJan Jansen did not hold Product Analyst (ROL-8) in Product; nothing changed.\n');
276
+ });
277
+ it('unseat: the last active Team Lead refusal is a validation failure naming the reason', async () => {
278
+ kernelCallWithSession.mockResolvedValue({ outcome: 'refused', refusal: { code: 'last_team_lead', reason: 'Product needs an active Team Lead.' } });
279
+ await expect(runRoleUnseat('ROL-1', { person: 'p1', team: 'TEAM-1' })).rejects.toMatchObject({
280
+ message: 'Product needs an active Team Lead.', code: ErrorCode.VALIDATION_FAILED,
281
+ });
282
+ });
283
+ it('--json prints the kernel result as it came', async () => {
284
+ isJsonMode.mockReturnValue(true);
285
+ kernelCallWithSession.mockResolvedValue(seated);
286
+ await runRoleSeat('ROL-8', { newPerson: 'Jan Jansen' });
287
+ expect(JSON.parse(printed.join(''))).toEqual(seated);
288
+ });
289
+ });
290
+ describe('pb role list (TEN-4847)', () => {
291
+ const roles = (n, from = 0) => Array.from({ length: n }, (_, i) => ({ entryId: `ROL-${from + i + 1}`, name: `Role ${from + i + 1}`, status: 'accepted', workflowStatus: null }));
292
+ const placed = (team) => ({ owner: { kind: 'placed', of: 'role', team: { name: team }, ancestors: [], ancestorsTruncated: false } });
293
+ function route(pages) {
294
+ let page = 0;
295
+ kernelCall.mockImplementation(async (name, args) => {
296
+ if (name === 'chain.listEntriesPaged')
297
+ return pages[page++];
298
+ if (name === 'chain.getEntry')
299
+ return placed('Agent Engineering');
300
+ if (name === 'chain.listByRole') {
301
+ return { ...emptyResult, holders: args.roleId === 'ROL-1' ? [{ personId: 'p1', displayName: 'Ann', status: 'active', teamName: 'Agent Engineering' }] : [] };
302
+ }
303
+ throw new Error(`unexpected ${name}`);
304
+ });
305
+ }
306
+ beforeEach(() => {
307
+ vi.clearAllMocks();
308
+ getConfigOrGuide.mockResolvedValue({ apiKey: 'pb_sk_test', siteUrl: 'https://example.test' });
309
+ });
310
+ it('reads the roles collection through the paged read and prints id, name, team and holder count', async () => {
311
+ route([{ rows: roles(2), continueCursor: null }]);
312
+ const result = await readRoleList();
313
+ expect(kernelCall).toHaveBeenCalledWith('chain.listEntriesPaged', { collectionSlug: 'roles', cursor: undefined, pageSize: ROLE_LIST_CAP });
314
+ expect(kernelCall).toHaveBeenCalledWith('chain.listByRole', { roleId: 'ROL-1', limit: 1 });
315
+ expect(result.truncated).toBe(false);
316
+ expect(formatRoleList(result)).toBe([
317
+ 'Roles (2):',
318
+ ' ROL-1 Role 1 Team: Agent Engineering 1 holder',
319
+ ' ROL-2 Role 2 Team: Agent Engineering 0 holders',
320
+ ].join('\n'));
321
+ });
322
+ it('follows the cursor and stops at the cap, saying the list is cut', async () => {
323
+ route([
324
+ { rows: roles(30), continueCursor: 'c1' },
325
+ { rows: roles(30, 30), continueCursor: 'c2' },
326
+ { rows: roles(30, 60), continueCursor: null },
327
+ ]);
328
+ const result = await readRoleList();
329
+ expect(result.roles).toHaveLength(ROLE_LIST_CAP);
330
+ expect(result.truncated).toBe(true);
331
+ const pageCalls = kernelCall.mock.calls.filter((c) => c[0] === 'chain.listEntriesPaged');
332
+ expect(pageCalls.map((c) => c[1].pageSize)).toEqual([ROLE_LIST_CAP, ROLE_LIST_CAP - 30]);
333
+ expect(formatRoleList(result).split('\n').at(-1)).toBe(` (list cut after ${ROLE_LIST_CAP} roles; more may exist)`);
334
+ });
335
+ it('an empty workspace says so', () => {
336
+ expect(formatRoleList({ roles: [], truncated: false })).toBe('No roles in this workspace.');
337
+ });
338
+ it('an empty but cut read never claims the workspace has no roles', () => {
339
+ expect(formatRoleList({ roles: [], truncated: true })).toBe('No roles read yet.\n (list cut after 0 roles; more may exist)');
340
+ });
341
+ it('stops after the page bound when pages come back empty', async () => {
342
+ route(Array.from({ length: 11 }, () => ({ rows: [], continueCursor: 'more' })));
343
+ const result = await readRoleList();
344
+ expect(result).toEqual({ roles: [], truncated: true });
345
+ expect(kernelCall.mock.calls.filter((c) => c[0] === 'chain.listEntriesPaged')).toHaveLength(10);
346
+ });
347
+ });
348
+ //# sourceMappingURL=role.test.js.map