@productbrain/cli 0.1.0-beta.22 → 0.1.0-beta.2200

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 (1016) hide show
  1. package/README.md +72 -172
  2. package/dist/__tests__/adapters.test.js +89 -1
  3. package/dist/__tests__/adapters.test.js.map +1 -1
  4. package/dist/__tests__/audit.test.js +65 -44
  5. package/dist/__tests__/audit.test.js.map +1 -1
  6. package/dist/__tests__/authority-domains-queue.test.d.ts +2 -0
  7. package/dist/__tests__/authority-domains-queue.test.d.ts.map +1 -0
  8. package/dist/__tests__/authority-domains-queue.test.js +169 -0
  9. package/dist/__tests__/authority-domains-queue.test.js.map +1 -0
  10. package/dist/__tests__/authority-domains.test.d.ts +2 -0
  11. package/dist/__tests__/authority-domains.test.d.ts.map +1 -0
  12. package/dist/__tests__/authority-domains.test.js +48 -0
  13. package/dist/__tests__/authority-domains.test.js.map +1 -0
  14. package/dist/__tests__/batch-transformations.test.js +37 -0
  15. package/dist/__tests__/batch-transformations.test.js.map +1 -1
  16. package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
  17. package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
  18. package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
  19. package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
  20. package/dist/__tests__/capture-receipt-coaching.test.d.ts +2 -0
  21. package/dist/__tests__/capture-receipt-coaching.test.d.ts.map +1 -0
  22. package/dist/__tests__/capture-receipt-coaching.test.js +89 -0
  23. package/dist/__tests__/capture-receipt-coaching.test.js.map +1 -0
  24. package/dist/__tests__/capture-receipt-domain.test.d.ts +2 -0
  25. package/dist/__tests__/capture-receipt-domain.test.d.ts.map +1 -0
  26. package/dist/__tests__/capture-receipt-domain.test.js +29 -0
  27. package/dist/__tests__/capture-receipt-domain.test.js.map +1 -0
  28. package/dist/__tests__/capture.test.js +653 -40
  29. package/dist/__tests__/capture.test.js.map +1 -1
  30. package/dist/__tests__/coaching-mirror-drift.test.d.ts +2 -0
  31. package/dist/__tests__/coaching-mirror-drift.test.d.ts.map +1 -0
  32. package/dist/__tests__/coaching-mirror-drift.test.js +47 -0
  33. package/dist/__tests__/coaching-mirror-drift.test.js.map +1 -0
  34. package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
  35. package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
  36. package/dist/__tests__/codex-prep-parity.test.js +107 -0
  37. package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
  38. package/dist/__tests__/collection-registry-seed-drift.test.d.ts +2 -0
  39. package/dist/__tests__/collection-registry-seed-drift.test.d.ts.map +1 -0
  40. package/dist/__tests__/collection-registry-seed-drift.test.js +58 -0
  41. package/dist/__tests__/collection-registry-seed-drift.test.js.map +1 -0
  42. package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
  43. package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
  44. package/dist/__tests__/config-prod-fallthrough.test.js +82 -0
  45. package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
  46. package/dist/__tests__/config.test.d.ts +8 -0
  47. package/dist/__tests__/config.test.d.ts.map +1 -0
  48. package/dist/__tests__/config.test.js +566 -0
  49. package/dist/__tests__/config.test.js.map +1 -0
  50. package/dist/__tests__/constants.test.d.ts +2 -0
  51. package/dist/__tests__/constants.test.d.ts.map +1 -0
  52. package/dist/__tests__/constants.test.js +146 -0
  53. package/dist/__tests__/constants.test.js.map +1 -0
  54. package/dist/__tests__/constellation.test.js +16 -22
  55. package/dist/__tests__/constellation.test.js.map +1 -1
  56. package/dist/__tests__/context-strategy.test.js +8 -8
  57. package/dist/__tests__/context-strategy.test.js.map +1 -1
  58. package/dist/__tests__/conversation.test.d.ts +2 -0
  59. package/dist/__tests__/conversation.test.d.ts.map +1 -0
  60. package/dist/__tests__/conversation.test.js +113 -0
  61. package/dist/__tests__/conversation.test.js.map +1 -0
  62. package/dist/__tests__/entry-formatter.test.d.ts +2 -0
  63. package/dist/__tests__/entry-formatter.test.d.ts.map +1 -0
  64. package/dist/__tests__/entry-formatter.test.js +82 -0
  65. package/dist/__tests__/entry-formatter.test.js.map +1 -0
  66. package/dist/__tests__/envelope-contract.test.d.ts +15 -0
  67. package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
  68. package/dist/__tests__/envelope-contract.test.js +152 -0
  69. package/dist/__tests__/envelope-contract.test.js.map +1 -0
  70. package/dist/__tests__/errors.test.d.ts +2 -0
  71. package/dist/__tests__/errors.test.d.ts.map +1 -0
  72. package/dist/__tests__/errors.test.js +125 -0
  73. package/dist/__tests__/errors.test.js.map +1 -0
  74. package/dist/__tests__/experiment.test.d.ts +6 -0
  75. package/dist/__tests__/experiment.test.d.ts.map +1 -0
  76. package/dist/__tests__/experiment.test.js +69 -0
  77. package/dist/__tests__/experiment.test.js.map +1 -0
  78. package/dist/__tests__/fields.test.js +36 -36
  79. package/dist/__tests__/fields.test.js.map +1 -1
  80. package/dist/__tests__/glossary.test.d.ts +2 -0
  81. package/dist/__tests__/glossary.test.d.ts.map +1 -0
  82. package/dist/__tests__/glossary.test.js +32 -0
  83. package/dist/__tests__/glossary.test.js.map +1 -0
  84. package/dist/__tests__/handshake-augment.test.d.ts +2 -0
  85. package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
  86. package/dist/__tests__/handshake-augment.test.js +424 -0
  87. package/dist/__tests__/handshake-augment.test.js.map +1 -0
  88. package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
  89. package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
  90. package/dist/__tests__/handshake-dormancy.test.js +207 -0
  91. package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
  92. package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
  93. package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
  94. package/dist/__tests__/handshake-formatter.test.js +67 -0
  95. package/dist/__tests__/handshake-formatter.test.js.map +1 -0
  96. package/dist/__tests__/handshake-preview.test.d.ts +2 -0
  97. package/dist/__tests__/handshake-preview.test.d.ts.map +1 -0
  98. package/dist/__tests__/handshake-preview.test.js +950 -0
  99. package/dist/__tests__/handshake-preview.test.js.map +1 -0
  100. package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
  101. package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
  102. package/dist/__tests__/handshake.e2e.test.js +1255 -0
  103. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  104. package/dist/__tests__/handshake.test.js +796 -19
  105. package/dist/__tests__/handshake.test.js.map +1 -1
  106. package/dist/__tests__/health-gap-kinds-drift.test.d.ts +2 -0
  107. package/dist/__tests__/health-gap-kinds-drift.test.d.ts.map +1 -0
  108. package/dist/__tests__/health-gap-kinds-drift.test.js +41 -0
  109. package/dist/__tests__/health-gap-kinds-drift.test.js.map +1 -0
  110. package/dist/__tests__/hook-intents.test.d.ts +2 -0
  111. package/dist/__tests__/hook-intents.test.d.ts.map +1 -0
  112. package/dist/__tests__/hook-intents.test.js +184 -0
  113. package/dist/__tests__/hook-intents.test.js.map +1 -0
  114. package/dist/__tests__/ingest.test.js +37 -28
  115. package/dist/__tests__/ingest.test.js.map +1 -1
  116. package/dist/__tests__/init.test.d.ts +7 -0
  117. package/dist/__tests__/init.test.d.ts.map +1 -0
  118. package/dist/__tests__/init.test.js +146 -0
  119. package/dist/__tests__/init.test.js.map +1 -0
  120. package/dist/__tests__/login.test.d.ts +2 -0
  121. package/dist/__tests__/login.test.d.ts.map +1 -0
  122. package/dist/__tests__/login.test.js +167 -0
  123. package/dist/__tests__/login.test.js.map +1 -0
  124. package/dist/__tests__/manifest.test.d.ts +6 -0
  125. package/dist/__tests__/manifest.test.d.ts.map +1 -0
  126. package/dist/__tests__/manifest.test.js +255 -0
  127. package/dist/__tests__/manifest.test.js.map +1 -0
  128. package/dist/__tests__/method-publish-coherency.test.d.ts +9 -0
  129. package/dist/__tests__/method-publish-coherency.test.d.ts.map +1 -0
  130. package/dist/__tests__/method-publish-coherency.test.js +71 -0
  131. package/dist/__tests__/method-publish-coherency.test.js.map +1 -0
  132. package/dist/__tests__/method-registry.integration.test.d.ts +6 -0
  133. package/dist/__tests__/method-registry.integration.test.d.ts.map +1 -0
  134. package/dist/__tests__/method-registry.integration.test.js +18 -0
  135. package/dist/__tests__/method-registry.integration.test.js.map +1 -0
  136. package/dist/__tests__/method-registry.test.d.ts +14 -0
  137. package/dist/__tests__/method-registry.test.d.ts.map +1 -0
  138. package/dist/__tests__/method-registry.test.js +134 -0
  139. package/dist/__tests__/method-registry.test.js.map +1 -0
  140. package/dist/__tests__/notice-marker.test.d.ts +2 -0
  141. package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
  142. package/dist/__tests__/notice-marker.test.js +41 -0
  143. package/dist/__tests__/notice-marker.test.js.map +1 -0
  144. package/dist/__tests__/onboarding-path-b.test.d.ts +2 -0
  145. package/dist/__tests__/onboarding-path-b.test.d.ts.map +1 -0
  146. package/dist/__tests__/onboarding-path-b.test.js +46 -0
  147. package/dist/__tests__/onboarding-path-b.test.js.map +1 -0
  148. package/dist/__tests__/onboarding.test.d.ts +6 -0
  149. package/dist/__tests__/onboarding.test.d.ts.map +1 -0
  150. package/dist/__tests__/onboarding.test.js +347 -0
  151. package/dist/__tests__/onboarding.test.js.map +1 -0
  152. package/dist/__tests__/orient.test.js +365 -11
  153. package/dist/__tests__/orient.test.js.map +1 -1
  154. package/dist/__tests__/perimeter.test.d.ts +2 -0
  155. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  156. package/dist/__tests__/perimeter.test.js +165 -0
  157. package/dist/__tests__/perimeter.test.js.map +1 -0
  158. package/dist/__tests__/personal-layer.test.d.ts +11 -0
  159. package/dist/__tests__/personal-layer.test.d.ts.map +1 -0
  160. package/dist/__tests__/personal-layer.test.js +268 -0
  161. package/dist/__tests__/personal-layer.test.js.map +1 -0
  162. package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
  163. package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
  164. package/dist/__tests__/preview-key-refresh.test.js +126 -0
  165. package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
  166. package/dist/__tests__/profiles.test.d.ts +2 -0
  167. package/dist/__tests__/profiles.test.d.ts.map +1 -0
  168. package/dist/__tests__/profiles.test.js +320 -0
  169. package/dist/__tests__/profiles.test.js.map +1 -0
  170. package/dist/__tests__/promote-batch.test.d.ts +2 -0
  171. package/dist/__tests__/promote-batch.test.d.ts.map +1 -0
  172. package/dist/__tests__/promote-batch.test.js +185 -0
  173. package/dist/__tests__/promote-batch.test.js.map +1 -0
  174. package/dist/__tests__/promote.test.js +184 -37
  175. package/dist/__tests__/promote.test.js.map +1 -1
  176. package/dist/__tests__/prompts.test.d.ts +6 -0
  177. package/dist/__tests__/prompts.test.d.ts.map +1 -0
  178. package/dist/__tests__/prompts.test.js +146 -0
  179. package/dist/__tests__/prompts.test.js.map +1 -0
  180. package/dist/__tests__/proof-run.test.d.ts +2 -0
  181. package/dist/__tests__/proof-run.test.d.ts.map +1 -0
  182. package/dist/__tests__/proof-run.test.js +255 -0
  183. package/dist/__tests__/proof-run.test.js.map +1 -0
  184. package/dist/__tests__/proposals.test.js +24 -47
  185. package/dist/__tests__/proposals.test.js.map +1 -1
  186. package/dist/__tests__/relate.test.js +34 -36
  187. package/dist/__tests__/relate.test.js.map +1 -1
  188. package/dist/__tests__/runner.test.js +19 -15
  189. package/dist/__tests__/runner.test.js.map +1 -1
  190. package/dist/__tests__/session-close-loop.test.d.ts +2 -0
  191. package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
  192. package/dist/__tests__/session-close-loop.test.js +231 -0
  193. package/dist/__tests__/session-close-loop.test.js.map +1 -0
  194. package/dist/__tests__/session-label.test.d.ts +2 -0
  195. package/dist/__tests__/session-label.test.d.ts.map +1 -0
  196. package/dist/__tests__/session-label.test.js +46 -0
  197. package/dist/__tests__/session-label.test.js.map +1 -0
  198. package/dist/__tests__/session-list-show.test.d.ts +2 -0
  199. package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
  200. package/dist/__tests__/session-list-show.test.js +174 -0
  201. package/dist/__tests__/session-list-show.test.js.map +1 -0
  202. package/dist/__tests__/session-reset.test.d.ts +2 -0
  203. package/dist/__tests__/session-reset.test.d.ts.map +1 -0
  204. package/dist/__tests__/session-reset.test.js +138 -0
  205. package/dist/__tests__/session-reset.test.js.map +1 -0
  206. package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
  207. package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
  208. package/dist/__tests__/session-resume-backstop.test.js +99 -0
  209. package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
  210. package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
  211. package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
  212. package/dist/__tests__/session-start-key-refresh.test.js +179 -0
  213. package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
  214. package/dist/__tests__/session-state-machine.test.d.ts +2 -0
  215. package/dist/__tests__/session-state-machine.test.d.ts.map +1 -0
  216. package/dist/__tests__/session-state-machine.test.js +379 -0
  217. package/dist/__tests__/session-state-machine.test.js.map +1 -0
  218. package/dist/__tests__/session-switch.test.d.ts +2 -0
  219. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  220. package/dist/__tests__/session-switch.test.js +132 -0
  221. package/dist/__tests__/session-switch.test.js.map +1 -0
  222. package/dist/__tests__/session-touch.test.js +11 -11
  223. package/dist/__tests__/session-touch.test.js.map +1 -1
  224. package/dist/__tests__/session.test.js +4 -10
  225. package/dist/__tests__/session.test.js.map +1 -1
  226. package/dist/__tests__/setup-ingest.test.d.ts +2 -0
  227. package/dist/__tests__/setup-ingest.test.d.ts.map +1 -0
  228. package/dist/__tests__/setup-ingest.test.js +71 -0
  229. package/dist/__tests__/setup-ingest.test.js.map +1 -0
  230. package/dist/__tests__/setup-resolver.test.d.ts +14 -0
  231. package/dist/__tests__/setup-resolver.test.d.ts.map +1 -0
  232. package/dist/__tests__/setup-resolver.test.js +228 -0
  233. package/dist/__tests__/setup-resolver.test.js.map +1 -0
  234. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  235. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  236. package/dist/__tests__/skill-vocabulary.test.js +192 -0
  237. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  238. package/dist/__tests__/spinner-labels.test.d.ts +2 -0
  239. package/dist/__tests__/spinner-labels.test.d.ts.map +1 -0
  240. package/dist/__tests__/spinner-labels.test.js +23 -0
  241. package/dist/__tests__/spinner-labels.test.js.map +1 -0
  242. package/dist/__tests__/state.test.d.ts +6 -0
  243. package/dist/__tests__/state.test.d.ts.map +1 -0
  244. package/dist/__tests__/state.test.js +97 -0
  245. package/dist/__tests__/state.test.js.map +1 -0
  246. package/dist/__tests__/surface-profiles.test.js +146 -2
  247. package/dist/__tests__/surface-profiles.test.js.map +1 -1
  248. package/dist/__tests__/surfaces.test.d.ts +2 -0
  249. package/dist/__tests__/surfaces.test.d.ts.map +1 -0
  250. package/dist/__tests__/surfaces.test.js +46 -0
  251. package/dist/__tests__/surfaces.test.js.map +1 -0
  252. package/dist/__tests__/update-check.test.d.ts +2 -0
  253. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  254. package/dist/__tests__/update-check.test.js +215 -0
  255. package/dist/__tests__/update-check.test.js.map +1 -0
  256. package/dist/__tests__/update.test.js +88 -81
  257. package/dist/__tests__/update.test.js.map +1 -1
  258. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  259. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  260. package/dist/__tests__/upgrade-runner.test.js +54 -0
  261. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  262. package/dist/__tests__/upgrade.test.d.ts +2 -0
  263. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  264. package/dist/__tests__/upgrade.test.js +56 -0
  265. package/dist/__tests__/upgrade.test.js.map +1 -0
  266. package/dist/__tests__/verify-formatter.test.d.ts +2 -0
  267. package/dist/__tests__/verify-formatter.test.d.ts.map +1 -0
  268. package/dist/__tests__/verify-formatter.test.js +85 -0
  269. package/dist/__tests__/verify-formatter.test.js.map +1 -0
  270. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  271. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  272. package/dist/__tests__/vocabulary-leak.test.js +539 -0
  273. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  274. package/dist/__tests__/workspace.test.d.ts +2 -0
  275. package/dist/__tests__/workspace.test.d.ts.map +1 -0
  276. package/dist/__tests__/workspace.test.js +328 -0
  277. package/dist/__tests__/workspace.test.js.map +1 -0
  278. package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
  279. package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
  280. package/dist/__tests__/workspaceNotice.test.js +338 -0
  281. package/dist/__tests__/workspaceNotice.test.js.map +1 -0
  282. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  283. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  284. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  285. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  286. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
  287. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
  288. package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
  289. package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
  290. package/dist/commands/__tests__/setup-state.test.d.ts +2 -0
  291. package/dist/commands/__tests__/setup-state.test.d.ts.map +1 -0
  292. package/dist/commands/__tests__/setup-state.test.js +194 -0
  293. package/dist/commands/__tests__/setup-state.test.js.map +1 -0
  294. package/dist/commands/accept.d.ts.map +1 -1
  295. package/dist/commands/accept.js +10 -6
  296. package/dist/commands/accept.js.map +1 -1
  297. package/dist/commands/admin/cockpit.d.ts +90 -0
  298. package/dist/commands/admin/cockpit.d.ts.map +1 -0
  299. package/dist/commands/admin/cockpit.js +618 -0
  300. package/dist/commands/admin/cockpit.js.map +1 -0
  301. package/dist/commands/admin/index.d.ts +21 -0
  302. package/dist/commands/admin/index.d.ts.map +1 -0
  303. package/dist/commands/admin/index.js +256 -0
  304. package/dist/commands/admin/index.js.map +1 -0
  305. package/dist/commands/admin/inspect.d.ts +30 -0
  306. package/dist/commands/admin/inspect.d.ts.map +1 -0
  307. package/dist/commands/admin/inspect.js +555 -0
  308. package/dist/commands/admin/inspect.js.map +1 -0
  309. package/dist/commands/admin/inspect.test.d.ts +7 -0
  310. package/dist/commands/admin/inspect.test.d.ts.map +1 -0
  311. package/dist/commands/admin/inspect.test.js +90 -0
  312. package/dist/commands/admin/inspect.test.js.map +1 -0
  313. package/dist/commands/admin/manage.d.ts +8 -0
  314. package/dist/commands/admin/manage.d.ts.map +1 -0
  315. package/dist/commands/admin/manage.js +260 -0
  316. package/dist/commands/admin/manage.js.map +1 -0
  317. package/dist/commands/admin/manage.test.d.ts +16 -0
  318. package/dist/commands/admin/manage.test.d.ts.map +1 -0
  319. package/dist/commands/admin/manage.test.js +159 -0
  320. package/dist/commands/admin/manage.test.js.map +1 -0
  321. package/dist/commands/admin/seed.d.ts +75 -0
  322. package/dist/commands/admin/seed.d.ts.map +1 -0
  323. package/dist/commands/admin/seed.js +944 -0
  324. package/dist/commands/admin/seed.js.map +1 -0
  325. package/dist/commands/admin/seed.test.d.ts +11 -0
  326. package/dist/commands/admin/seed.test.d.ts.map +1 -0
  327. package/dist/commands/admin/seed.test.js +127 -0
  328. package/dist/commands/admin/seed.test.js.map +1 -0
  329. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  330. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  331. package/dist/commands/admin/seedRegistryEntries.generated.js +153 -0
  332. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  333. package/dist/commands/admin/seedRegistryEntries.test.d.ts +13 -0
  334. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  335. package/dist/commands/admin/seedRegistryEntries.test.js +91 -0
  336. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  337. package/dist/commands/audit.d.ts.map +1 -1
  338. package/dist/commands/audit.js +42 -7
  339. package/dist/commands/audit.js.map +1 -1
  340. package/dist/commands/authority-domains.d.ts +157 -0
  341. package/dist/commands/authority-domains.d.ts.map +1 -0
  342. package/dist/commands/authority-domains.js +356 -0
  343. package/dist/commands/authority-domains.js.map +1 -0
  344. package/dist/commands/brief.d.ts.map +1 -1
  345. package/dist/commands/brief.js +10 -5
  346. package/dist/commands/brief.js.map +1 -1
  347. package/dist/commands/capture.d.ts +9 -0
  348. package/dist/commands/capture.d.ts.map +1 -1
  349. package/dist/commands/capture.js +316 -57
  350. package/dist/commands/capture.js.map +1 -1
  351. package/dist/commands/chain-walk.d.ts.map +1 -1
  352. package/dist/commands/chain-walk.js +8 -3
  353. package/dist/commands/chain-walk.js.map +1 -1
  354. package/dist/commands/changes.d.ts.map +1 -1
  355. package/dist/commands/changes.js +8 -3
  356. package/dist/commands/changes.js.map +1 -1
  357. package/dist/commands/codex-prep.d.ts +12 -1
  358. package/dist/commands/codex-prep.d.ts.map +1 -1
  359. package/dist/commands/codex-prep.js +25 -87
  360. package/dist/commands/codex-prep.js.map +1 -1
  361. package/dist/commands/collections.d.ts +22 -0
  362. package/dist/commands/collections.d.ts.map +1 -0
  363. package/dist/commands/collections.js +77 -0
  364. package/dist/commands/collections.js.map +1 -0
  365. package/dist/commands/connect-config.test.d.ts +2 -0
  366. package/dist/commands/connect-config.test.d.ts.map +1 -0
  367. package/dist/commands/connect-config.test.js +44 -0
  368. package/dist/commands/connect-config.test.js.map +1 -0
  369. package/dist/commands/connect-context.d.ts +45 -0
  370. package/dist/commands/connect-context.d.ts.map +1 -0
  371. package/dist/commands/connect-context.js +83 -0
  372. package/dist/commands/connect-context.js.map +1 -0
  373. package/dist/commands/connect-context.test.d.ts +2 -0
  374. package/dist/commands/connect-context.test.d.ts.map +1 -0
  375. package/dist/commands/connect-context.test.js +158 -0
  376. package/dist/commands/connect-context.test.js.map +1 -0
  377. package/dist/commands/connect-handoff.d.ts +51 -0
  378. package/dist/commands/connect-handoff.d.ts.map +1 -0
  379. package/dist/commands/connect-handoff.js +70 -0
  380. package/dist/commands/connect-handoff.js.map +1 -0
  381. package/dist/commands/connect-integration.test.d.ts +7 -0
  382. package/dist/commands/connect-integration.test.d.ts.map +1 -0
  383. package/dist/commands/connect-integration.test.js +219 -0
  384. package/dist/commands/connect-integration.test.js.map +1 -0
  385. package/dist/commands/connect-screens.d.ts +33 -0
  386. package/dist/commands/connect-screens.d.ts.map +1 -0
  387. package/dist/commands/connect-screens.js +124 -0
  388. package/dist/commands/connect-screens.js.map +1 -0
  389. package/dist/commands/connect.d.ts +42 -0
  390. package/dist/commands/connect.d.ts.map +1 -0
  391. package/dist/commands/connect.js +339 -0
  392. package/dist/commands/connect.js.map +1 -0
  393. package/dist/commands/connect.test.d.ts +6 -0
  394. package/dist/commands/connect.test.d.ts.map +1 -0
  395. package/dist/commands/connect.test.js +380 -0
  396. package/dist/commands/connect.test.js.map +1 -0
  397. package/dist/commands/constellation.d.ts.map +1 -1
  398. package/dist/commands/constellation.js +8 -3
  399. package/dist/commands/constellation.js.map +1 -1
  400. package/dist/commands/context.d.ts.map +1 -1
  401. package/dist/commands/context.js +8 -3
  402. package/dist/commands/context.js.map +1 -1
  403. package/dist/commands/cross-cut.js +2 -2
  404. package/dist/commands/cross-cut.js.map +1 -1
  405. package/dist/commands/doctor.d.ts +18 -0
  406. package/dist/commands/doctor.d.ts.map +1 -0
  407. package/dist/commands/doctor.js +297 -0
  408. package/dist/commands/doctor.js.map +1 -0
  409. package/dist/commands/doctor.test.d.ts +8 -0
  410. package/dist/commands/doctor.test.d.ts.map +1 -0
  411. package/dist/commands/doctor.test.js +461 -0
  412. package/dist/commands/doctor.test.js.map +1 -0
  413. package/dist/commands/fields.d.ts.map +1 -1
  414. package/dist/commands/fields.js +8 -4
  415. package/dist/commands/fields.js.map +1 -1
  416. package/dist/commands/files.d.ts +26 -0
  417. package/dist/commands/files.d.ts.map +1 -0
  418. package/dist/commands/files.js +160 -0
  419. package/dist/commands/files.js.map +1 -0
  420. package/dist/commands/files.test.d.ts +2 -0
  421. package/dist/commands/files.test.d.ts.map +1 -0
  422. package/dist/commands/files.test.js +243 -0
  423. package/dist/commands/files.test.js.map +1 -0
  424. package/dist/commands/get.d.ts.map +1 -1
  425. package/dist/commands/get.js +14 -6
  426. package/dist/commands/get.js.map +1 -1
  427. package/dist/commands/handshake.d.ts +227 -2
  428. package/dist/commands/handshake.d.ts.map +1 -1
  429. package/dist/commands/handshake.js +2175 -80
  430. package/dist/commands/handshake.js.map +1 -1
  431. package/dist/commands/ingest.d.ts.map +1 -1
  432. package/dist/commands/ingest.js +26 -9
  433. package/dist/commands/ingest.js.map +1 -1
  434. package/dist/commands/init.d.ts +14 -0
  435. package/dist/commands/init.d.ts.map +1 -0
  436. package/dist/commands/init.js +109 -0
  437. package/dist/commands/init.js.map +1 -0
  438. package/dist/commands/login.d.ts +4 -0
  439. package/dist/commands/login.d.ts.map +1 -1
  440. package/dist/commands/login.js +101 -38
  441. package/dist/commands/login.js.map +1 -1
  442. package/dist/commands/method.d.ts +99 -0
  443. package/dist/commands/method.d.ts.map +1 -0
  444. package/dist/commands/method.js +804 -0
  445. package/dist/commands/method.js.map +1 -0
  446. package/dist/commands/migrate-setup.d.ts +18 -0
  447. package/dist/commands/migrate-setup.d.ts.map +1 -0
  448. package/dist/commands/migrate-setup.js +148 -0
  449. package/dist/commands/migrate-setup.js.map +1 -0
  450. package/dist/commands/orient.d.ts +117 -2
  451. package/dist/commands/orient.d.ts.map +1 -1
  452. package/dist/commands/orient.js +166 -7
  453. package/dist/commands/orient.js.map +1 -1
  454. package/dist/commands/profile.d.ts +34 -0
  455. package/dist/commands/profile.d.ts.map +1 -0
  456. package/dist/commands/profile.js +170 -0
  457. package/dist/commands/profile.js.map +1 -0
  458. package/dist/commands/promote.d.ts +12 -1
  459. package/dist/commands/promote.d.ts.map +1 -1
  460. package/dist/commands/promote.js +178 -52
  461. package/dist/commands/promote.js.map +1 -1
  462. package/dist/commands/proof-run.d.ts +51 -0
  463. package/dist/commands/proof-run.d.ts.map +1 -0
  464. package/dist/commands/proof-run.js +209 -0
  465. package/dist/commands/proof-run.js.map +1 -0
  466. package/dist/commands/proposals.js +2 -2
  467. package/dist/commands/proposals.js.map +1 -1
  468. package/dist/commands/reject.d.ts.map +1 -1
  469. package/dist/commands/reject.js +14 -7
  470. package/dist/commands/reject.js.map +1 -1
  471. package/dist/commands/relate.d.ts.map +1 -1
  472. package/dist/commands/relate.js +55 -17
  473. package/dist/commands/relate.js.map +1 -1
  474. package/dist/commands/scoreboard.d.ts +28 -0
  475. package/dist/commands/scoreboard.d.ts.map +1 -0
  476. package/dist/commands/scoreboard.js +40 -0
  477. package/dist/commands/scoreboard.js.map +1 -0
  478. package/dist/commands/search.js +2 -2
  479. package/dist/commands/search.js.map +1 -1
  480. package/dist/commands/session.d.ts +55 -2
  481. package/dist/commands/session.d.ts.map +1 -1
  482. package/dist/commands/session.js +477 -45
  483. package/dist/commands/session.js.map +1 -1
  484. package/dist/commands/setup-audit.d.ts +59 -0
  485. package/dist/commands/setup-audit.d.ts.map +1 -0
  486. package/dist/commands/setup-audit.js +250 -0
  487. package/dist/commands/setup-audit.js.map +1 -0
  488. package/dist/commands/setup-detect-surfaces.d.ts +38 -0
  489. package/dist/commands/setup-detect-surfaces.d.ts.map +1 -0
  490. package/dist/commands/setup-detect-surfaces.js +76 -0
  491. package/dist/commands/setup-detect-surfaces.js.map +1 -0
  492. package/dist/commands/setup-ingest.d.ts +17 -0
  493. package/dist/commands/setup-ingest.d.ts.map +1 -0
  494. package/dist/commands/setup-ingest.js +174 -0
  495. package/dist/commands/setup-ingest.js.map +1 -0
  496. package/dist/commands/setup-resolver.d.ts +58 -0
  497. package/dist/commands/setup-resolver.d.ts.map +1 -0
  498. package/dist/commands/setup-resolver.js +150 -0
  499. package/dist/commands/setup-resolver.js.map +1 -0
  500. package/dist/commands/setup-state.d.ts +42 -0
  501. package/dist/commands/setup-state.d.ts.map +1 -0
  502. package/dist/commands/setup-state.js +93 -0
  503. package/dist/commands/setup-state.js.map +1 -0
  504. package/dist/commands/setup.d.ts +23 -0
  505. package/dist/commands/setup.d.ts.map +1 -0
  506. package/dist/commands/setup.js +69 -0
  507. package/dist/commands/setup.js.map +1 -0
  508. package/dist/commands/update.d.ts +8 -0
  509. package/dist/commands/update.d.ts.map +1 -1
  510. package/dist/commands/update.js +71 -49
  511. package/dist/commands/update.js.map +1 -1
  512. package/dist/commands/upgrade.d.ts +5 -0
  513. package/dist/commands/upgrade.d.ts.map +1 -0
  514. package/dist/commands/upgrade.js +110 -0
  515. package/dist/commands/upgrade.js.map +1 -0
  516. package/dist/commands/usage.d.ts +40 -0
  517. package/dist/commands/usage.d.ts.map +1 -0
  518. package/dist/commands/usage.js +232 -0
  519. package/dist/commands/usage.js.map +1 -0
  520. package/dist/commands/verify.d.ts.map +1 -1
  521. package/dist/commands/verify.js +19 -7
  522. package/dist/commands/verify.js.map +1 -1
  523. package/dist/commands/welcome.d.ts +21 -0
  524. package/dist/commands/welcome.d.ts.map +1 -0
  525. package/dist/commands/welcome.js +50 -0
  526. package/dist/commands/welcome.js.map +1 -0
  527. package/dist/commands/whoami.d.ts +12 -0
  528. package/dist/commands/whoami.d.ts.map +1 -0
  529. package/dist/commands/whoami.js +70 -0
  530. package/dist/commands/whoami.js.map +1 -0
  531. package/dist/commands/whoami.test.d.ts +2 -0
  532. package/dist/commands/whoami.test.d.ts.map +1 -0
  533. package/dist/commands/whoami.test.js +50 -0
  534. package/dist/commands/whoami.test.js.map +1 -0
  535. package/dist/commands/workspace.d.ts +115 -0
  536. package/dist/commands/workspace.d.ts.map +1 -0
  537. package/dist/commands/workspace.js +263 -0
  538. package/dist/commands/workspace.js.map +1 -0
  539. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  540. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  541. package/dist/formatters/__tests__/orient-provenance.test.js +493 -0
  542. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  543. package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
  544. package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
  545. package/dist/formatters/__tests__/session-list-show.test.js +159 -0
  546. package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
  547. package/dist/formatters/__tests__/session.test.d.ts +2 -0
  548. package/dist/formatters/__tests__/session.test.d.ts.map +1 -0
  549. package/dist/formatters/__tests__/session.test.js +113 -0
  550. package/dist/formatters/__tests__/session.test.js.map +1 -0
  551. package/dist/formatters/audit.d.ts +6 -0
  552. package/dist/formatters/audit.d.ts.map +1 -1
  553. package/dist/formatters/audit.js.map +1 -1
  554. package/dist/formatters/capture.d.ts +26 -0
  555. package/dist/formatters/capture.d.ts.map +1 -1
  556. package/dist/formatters/capture.js +27 -0
  557. package/dist/formatters/capture.js.map +1 -1
  558. package/dist/formatters/coaching.d.ts +51 -0
  559. package/dist/formatters/coaching.d.ts.map +1 -0
  560. package/dist/formatters/coaching.js +46 -0
  561. package/dist/formatters/coaching.js.map +1 -0
  562. package/dist/formatters/collections.d.ts +40 -0
  563. package/dist/formatters/collections.d.ts.map +1 -0
  564. package/dist/formatters/collections.js +93 -0
  565. package/dist/formatters/collections.js.map +1 -0
  566. package/dist/formatters/entry.d.ts +44 -0
  567. package/dist/formatters/entry.d.ts.map +1 -1
  568. package/dist/formatters/entry.js +70 -7
  569. package/dist/formatters/entry.js.map +1 -1
  570. package/dist/formatters/handshake.d.ts +43 -0
  571. package/dist/formatters/handshake.d.ts.map +1 -1
  572. package/dist/formatters/handshake.js +141 -3
  573. package/dist/formatters/handshake.js.map +1 -1
  574. package/dist/formatters/orient.d.ts +190 -4
  575. package/dist/formatters/orient.d.ts.map +1 -1
  576. package/dist/formatters/orient.js +273 -22
  577. package/dist/formatters/orient.js.map +1 -1
  578. package/dist/formatters/orient.rcrtMiss.test.d.ts +2 -0
  579. package/dist/formatters/orient.rcrtMiss.test.d.ts.map +1 -0
  580. package/dist/formatters/orient.rcrtMiss.test.js +146 -0
  581. package/dist/formatters/orient.rcrtMiss.test.js.map +1 -0
  582. package/dist/formatters/promote.d.ts +17 -0
  583. package/dist/formatters/promote.d.ts.map +1 -1
  584. package/dist/formatters/promote.js +14 -0
  585. package/dist/formatters/promote.js.map +1 -1
  586. package/dist/formatters/relate.d.ts +2 -0
  587. package/dist/formatters/relate.d.ts.map +1 -1
  588. package/dist/formatters/relate.js +3 -0
  589. package/dist/formatters/relate.js.map +1 -1
  590. package/dist/formatters/scoreboard.d.ts +11 -0
  591. package/dist/formatters/scoreboard.d.ts.map +1 -0
  592. package/dist/formatters/scoreboard.js +48 -0
  593. package/dist/formatters/scoreboard.js.map +1 -0
  594. package/dist/formatters/session.d.ts +85 -2
  595. package/dist/formatters/session.d.ts.map +1 -1
  596. package/dist/formatters/session.js +241 -9
  597. package/dist/formatters/session.js.map +1 -1
  598. package/dist/formatters/update.d.ts +3 -0
  599. package/dist/formatters/update.d.ts.map +1 -1
  600. package/dist/formatters/update.js +4 -0
  601. package/dist/formatters/update.js.map +1 -1
  602. package/dist/formatters/verify.d.ts +12 -4
  603. package/dist/formatters/verify.d.ts.map +1 -1
  604. package/dist/formatters/verify.js +20 -2
  605. package/dist/formatters/verify.js.map +1 -1
  606. package/dist/generated/healthGapKinds.generated.d.ts +12 -0
  607. package/dist/generated/healthGapKinds.generated.d.ts.map +1 -0
  608. package/dist/generated/healthGapKinds.generated.js +24 -0
  609. package/dist/generated/healthGapKinds.generated.js.map +1 -0
  610. package/dist/generators/adapters.d.ts +33 -0
  611. package/dist/generators/adapters.d.ts.map +1 -1
  612. package/dist/generators/adapters.js +80 -20
  613. package/dist/generators/adapters.js.map +1 -1
  614. package/dist/generators/archetypes.d.ts +52 -0
  615. package/dist/generators/archetypes.d.ts.map +1 -0
  616. package/dist/generators/archetypes.js +190 -0
  617. package/dist/generators/archetypes.js.map +1 -0
  618. package/dist/generators/archetypes.test.d.ts +2 -0
  619. package/dist/generators/archetypes.test.d.ts.map +1 -0
  620. package/dist/generators/archetypes.test.js +272 -0
  621. package/dist/generators/archetypes.test.js.map +1 -0
  622. package/dist/generators/boundary-manifest.d.ts +29 -0
  623. package/dist/generators/boundary-manifest.d.ts.map +1 -0
  624. package/dist/generators/boundary-manifest.js +183 -0
  625. package/dist/generators/boundary-manifest.js.map +1 -0
  626. package/dist/generators/boundary-manifest.test.d.ts +2 -0
  627. package/dist/generators/boundary-manifest.test.d.ts.map +1 -0
  628. package/dist/generators/boundary-manifest.test.js +91 -0
  629. package/dist/generators/boundary-manifest.test.js.map +1 -0
  630. package/dist/generators/chain-classifier.d.ts +63 -0
  631. package/dist/generators/chain-classifier.d.ts.map +1 -0
  632. package/dist/generators/chain-classifier.js +131 -0
  633. package/dist/generators/chain-classifier.js.map +1 -0
  634. package/dist/generators/chain-classifier.test.d.ts +2 -0
  635. package/dist/generators/chain-classifier.test.d.ts.map +1 -0
  636. package/dist/generators/chain-classifier.test.js +371 -0
  637. package/dist/generators/chain-classifier.test.js.map +1 -0
  638. package/dist/generators/chain-rules.d.ts +42 -0
  639. package/dist/generators/chain-rules.d.ts.map +1 -0
  640. package/dist/generators/chain-rules.js +152 -0
  641. package/dist/generators/chain-rules.js.map +1 -0
  642. package/dist/generators/chain-rules.test.d.ts +2 -0
  643. package/dist/generators/chain-rules.test.d.ts.map +1 -0
  644. package/dist/generators/chain-rules.test.js +211 -0
  645. package/dist/generators/chain-rules.test.js.map +1 -0
  646. package/dist/generators/context-md.d.ts +1 -1
  647. package/dist/generators/context-md.d.ts.map +1 -1
  648. package/dist/generators/context-md.js +18 -7
  649. package/dist/generators/context-md.js.map +1 -1
  650. package/dist/generators/handshake-diff.d.ts +67 -0
  651. package/dist/generators/handshake-diff.d.ts.map +1 -0
  652. package/dist/generators/handshake-diff.js +183 -0
  653. package/dist/generators/handshake-diff.js.map +1 -0
  654. package/dist/generators/handshake-diff.test.d.ts +2 -0
  655. package/dist/generators/handshake-diff.test.d.ts.map +1 -0
  656. package/dist/generators/handshake-diff.test.js +264 -0
  657. package/dist/generators/handshake-diff.test.js.map +1 -0
  658. package/dist/generators/manifest.d.ts +115 -0
  659. package/dist/generators/manifest.d.ts.map +1 -0
  660. package/dist/generators/manifest.js +277 -0
  661. package/dist/generators/manifest.js.map +1 -0
  662. package/dist/generators/portable-knowledge.d.ts +24 -2
  663. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  664. package/dist/generators/portable-knowledge.js +117 -10
  665. package/dist/generators/portable-knowledge.js.map +1 -1
  666. package/dist/generators/portable-knowledge.test.js +43 -0
  667. package/dist/generators/portable-knowledge.test.js.map +1 -1
  668. package/dist/generators/region-projections.d.ts +18 -0
  669. package/dist/generators/region-projections.d.ts.map +1 -0
  670. package/dist/generators/region-projections.js +49 -0
  671. package/dist/generators/region-projections.js.map +1 -0
  672. package/dist/generators/region-projections.test.d.ts +2 -0
  673. package/dist/generators/region-projections.test.d.ts.map +1 -0
  674. package/dist/generators/region-projections.test.js +63 -0
  675. package/dist/generators/region-projections.test.js.map +1 -0
  676. package/dist/generators/region.d.ts +24 -0
  677. package/dist/generators/region.d.ts.map +1 -0
  678. package/dist/generators/region.js +87 -0
  679. package/dist/generators/region.js.map +1 -0
  680. package/dist/generators/region.test.d.ts +2 -0
  681. package/dist/generators/region.test.d.ts.map +1 -0
  682. package/dist/generators/region.test.js +126 -0
  683. package/dist/generators/region.test.js.map +1 -0
  684. package/dist/generators/surface-profiles.d.ts +24 -3
  685. package/dist/generators/surface-profiles.d.ts.map +1 -1
  686. package/dist/generators/surface-profiles.js +52 -1
  687. package/dist/generators/surface-profiles.js.map +1 -1
  688. package/dist/index.js +811 -259
  689. package/dist/index.js.map +1 -1
  690. package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
  691. package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
  692. package/dist/lib/__tests__/parseFields.test.js +19 -0
  693. package/dist/lib/__tests__/parseFields.test.js.map +1 -0
  694. package/dist/lib/activation.d.ts +28 -0
  695. package/dist/lib/activation.d.ts.map +1 -0
  696. package/dist/lib/activation.js +57 -0
  697. package/dist/lib/activation.js.map +1 -0
  698. package/dist/lib/activation.test.d.ts +6 -0
  699. package/dist/lib/activation.test.d.ts.map +1 -0
  700. package/dist/lib/activation.test.js +121 -0
  701. package/dist/lib/activation.test.js.map +1 -0
  702. package/dist/lib/canonicalRefs.d.ts +141 -0
  703. package/dist/lib/canonicalRefs.d.ts.map +1 -0
  704. package/dist/lib/canonicalRefs.js +150 -0
  705. package/dist/lib/canonicalRefs.js.map +1 -0
  706. package/dist/lib/client.d.ts +36 -6
  707. package/dist/lib/client.d.ts.map +1 -1
  708. package/dist/lib/client.js +227 -45
  709. package/dist/lib/client.js.map +1 -1
  710. package/dist/lib/collectionRegistry.d.ts +52 -0
  711. package/dist/lib/collectionRegistry.d.ts.map +1 -0
  712. package/dist/lib/collectionRegistry.js +118 -0
  713. package/dist/lib/collectionRegistry.js.map +1 -0
  714. package/dist/lib/compose-wrapup-view.d.ts +48 -0
  715. package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
  716. package/dist/lib/compose-wrapup-view.js +37 -0
  717. package/dist/lib/compose-wrapup-view.js.map +1 -0
  718. package/dist/lib/config.d.ts +204 -4
  719. package/dist/lib/config.d.ts.map +1 -1
  720. package/dist/lib/config.js +594 -42
  721. package/dist/lib/config.js.map +1 -1
  722. package/dist/lib/connectKeyLabel.d.ts +9 -0
  723. package/dist/lib/connectKeyLabel.d.ts.map +1 -0
  724. package/dist/lib/connectKeyLabel.js +12 -0
  725. package/dist/lib/connectKeyLabel.js.map +1 -0
  726. package/dist/lib/constants.d.ts +46 -0
  727. package/dist/lib/constants.d.ts.map +1 -0
  728. package/dist/lib/constants.js +83 -0
  729. package/dist/lib/constants.js.map +1 -0
  730. package/dist/lib/conversation-engine.d.ts +45 -0
  731. package/dist/lib/conversation-engine.d.ts.map +1 -0
  732. package/dist/lib/conversation-engine.js +112 -0
  733. package/dist/lib/conversation-engine.js.map +1 -0
  734. package/dist/lib/conversation-phases.d.ts +59 -0
  735. package/dist/lib/conversation-phases.d.ts.map +1 -0
  736. package/dist/lib/conversation-phases.js +11 -0
  737. package/dist/lib/conversation-phases.js.map +1 -0
  738. package/dist/lib/conversation-signals.d.ts +30 -0
  739. package/dist/lib/conversation-signals.d.ts.map +1 -0
  740. package/dist/lib/conversation-signals.js +64 -0
  741. package/dist/lib/conversation-signals.js.map +1 -0
  742. package/dist/lib/conversation.d.ts +36 -0
  743. package/dist/lib/conversation.d.ts.map +1 -0
  744. package/dist/lib/conversation.js +66 -0
  745. package/dist/lib/conversation.js.map +1 -0
  746. package/dist/lib/deployment.d.ts +23 -0
  747. package/dist/lib/deployment.d.ts.map +1 -0
  748. package/dist/lib/deployment.js +78 -0
  749. package/dist/lib/deployment.js.map +1 -0
  750. package/dist/lib/deployment.test.d.ts +5 -0
  751. package/dist/lib/deployment.test.d.ts.map +1 -0
  752. package/dist/lib/deployment.test.js +54 -0
  753. package/dist/lib/deployment.test.js.map +1 -0
  754. package/dist/lib/errors.d.ts +96 -0
  755. package/dist/lib/errors.d.ts.map +1 -0
  756. package/dist/lib/errors.js +105 -0
  757. package/dist/lib/errors.js.map +1 -0
  758. package/dist/lib/experiment.d.ts +18 -0
  759. package/dist/lib/experiment.d.ts.map +1 -0
  760. package/dist/lib/experiment.js +28 -0
  761. package/dist/lib/experiment.js.map +1 -0
  762. package/dist/lib/format.d.ts +10 -0
  763. package/dist/lib/format.d.ts.map +1 -0
  764. package/dist/lib/format.js +27 -0
  765. package/dist/lib/format.js.map +1 -0
  766. package/dist/lib/frontmatter.d.ts +55 -0
  767. package/dist/lib/frontmatter.d.ts.map +1 -0
  768. package/dist/lib/frontmatter.js +92 -0
  769. package/dist/lib/frontmatter.js.map +1 -0
  770. package/dist/lib/frontmatter.test.d.ts +15 -0
  771. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  772. package/dist/lib/frontmatter.test.js +98 -0
  773. package/dist/lib/frontmatter.test.js.map +1 -0
  774. package/dist/lib/glossary.d.ts +19 -0
  775. package/dist/lib/glossary.d.ts.map +1 -0
  776. package/dist/lib/glossary.js +53 -0
  777. package/dist/lib/glossary.js.map +1 -0
  778. package/dist/lib/hook-intents.d.ts +51 -0
  779. package/dist/lib/hook-intents.d.ts.map +1 -0
  780. package/dist/lib/hook-intents.js +85 -0
  781. package/dist/lib/hook-intents.js.map +1 -0
  782. package/dist/lib/inferSourceDate.d.ts +12 -0
  783. package/dist/lib/inferSourceDate.d.ts.map +1 -0
  784. package/dist/lib/inferSourceDate.js +44 -0
  785. package/dist/lib/inferSourceDate.js.map +1 -0
  786. package/dist/lib/method-registry.d.ts +32 -0
  787. package/dist/lib/method-registry.d.ts.map +1 -0
  788. package/dist/lib/method-registry.js +53 -0
  789. package/dist/lib/method-registry.js.map +1 -0
  790. package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
  791. package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
  792. package/dist/lib/normalizeMaterializedFilename.js +56 -0
  793. package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
  794. package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
  795. package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
  796. package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
  797. package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
  798. package/dist/lib/notice-marker.d.ts +3 -0
  799. package/dist/lib/notice-marker.d.ts.map +1 -0
  800. package/dist/lib/notice-marker.js +53 -0
  801. package/dist/lib/notice-marker.js.map +1 -0
  802. package/dist/lib/onboarding-path-b.d.ts +10 -0
  803. package/dist/lib/onboarding-path-b.d.ts.map +1 -0
  804. package/dist/lib/onboarding-path-b.js +213 -0
  805. package/dist/lib/onboarding-path-b.js.map +1 -0
  806. package/dist/lib/onboarding-shared.d.ts +80 -0
  807. package/dist/lib/onboarding-shared.d.ts.map +1 -0
  808. package/dist/lib/onboarding-shared.js +174 -0
  809. package/dist/lib/onboarding-shared.js.map +1 -0
  810. package/dist/lib/onboarding-topics.d.ts +27 -0
  811. package/dist/lib/onboarding-topics.d.ts.map +1 -0
  812. package/dist/lib/onboarding-topics.js +57 -0
  813. package/dist/lib/onboarding-topics.js.map +1 -0
  814. package/dist/lib/onboarding.d.ts +17 -0
  815. package/dist/lib/onboarding.d.ts.map +1 -0
  816. package/dist/lib/onboarding.js +350 -0
  817. package/dist/lib/onboarding.js.map +1 -0
  818. package/dist/lib/parseFields.d.ts +6 -0
  819. package/dist/lib/parseFields.d.ts.map +1 -0
  820. package/dist/lib/parseFields.js +30 -0
  821. package/dist/lib/parseFields.js.map +1 -0
  822. package/dist/lib/productbrain-files.d.ts +94 -0
  823. package/dist/lib/productbrain-files.d.ts.map +1 -0
  824. package/dist/lib/productbrain-files.js +213 -0
  825. package/dist/lib/productbrain-files.js.map +1 -0
  826. package/dist/lib/productbrain-files.test.d.ts +2 -0
  827. package/dist/lib/productbrain-files.test.d.ts.map +1 -0
  828. package/dist/lib/productbrain-files.test.js +239 -0
  829. package/dist/lib/productbrain-files.test.js.map +1 -0
  830. package/dist/lib/profiles.d.ts +41 -0
  831. package/dist/lib/profiles.d.ts.map +1 -0
  832. package/dist/lib/profiles.js +188 -0
  833. package/dist/lib/profiles.js.map +1 -0
  834. package/dist/lib/prompts.d.ts +65 -0
  835. package/dist/lib/prompts.d.ts.map +1 -0
  836. package/dist/lib/prompts.js +132 -0
  837. package/dist/lib/prompts.js.map +1 -0
  838. package/dist/lib/runner.d.ts +10 -0
  839. package/dist/lib/runner.d.ts.map +1 -1
  840. package/dist/lib/runner.js +44 -7
  841. package/dist/lib/runner.js.map +1 -1
  842. package/dist/lib/session.d.ts +85 -4
  843. package/dist/lib/session.d.ts.map +1 -1
  844. package/dist/lib/session.js +276 -13
  845. package/dist/lib/session.js.map +1 -1
  846. package/dist/lib/spinner.d.ts +27 -0
  847. package/dist/lib/spinner.d.ts.map +1 -0
  848. package/dist/lib/spinner.js +76 -0
  849. package/dist/lib/spinner.js.map +1 -0
  850. package/dist/lib/spinner.test.d.ts +2 -0
  851. package/dist/lib/spinner.test.d.ts.map +1 -0
  852. package/dist/lib/spinner.test.js +39 -0
  853. package/dist/lib/spinner.test.js.map +1 -0
  854. package/dist/lib/startup-resolution-signals.d.ts +34 -0
  855. package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
  856. package/dist/lib/startup-resolution-signals.js +118 -0
  857. package/dist/lib/startup-resolution-signals.js.map +1 -0
  858. package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
  859. package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
  860. package/dist/lib/startup-resolution-signals.test.js +113 -0
  861. package/dist/lib/startup-resolution-signals.test.js.map +1 -0
  862. package/dist/lib/state.d.ts +51 -0
  863. package/dist/lib/state.d.ts.map +1 -0
  864. package/dist/lib/state.js +90 -0
  865. package/dist/lib/state.js.map +1 -0
  866. package/dist/lib/strip.d.ts.map +1 -1
  867. package/dist/lib/strip.js +7 -1
  868. package/dist/lib/strip.js.map +1 -1
  869. package/dist/lib/style.d.ts +96 -0
  870. package/dist/lib/style.d.ts.map +1 -0
  871. package/dist/lib/style.js +169 -0
  872. package/dist/lib/style.js.map +1 -0
  873. package/dist/lib/style.test.d.ts +7 -0
  874. package/dist/lib/style.test.d.ts.map +1 -0
  875. package/dist/lib/style.test.js +263 -0
  876. package/dist/lib/style.test.js.map +1 -0
  877. package/dist/lib/telemetry.d.ts +15 -0
  878. package/dist/lib/telemetry.d.ts.map +1 -0
  879. package/dist/lib/telemetry.js +47 -0
  880. package/dist/lib/telemetry.js.map +1 -0
  881. package/dist/lib/tokenConstants.d.ts +19 -0
  882. package/dist/lib/tokenConstants.d.ts.map +1 -0
  883. package/dist/lib/tokenConstants.js +19 -0
  884. package/dist/lib/tokenConstants.js.map +1 -0
  885. package/dist/lib/update-check.d.ts +56 -0
  886. package/dist/lib/update-check.d.ts.map +1 -0
  887. package/dist/lib/update-check.js +296 -0
  888. package/dist/lib/update-check.js.map +1 -0
  889. package/dist/lib/upgrade-runner.d.ts +22 -0
  890. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  891. package/dist/lib/upgrade-runner.js +110 -0
  892. package/dist/lib/upgrade-runner.js.map +1 -0
  893. package/dist/lib/wizard-surfaces.d.ts +47 -0
  894. package/dist/lib/wizard-surfaces.d.ts.map +1 -0
  895. package/dist/lib/wizard-surfaces.js +176 -0
  896. package/dist/lib/wizard-surfaces.js.map +1 -0
  897. package/dist/lib/wizard-surfaces.test.d.ts +2 -0
  898. package/dist/lib/wizard-surfaces.test.d.ts.map +1 -0
  899. package/dist/lib/wizard-surfaces.test.js +127 -0
  900. package/dist/lib/wizard-surfaces.test.js.map +1 -0
  901. package/dist/lib/wizard-trust.d.ts +31 -0
  902. package/dist/lib/wizard-trust.d.ts.map +1 -0
  903. package/dist/lib/wizard-trust.js +66 -0
  904. package/dist/lib/wizard-trust.js.map +1 -0
  905. package/dist/lib/wizard-trust.test.d.ts +2 -0
  906. package/dist/lib/wizard-trust.test.d.ts.map +1 -0
  907. package/dist/lib/wizard-trust.test.js +32 -0
  908. package/dist/lib/wizard-trust.test.js.map +1 -0
  909. package/dist/lib/workspace-probe.d.ts +19 -0
  910. package/dist/lib/workspace-probe.d.ts.map +1 -0
  911. package/dist/lib/workspace-probe.js +27 -0
  912. package/dist/lib/workspace-probe.js.map +1 -0
  913. package/dist/lib/workspaceNotice.d.ts +59 -0
  914. package/dist/lib/workspaceNotice.d.ts.map +1 -0
  915. package/dist/lib/workspaceNotice.js +77 -0
  916. package/dist/lib/workspaceNotice.js.map +1 -0
  917. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  918. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  919. package/dist/lib/workspaceVocabCache.js +98 -0
  920. package/dist/lib/workspaceVocabCache.js.map +1 -0
  921. package/dist/scoreboard/diagnose.d.ts +189 -0
  922. package/dist/scoreboard/diagnose.d.ts.map +1 -0
  923. package/dist/scoreboard/diagnose.js +255 -0
  924. package/dist/scoreboard/diagnose.js.map +1 -0
  925. package/dist/scoreboard/diagnose.test.d.ts +12 -0
  926. package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
  927. package/dist/scoreboard/diagnose.test.js +204 -0
  928. package/dist/scoreboard/diagnose.test.js.map +1 -0
  929. package/dist/scoreboard/localDrift.d.ts +23 -0
  930. package/dist/scoreboard/localDrift.d.ts.map +1 -0
  931. package/dist/scoreboard/localDrift.js +111 -0
  932. package/dist/scoreboard/localDrift.js.map +1 -0
  933. package/dist/scoreboard/localDrift.test.d.ts +9 -0
  934. package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
  935. package/dist/scoreboard/localDrift.test.js +82 -0
  936. package/dist/scoreboard/localDrift.test.js.map +1 -0
  937. package/dist/setup/__tests__/coach-traces.test.d.ts +2 -0
  938. package/dist/setup/__tests__/coach-traces.test.d.ts.map +1 -0
  939. package/dist/setup/__tests__/coach-traces.test.js +189 -0
  940. package/dist/setup/__tests__/coach-traces.test.js.map +1 -0
  941. package/dist/setup/__tests__/setup-commands.test.d.ts +2 -0
  942. package/dist/setup/__tests__/setup-commands.test.d.ts.map +1 -0
  943. package/dist/setup/__tests__/setup-commands.test.js +177 -0
  944. package/dist/setup/__tests__/setup-commands.test.js.map +1 -0
  945. package/dist/setup/__tests__/state-machine.test.d.ts +2 -0
  946. package/dist/setup/__tests__/state-machine.test.d.ts.map +1 -0
  947. package/dist/setup/__tests__/state-machine.test.js +341 -0
  948. package/dist/setup/__tests__/state-machine.test.js.map +1 -0
  949. package/dist/setup/detect-surfaces.d.ts +21 -0
  950. package/dist/setup/detect-surfaces.d.ts.map +1 -0
  951. package/dist/setup/detect-surfaces.js +39 -0
  952. package/dist/setup/detect-surfaces.js.map +1 -0
  953. package/dist/setup/manifest-writer.d.ts +17 -0
  954. package/dist/setup/manifest-writer.d.ts.map +1 -0
  955. package/dist/setup/manifest-writer.js +153 -0
  956. package/dist/setup/manifest-writer.js.map +1 -0
  957. package/dist/setup/perimeter.d.ts +72 -0
  958. package/dist/setup/perimeter.d.ts.map +1 -0
  959. package/dist/setup/perimeter.js +128 -0
  960. package/dist/setup/perimeter.js.map +1 -0
  961. package/dist/setup/state-machine.d.ts +67 -0
  962. package/dist/setup/state-machine.d.ts.map +1 -0
  963. package/dist/setup/state-machine.js +124 -0
  964. package/dist/setup/state-machine.js.map +1 -0
  965. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  966. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  967. package/dist/surfaces/__tests__/adapter.test.js +90 -0
  968. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  969. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +2 -0
  970. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +1 -0
  971. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +132 -0
  972. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +1 -0
  973. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  974. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  975. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  976. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  977. package/dist/surfaces/adapter.d.ts +70 -0
  978. package/dist/surfaces/adapter.d.ts.map +1 -0
  979. package/dist/surfaces/adapter.js +2 -0
  980. package/dist/surfaces/adapter.js.map +1 -0
  981. package/dist/surfaces/adapters/claude.d.ts +3 -0
  982. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  983. package/dist/surfaces/adapters/claude.js +67 -0
  984. package/dist/surfaces/adapters/claude.js.map +1 -0
  985. package/dist/surfaces/adapters/codex.d.ts +3 -0
  986. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  987. package/dist/surfaces/adapters/codex.js +61 -0
  988. package/dist/surfaces/adapters/codex.js.map +1 -0
  989. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  990. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  991. package/dist/surfaces/adapters/copilot.js +59 -0
  992. package/dist/surfaces/adapters/copilot.js.map +1 -0
  993. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  994. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  995. package/dist/surfaces/adapters/cursor.js +78 -0
  996. package/dist/surfaces/adapters/cursor.js.map +1 -0
  997. package/dist/surfaces/registry.d.ts +76 -0
  998. package/dist/surfaces/registry.d.ts.map +1 -0
  999. package/dist/surfaces/registry.js +117 -0
  1000. package/dist/surfaces/registry.js.map +1 -0
  1001. package/dist/surfaces/telemetry.d.ts +17 -0
  1002. package/dist/surfaces/telemetry.d.ts.map +1 -0
  1003. package/dist/surfaces/telemetry.js +31 -0
  1004. package/dist/surfaces/telemetry.js.map +1 -0
  1005. package/package.json +11 -4
  1006. package/templates/archetypes/boundary.md +23 -0
  1007. package/templates/archetypes/constraint.md +23 -0
  1008. package/templates/archetypes/convention.md +23 -0
  1009. package/templates/archetypes/policy.md +23 -0
  1010. package/templates/archetypes/quality-gate.md +23 -0
  1011. package/templates/archetypes/workflow.md +23 -0
  1012. package/templates/method-registry.json +16 -0
  1013. package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
  1014. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
  1015. package/dist/generators/__tests__/surface-profiles.test.js +0 -89
  1016. package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
@@ -0,0 +1,83 @@
1
+ /**
2
+ * connect-context — non-UI orchestration for the post-connect wizard.
3
+ *
4
+ * Extracted from connect-screens.tsx so the seed-readiness poll + context
5
+ * handshake can be tested without rendering Ink. The screens render purely from
6
+ * the result of prepareConnectContext().
7
+ *
8
+ * Chain: WP-433 (pb connect handoff), WP-439 S4 (strict-by-default handshake),
9
+ * WP-379 S3b (async seed polling).
10
+ */
11
+ import { runHandshake, pollUntilSeedsReady } from './handshake.js';
12
+ import { setSpinnersSilenced, areSpinnersSilenced } from '../lib/runner.js';
13
+ /**
14
+ * Prepare the workspace context after `pb connect` redeems a token:
15
+ *
16
+ * 1. Poll until starter-setup seeds are ready FIRST. The handshake fetches
17
+ * seeded setup-asset bodies (skills/rules); on a fresh workspace those seeds
18
+ * land asynchronously (WP-379 S3b), so running the handshake before they are
19
+ * ready makes its body fetch fail.
20
+ * 2. Run the handshake LENIENT. This is an automatic onboarding handshake — it
21
+ * follows the precedent set for the automatic refresh at session close
22
+ * (session.ts, WP-439 S4): automatic runs must not hard-fail on a body-fetch
23
+ * error; orphaned assets are surfaced when the user runs `pb handshake`
24
+ * directly. Strict-by-default is for that direct command, not for the silent
25
+ * post-connect refresh.
26
+ *
27
+ * Never throws — failures are captured in the returned object for the screen to
28
+ * render.
29
+ */
30
+ export async function prepareConnectContext() {
31
+ // WP-2 (TEN-2561): silence the per-kernelCall spinners — "Loading chain getVocabulary",
32
+ // "Loading chain getOrientView", "Loading setup listAssetsForUser" — that withSpinner
33
+ // renders for every kernelCall the seed-poll + handshake make. Use the spinner-silence
34
+ // flag, NOT global quiet mode: quiet also gates interactive prompts (prompts.ts), so
35
+ // flipping it would suppress the handshake's adopt/revert prompts for PB-managed tampered
36
+ // files — turning an answerable prompt into a silent "context sync skipped". The caller
37
+ // (runConnectScreens) shows one human progress line instead. Restored in `finally` so the
38
+ // flip is scoped to this call.
39
+ const priorSilenced = areSpinnersSilenced();
40
+ setSpinnersSilenced(true);
41
+ try {
42
+ return await prepareConnectContextInner();
43
+ }
44
+ finally {
45
+ setSpinnersSilenced(priorSilenced);
46
+ }
47
+ }
48
+ async function prepareConnectContextInner() {
49
+ // 1. Wait for seeds to be ready before the handshake consumes them.
50
+ // probe-failed (network/auth) is non-blocking — no seeds warning when the
51
+ // health endpoint is simply unreachable.
52
+ let seedGaps;
53
+ try {
54
+ const seedResult = await pollUntilSeedsReady();
55
+ if (seedResult.status === 'seeds-pending') {
56
+ seedGaps = seedResult.gaps;
57
+ }
58
+ // seeds-ready and probe-failed both leave seedGaps undefined (no warning).
59
+ }
60
+ catch {
61
+ // Future-proofing: pollUntilSeedsReady does not throw today (its probe
62
+ // catches everything into 'probe-failed'); this guards that contract drifting.
63
+ }
64
+ // 2. Run handshake lenient — capture failure for display rather than aborting.
65
+ let handshakeFailed = false;
66
+ let handshakeError;
67
+ let skippedFiles;
68
+ try {
69
+ const report = await runHandshake({ force: false, apply: true, quiet: true, lenient: true });
70
+ // userOwnedSkipped = adapter files that already existed without PB's auto-gen
71
+ // marker, so the handshake left them untouched. Relay them so the screen does
72
+ // not falsely report them as synced (TEN-2107). These are NOT drift (TEN-2150).
73
+ if (report?.userOwnedSkipped && report.userOwnedSkipped.length > 0) {
74
+ skippedFiles = report.userOwnedSkipped;
75
+ }
76
+ }
77
+ catch (err) {
78
+ handshakeFailed = true;
79
+ handshakeError = err instanceof Error ? err.message : String(err);
80
+ }
81
+ return { handshakeFailed, handshakeError, seedGaps, skippedFiles };
82
+ }
83
+ //# sourceMappingURL=connect-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-context.js","sourceRoot":"","sources":["../../src/commands/connect-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAkB,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAkB5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,wFAAwF;IACxF,sFAAsF;IACtF,uFAAuF;IACvF,qFAAqF;IACrF,0FAA0F;IAC1F,wFAAwF;IACxF,0FAA0F;IAC1F,+BAA+B;IAC/B,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,MAAM,0BAA0B,EAAE,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,oEAAoE;IACpE,0EAA0E;IAC1E,yCAAyC;IACzC,IAAI,QAA8C,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YAC1C,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,2EAA2E;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,+EAA+E;IACjF,CAAC;IAED,+EAA+E;IAC/E,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,cAAkC,CAAC;IACvC,IAAI,YAA+C,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,8EAA8E;QAC9E,8EAA8E;QAC9E,gFAAgF;QAChF,IAAI,MAAM,EAAE,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,GAAG,IAAI,CAAC;QACvB,cAAc,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connect-context.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-context.test.d.ts","sourceRoot":"","sources":["../../src/commands/connect-context.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Tests for prepareConnectContext — the non-UI orchestration behind the
3
+ * post-connect wizard (seed-readiness poll + context handshake).
4
+ *
5
+ * Root cause (P1): `pb connect`'s automatic handshake ran STRICT and BEFORE the
6
+ * seed-readiness poll. On a fresh workspace (seeds still landing async) or with
7
+ * an orphan setup-asset body, the handshake's body fetch failed and — being
8
+ * strict (WP-439 S4) — threw, surfacing only a dim "⚠ Context sync skipped" and
9
+ * leaving CLAUDE.md / rules unwritten. WP-439 S4 made the automatic refresh at
10
+ * session close LENIENT (session.ts) for exactly this reason; connect's automatic
11
+ * refresh follows that same precedent.
12
+ *
13
+ * Fix: poll seeds ready FIRST, then run the handshake LENIENT.
14
+ */
15
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
16
+ vi.mock('./handshake.js', () => ({
17
+ runHandshake: vi.fn(async () => { }),
18
+ pollUntilSeedsReady: vi.fn(async () => ({ status: 'seeds-ready' })),
19
+ }));
20
+ import * as handshake from './handshake.js';
21
+ import { prepareConnectContext } from './connect-context.js';
22
+ import { areSpinnersSilenced, setSpinnersSilenced, getQuietMode, setQuietMode } from '../lib/runner.js';
23
+ const runHandshake = vi.mocked(handshake.runHandshake);
24
+ const pollUntilSeedsReady = vi.mocked(handshake.pollUntilSeedsReady);
25
+ const PENDING_GAPS = [
26
+ { kind: 'starter-setup-missing', severity: 'warn', message: 'Starter setup seeds are still running.' },
27
+ ];
28
+ describe('prepareConnectContext', () => {
29
+ beforeEach(() => {
30
+ vi.clearAllMocks();
31
+ pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-ready' });
32
+ runHandshake.mockResolvedValue(undefined);
33
+ });
34
+ it('runs the handshake in lenient mode (matches session.ts automatic-handshake policy)', async () => {
35
+ await prepareConnectContext();
36
+ expect(runHandshake).toHaveBeenCalledTimes(1);
37
+ expect(runHandshake).toHaveBeenCalledWith(expect.objectContaining({ force: false, apply: true, quiet: true, lenient: true }));
38
+ });
39
+ it('waits for seeds to be ready BEFORE running the handshake', async () => {
40
+ const order = [];
41
+ pollUntilSeedsReady.mockImplementation(async () => {
42
+ order.push('poll');
43
+ return { status: 'seeds-ready' };
44
+ });
45
+ runHandshake.mockImplementation(async () => {
46
+ order.push('handshake');
47
+ return undefined;
48
+ });
49
+ await prepareConnectContext();
50
+ expect(order).toEqual(['poll', 'handshake']);
51
+ });
52
+ it('surfaces seed gaps when starter setup is still pending', async () => {
53
+ pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-pending', gaps: PENDING_GAPS });
54
+ const result = await prepareConnectContext();
55
+ expect(result.seedGaps).toEqual(PENDING_GAPS);
56
+ expect(result.handshakeFailed).toBe(false);
57
+ });
58
+ it('reports no seed gaps when seeds are ready', async () => {
59
+ pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-ready' });
60
+ const result = await prepareConnectContext();
61
+ expect(result.seedGaps).toBeUndefined();
62
+ });
63
+ it('reports no seed gaps when the health probe fails (non-blocking)', async () => {
64
+ pollUntilSeedsReady.mockResolvedValue({ status: 'probe-failed', error: 'network down' });
65
+ const result = await prepareConnectContext();
66
+ expect(result.seedGaps).toBeUndefined();
67
+ });
68
+ it('captures a handshake failure without throwing', async () => {
69
+ runHandshake.mockRejectedValue(new Error('boom'));
70
+ const result = await prepareConnectContext();
71
+ expect(result.handshakeFailed).toBe(true);
72
+ expect(result.handshakeError).toBe('boom');
73
+ });
74
+ it('surfaces seed gaps AND a handshake failure together (fresh-workspace worst case)', async () => {
75
+ // Seeds time out, then the lenient handshake still throws on a genuinely
76
+ // orphaned body — both signals must surface independently.
77
+ pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-pending', gaps: PENDING_GAPS });
78
+ runHandshake.mockRejectedValue(new Error('orphan body'));
79
+ const result = await prepareConnectContext();
80
+ expect(result.seedGaps).toEqual(PENDING_GAPS);
81
+ expect(result.handshakeFailed).toBe(true);
82
+ expect(result.handshakeError).toBe('orphan body');
83
+ });
84
+ it('reports success when the handshake completes', async () => {
85
+ const result = await prepareConnectContext();
86
+ expect(result.handshakeFailed).toBe(false);
87
+ expect(result.handshakeError).toBeUndefined();
88
+ });
89
+ it('surfaces files PB left untouched (user-owned files without the auto-gen marker)', async () => {
90
+ // TEN-2107: the handshake skips files the user authored (no auto-gen marker)
91
+ // and reports them as userOwnedSkipped. The connect screen must relay these so
92
+ // a user with a pre-existing CLAUDE.md is not falsely told "synced". These are
93
+ // never treated as drift (TEN-2150).
94
+ runHandshake.mockResolvedValue({
95
+ filesWritten: ['AGENTS.md'],
96
+ filesSkipped: [
97
+ { path: 'CLAUDE.md', reason: 'user-owned — left untouched (pb won\'t overwrite your file)' },
98
+ ],
99
+ userOwnedSkipped: ['CLAUDE.md'],
100
+ });
101
+ const result = await prepareConnectContext();
102
+ expect(result.skippedFiles).toEqual(['CLAUDE.md']);
103
+ expect(result.handshakeFailed).toBe(false);
104
+ });
105
+ it('reports no skipped files when PB wrote (or refreshed) everything', async () => {
106
+ // Default mock resolves an empty/undefined report → nothing left untouched.
107
+ const result = await prepareConnectContext();
108
+ expect(result.skippedFiles).toBeUndefined();
109
+ });
110
+ });
111
+ describe('prepareConnectContext — spinner-silence seam (WP-2 / TEN-2561)', () => {
112
+ // The seed-poll + handshake make kernelCalls whose spinners render raw internal labels
113
+ // ("Loading chain getVocabulary", …). The fn must suppress those during its work via the
114
+ // SPINNER-silence flag — and must NOT touch global quiet mode, which gates interactive
115
+ // prompts (so the handshake's adopt/revert prompts for tampered files still run). The
116
+ // flag is restored afterward, even when the (lenient) handshake throws.
117
+ beforeEach(() => {
118
+ vi.clearAllMocks();
119
+ pollUntilSeedsReady.mockResolvedValue({ status: 'seeds-ready' });
120
+ runHandshake.mockResolvedValue(undefined);
121
+ setSpinnersSilenced(false);
122
+ setQuietMode(false);
123
+ });
124
+ it('silences spinners during seed-poll + handshake, then restores — WITHOUT touching quiet', async () => {
125
+ let silencedDuringPoll;
126
+ let silencedDuringHandshake;
127
+ let quietDuringHandshake;
128
+ pollUntilSeedsReady.mockImplementation(async () => {
129
+ silencedDuringPoll = areSpinnersSilenced();
130
+ return { status: 'seeds-ready' };
131
+ });
132
+ runHandshake.mockImplementation(async () => {
133
+ silencedDuringHandshake = areSpinnersSilenced();
134
+ quietDuringHandshake = getQuietMode();
135
+ return undefined;
136
+ });
137
+ expect(areSpinnersSilenced()).toBe(false);
138
+ await prepareConnectContext();
139
+ expect(silencedDuringPoll).toBe(true);
140
+ expect(silencedDuringHandshake).toBe(true);
141
+ // Quiet (the interactive-prompt gate) must stay off — otherwise the handshake's
142
+ // adopt/revert tamper prompts would throw NON_INTERACTIVE (TEN-2561 regression).
143
+ expect(quietDuringHandshake).toBe(false);
144
+ expect(areSpinnersSilenced()).toBe(false); // restored
145
+ });
146
+ it('restores the spinner-silence flag even when the handshake throws (lenient)', async () => {
147
+ runHandshake.mockRejectedValue(new Error('boom'));
148
+ const result = await prepareConnectContext();
149
+ expect(result.handshakeFailed).toBe(true);
150
+ expect(areSpinnersSilenced()).toBe(false); // restored despite the throw
151
+ });
152
+ it('preserves a pre-existing silenced=true (does not force it back off)', async () => {
153
+ setSpinnersSilenced(true);
154
+ await prepareConnectContext();
155
+ expect(areSpinnersSilenced()).toBe(true);
156
+ });
157
+ });
158
+ //# sourceMappingURL=connect-context.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-context.test.js","sourceRoot":"","sources":["../../src/commands/connect-context.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * WP-433 S4 — FEAT-1291: pb connect chat handoff + locked agent-detection heuristic.
3
+ *
4
+ * Provides pure detection + resolution of the post-connect handoff message.
5
+ * No I/O side effects except `printHandoff` (which takes a stream).
6
+ *
7
+ * Locked detection heuristic (IMP-12 acceptance: ≤200 chars, user in chat ≤5 sec):
8
+ * .claude/=Y, .cursor/=Y → claude-or-cursor
9
+ * .claude/=Y, .cursor/=N → claude
10
+ * .claude/=N, .cursor/=Y → cursor
11
+ * .claude/=N, .cursor/=N, AGENTS.md=Y → codex
12
+ * .claude/=N, .cursor/=N, AGENTS.md=N → bare-repo (docs link)
13
+ *
14
+ */
15
+ export type HandoffMarkers = {
16
+ hasClaude: boolean;
17
+ hasCursor: boolean;
18
+ hasCodexFile: boolean;
19
+ };
20
+ export type HandoffAgent = 'claude' | 'cursor' | 'claude-or-cursor' | 'codex' | 'bare-repo';
21
+ export type HandoffResult = {
22
+ agent: HandoffAgent;
23
+ message: string;
24
+ };
25
+ export declare const HANDOFF_MESSAGE_CLAUDE_OR_CURSOR = "Open Claude Code or Cursor in this project and type in chat: Start Product Brain";
26
+ export declare const HANDOFF_MESSAGE_CLAUDE = "Open Claude Code in this project and type in chat: Start Product Brain";
27
+ export declare const HANDOFF_MESSAGE_CURSOR = "Open Cursor in this project and type in chat: Start Product Brain";
28
+ export declare const HANDOFF_MESSAGE_CODEX = "Open Codex CLI in this project and type in chat: Start Product Brain";
29
+ export declare const HANDOFF_MESSAGE_BARE_REPO = "No AI tool detected in this project. Visit productbrain.io/docs to set one up.";
30
+ /**
31
+ * Resolve the handoff agent + message from the detected markers.
32
+ * Implements the locked heuristic table verbatim.
33
+ */
34
+ export declare function resolveHandoff(markers: HandoffMarkers): HandoffResult;
35
+ /**
36
+ * Detect handoff markers by probing the filesystem at `cwd`.
37
+ * Thin adapter over the surface adapters' detect predicates — keeps this
38
+ * module decoupled from detectSurfaces() while staying grounded in the same
39
+ * filesystem facts.
40
+ *
41
+ * `.claude/` → hasClaude
42
+ * `.cursor/` → hasCursor
43
+ * `AGENTS.md` or `.codex/` → hasCodexFile (mirrors codexAdapter.detect)
44
+ */
45
+ export declare function detectHandoffMarkers(cwd: string): HandoffMarkers;
46
+ /**
47
+ * Write the handoff message to `stdout` followed by a trailing newline.
48
+ * No extra prose, no boxes, no spinners.
49
+ */
50
+ export declare function printHandoff(stdout: NodeJS.WritableStream, result: HandoffResult): void;
51
+ //# sourceMappingURL=connect-handoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-handoff.d.ts","sourceRoot":"","sources":["../../src/commands/connect-handoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,OAAO,GACP,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,eAAO,MAAM,gCAAgC,qFACuC,CAAC;AAErF,eAAO,MAAM,sBAAsB,2EACuC,CAAC;AAE3E,eAAO,MAAM,sBAAsB,sEACkC,CAAC;AAEtE,eAAO,MAAM,qBAAqB,yEACsC,CAAC;AAEzE,eAAO,MAAM,yBAAyB,mFAC4C,CAAC;AAInF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAgBrE;AAID;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAMhE;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAEvF"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * WP-433 S4 — FEAT-1291: pb connect chat handoff + locked agent-detection heuristic.
3
+ *
4
+ * Provides pure detection + resolution of the post-connect handoff message.
5
+ * No I/O side effects except `printHandoff` (which takes a stream).
6
+ *
7
+ * Locked detection heuristic (IMP-12 acceptance: ≤200 chars, user in chat ≤5 sec):
8
+ * .claude/=Y, .cursor/=Y → claude-or-cursor
9
+ * .claude/=Y, .cursor/=N → claude
10
+ * .claude/=N, .cursor/=Y → cursor
11
+ * .claude/=N, .cursor/=N, AGENTS.md=Y → codex
12
+ * .claude/=N, .cursor/=N, AGENTS.md=N → bare-repo (docs link)
13
+ *
14
+ */
15
+ import { existsSync } from 'fs';
16
+ import { join } from 'path';
17
+ // ── Locked message strings (IMP-12: ≤200 chars each) ─────────────────────────
18
+ export const HANDOFF_MESSAGE_CLAUDE_OR_CURSOR = 'Open Claude Code or Cursor in this project and type in chat: Start Product Brain';
19
+ export const HANDOFF_MESSAGE_CLAUDE = 'Open Claude Code in this project and type in chat: Start Product Brain';
20
+ export const HANDOFF_MESSAGE_CURSOR = 'Open Cursor in this project and type in chat: Start Product Brain';
21
+ export const HANDOFF_MESSAGE_CODEX = 'Open Codex CLI in this project and type in chat: Start Product Brain';
22
+ export const HANDOFF_MESSAGE_BARE_REPO = 'No AI tool detected in this project. Visit productbrain.io/docs to set one up.';
23
+ // ── Resolution ───────────────────────────────────────────────────────────────
24
+ /**
25
+ * Resolve the handoff agent + message from the detected markers.
26
+ * Implements the locked heuristic table verbatim.
27
+ */
28
+ export function resolveHandoff(markers) {
29
+ const { hasClaude, hasCursor, hasCodexFile } = markers;
30
+ if (hasClaude && hasCursor) {
31
+ return { agent: 'claude-or-cursor', message: HANDOFF_MESSAGE_CLAUDE_OR_CURSOR };
32
+ }
33
+ if (hasClaude) {
34
+ return { agent: 'claude', message: HANDOFF_MESSAGE_CLAUDE };
35
+ }
36
+ if (hasCursor) {
37
+ return { agent: 'cursor', message: HANDOFF_MESSAGE_CURSOR };
38
+ }
39
+ if (hasCodexFile) {
40
+ return { agent: 'codex', message: HANDOFF_MESSAGE_CODEX };
41
+ }
42
+ return { agent: 'bare-repo', message: HANDOFF_MESSAGE_BARE_REPO };
43
+ }
44
+ // ── Detection ────────────────────────────────────────────────────────────────
45
+ /**
46
+ * Detect handoff markers by probing the filesystem at `cwd`.
47
+ * Thin adapter over the surface adapters' detect predicates — keeps this
48
+ * module decoupled from detectSurfaces() while staying grounded in the same
49
+ * filesystem facts.
50
+ *
51
+ * `.claude/` → hasClaude
52
+ * `.cursor/` → hasCursor
53
+ * `AGENTS.md` or `.codex/` → hasCodexFile (mirrors codexAdapter.detect)
54
+ */
55
+ export function detectHandoffMarkers(cwd) {
56
+ return {
57
+ hasClaude: existsSync(join(cwd, '.claude')),
58
+ hasCursor: existsSync(join(cwd, '.cursor')),
59
+ hasCodexFile: existsSync(join(cwd, 'AGENTS.md')) || existsSync(join(cwd, '.codex')),
60
+ };
61
+ }
62
+ // ── Output ───────────────────────────────────────────────────────────────────
63
+ /**
64
+ * Write the handoff message to `stdout` followed by a trailing newline.
65
+ * No extra prose, no boxes, no spinners.
66
+ */
67
+ export function printHandoff(stdout, result) {
68
+ stdout.write(result.message + '\n');
69
+ }
70
+ //# sourceMappingURL=connect-handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-handoff.js","sourceRoot":"","sources":["../../src/commands/connect-handoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsB5B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,gCAAgC,GAC3C,kFAAkF,CAAC;AAErF,MAAM,CAAC,MAAM,sBAAsB,GACjC,wEAAwE,CAAC;AAE3E,MAAM,CAAC,MAAM,sBAAsB,GACjC,mEAAmE,CAAC;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAChC,sEAAsE,CAAC;AAEzE,MAAM,CAAC,MAAM,yBAAyB,GACpC,gFAAgF,CAAC;AAEnF,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAuB;IACpD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEvD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACpE,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3C,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3C,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAA6B,EAAE,MAAqB;IAC/E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Integration tests for pb connect — full E2E flow (FEAT-958 S5).
3
+ * Covers: token validation -> redemption -> key save -> wizard -> handshake.
4
+ * All external deps (fs, fetch, wizard, handshake) are mocked.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=connect-integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-integration.test.d.ts","sourceRoot":"","sources":["../../src/commands/connect-integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Integration tests for pb connect — full E2E flow (FEAT-958 S5).
3
+ * Covers: token validation -> redemption -> key save -> wizard -> handshake.
4
+ * All external deps (fs, fetch, wizard, handshake) are mocked.
5
+ */
6
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
+ // Mock modules BEFORE imports
8
+ const mockFetch = vi.fn();
9
+ global.fetch = mockFetch;
10
+ const mockCreateProfile = vi.fn();
11
+ const mockListProfiles = vi.fn(() => []);
12
+ vi.mock('fs', () => ({
13
+ mkdirSync: vi.fn(),
14
+ writeFileSync: vi.fn(),
15
+ existsSync: vi.fn(() => false),
16
+ readFileSync: vi.fn(() => {
17
+ throw new Error('ENOENT');
18
+ }),
19
+ }));
20
+ vi.mock('../lib/constants.js', () => ({
21
+ resolveAppUrl: () => 'https://test.convex.site',
22
+ resolveSiteUrl: () => 'https://gateway.productbrain.io',
23
+ DEFAULT_SITE_URL: 'https://gateway.productbrain.io',
24
+ resolveConnectRedeemUrl: (cli) => {
25
+ if (cli?.trim())
26
+ return cli.trim().replace(/\/$/, '');
27
+ const fromEnv = process.env.PB_CONNECT_GATEWAY_URL?.trim();
28
+ if (fromEnv)
29
+ return fromEnv.replace(/\/$/, '');
30
+ const fromConvex = process.env.CONVEX_SITE_URL?.trim();
31
+ if (fromConvex)
32
+ return fromConvex.replace(/\/$/, '');
33
+ return 'https://gateway.productbrain.io';
34
+ },
35
+ }));
36
+ vi.mock('../lib/spinner.js', () => ({
37
+ withSpinner: async (_msg, fn) => fn(),
38
+ }));
39
+ vi.mock('@clack/prompts', () => ({
40
+ // Post-S4: no clack.select remains in the handoff path; earlier Ink screens handle prior steps.
41
+ select: vi.fn(async () => 'start'),
42
+ isCancel: vi.fn(() => false),
43
+ text: vi.fn(async () => ''),
44
+ }));
45
+ // WP-2 confirm-first gate: default interactive + confirmed so the E2E flow proceeds.
46
+ vi.mock('../lib/prompts.js', () => ({
47
+ confirm: vi.fn(async () => true),
48
+ isInteractive: vi.fn(() => true),
49
+ }));
50
+ vi.mock('../lib/profiles.js', () => ({
51
+ createProfile: (...args) => mockCreateProfile(...args),
52
+ listProfiles: () => mockListProfiles(),
53
+ }));
54
+ vi.mock('./handshake.js', () => ({
55
+ runHandshake: vi.fn(async () => { }),
56
+ }));
57
+ // Mock connect-screens (Ink TUI — cannot render in Vitest environment)
58
+ const mockRunConnectScreens = vi.fn(async (_name, _profile) => { });
59
+ const mockRunConnectHeadless = vi.fn(async (_name, _profile) => { });
60
+ vi.mock('./connect-screens.js', () => ({
61
+ runConnectScreens: (name, profile) => mockRunConnectScreens(name, profile),
62
+ runConnectHeadless: (name, profile) => mockRunConnectHeadless(name, profile),
63
+ }));
64
+ // Import function under test and mocked modules
65
+ import { runConnect } from './connect.js';
66
+ import { writeFileSync } from 'fs';
67
+ import { CLIError } from '../lib/errors.js';
68
+ import * as clack from '@clack/prompts';
69
+ // Suppress console output
70
+ const consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
71
+ const stdoutSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
72
+ const originalEnv = { ...process.env };
73
+ const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
74
+ describe('pb connect — integration', () => {
75
+ beforeEach(() => {
76
+ vi.clearAllMocks();
77
+ consoleSpy.mockClear();
78
+ stdoutSpy.mockClear();
79
+ stderrSpy.mockClear();
80
+ process.env.CONVEX_SITE_URL = 'https://test.convex.site';
81
+ delete process.env.PB_ENV;
82
+ delete process.env.PB_CONNECT_GATEWAY_URL;
83
+ });
84
+ afterEach(() => {
85
+ process.env = { ...originalEnv };
86
+ });
87
+ it('happy path: full connect flow', async () => {
88
+ const token = 'pb_ct_' + 'a'.repeat(40);
89
+ mockFetch.mockResolvedValueOnce({
90
+ ok: true,
91
+ json: async () => ({
92
+ apiKey: 'pb_sk_test123',
93
+ workspaceId: 'ws1',
94
+ workspaceName: 'Test WS',
95
+ }),
96
+ });
97
+ await runConnect(token);
98
+ // fetch called with CONVEX_SITE_URL + /auth/redeem-connect-token
99
+ expect(mockFetch).toHaveBeenCalledWith('https://test.convex.site/auth/redeem-connect-token', expect.objectContaining({
100
+ method: 'POST',
101
+ body: JSON.stringify({ token }),
102
+ }));
103
+ // Profile created with slugified workspace name
104
+ expect(mockCreateProfile).toHaveBeenCalledWith('test-ws', 'pb_sk_test123', expect.any(String));
105
+ // useProfile NOT called — connect doesn't hijack global profile
106
+ // Project config written
107
+ expect(writeFileSync).toHaveBeenCalled();
108
+ // Ink wizard was called with workspace name and profile name
109
+ expect(mockRunConnectScreens).toHaveBeenCalledWith('Test WS', 'test-ws');
110
+ // FEAT-1291: post-connect handoff no longer uses clack.select (TEN-1992 fix)
111
+ expect(clack.select).not.toHaveBeenCalled();
112
+ // FEAT-1291: printHandoff writes the tailored handoff message to process.stdout.
113
+ // existsSync is mocked to always-false → bare-repo path fires.
114
+ expect(stdoutSpy).toHaveBeenCalledWith(expect.stringContaining('No AI tool detected in this project'));
115
+ });
116
+ it('token rejection stops flow — wizard and handshake not called', async () => {
117
+ const token = 'pb_ct_' + 'a'.repeat(40);
118
+ mockFetch.mockResolvedValueOnce({
119
+ ok: false,
120
+ status: 400,
121
+ json: async () => ({
122
+ error: {
123
+ code: 'invalid_token',
124
+ message: 'Token expired',
125
+ },
126
+ }),
127
+ });
128
+ await expect(runConnect(token)).rejects.toThrow(CLIError);
129
+ // Ink wizard and prompts should NOT have been called
130
+ expect(mockRunConnectScreens).not.toHaveBeenCalled();
131
+ expect(clack.select).not.toHaveBeenCalled();
132
+ });
133
+ it('invalid token format never hits server', async () => {
134
+ await expect(runConnect('bad_token')).rejects.toThrow(CLIError);
135
+ // fetch should NOT have been called
136
+ expect(mockFetch).not.toHaveBeenCalled();
137
+ });
138
+ it('handshake failure is non-fatal (handled inside runConnectScreens)', async () => {
139
+ const token = 'pb_ct_' + 'a'.repeat(40);
140
+ mockFetch.mockResolvedValueOnce({
141
+ ok: true,
142
+ json: async () => ({
143
+ apiKey: 'pb_sk_test456',
144
+ workspaceId: 'ws2',
145
+ workspaceName: 'WS Two',
146
+ }),
147
+ });
148
+ // runConnect should NOT throw — runConnectScreens handles handshake internally
149
+ await expect(runConnect(token)).resolves.toBeUndefined();
150
+ // runConnectScreens was called with workspace and profile name
151
+ expect(mockRunConnectScreens).toHaveBeenCalledWith('WS Two', 'ws-two');
152
+ });
153
+ it('FEAT-1291: post-connect flow completes without clack.select (no exit-on-cancel path)', async () => {
154
+ // TEN-1992 fix: the old clack.select "What's next?" menu exited on cancel.
155
+ // Now runConnect always succeeds after the screens — no cancel path possible.
156
+ const token = 'pb_ct_' + 'a'.repeat(40);
157
+ mockFetch.mockResolvedValueOnce({
158
+ ok: true,
159
+ json: async () => ({
160
+ apiKey: 'pb_sk_nocancel',
161
+ workspaceId: 'ws3',
162
+ workspaceName: 'No Cancel WS',
163
+ }),
164
+ });
165
+ await expect(runConnect(token)).resolves.toBeUndefined();
166
+ expect(clack.select).not.toHaveBeenCalled();
167
+ });
168
+ it('includes deployment hint in error when token is invalid', async () => {
169
+ const token = 'pb_ct_' + 'a'.repeat(40);
170
+ mockFetch.mockResolvedValueOnce({
171
+ ok: false,
172
+ status: 400,
173
+ json: async () => ({
174
+ error: { code: 'invalid_token', message: 'Token expired' },
175
+ }),
176
+ });
177
+ let caught;
178
+ try {
179
+ await runConnect(token);
180
+ }
181
+ catch (err) {
182
+ caught = err;
183
+ }
184
+ expect(caught).toBeInstanceOf(CLIError);
185
+ expect(caught.guidance).toContain('Tried gateway:');
186
+ expect(caught.guidance).toContain('CONVEX_SITE_URL');
187
+ expect(caught.guidance).toContain('--gateway');
188
+ });
189
+ it('uses CONVEX_SITE_URL for redeem when set', async () => {
190
+ process.env.CONVEX_SITE_URL = 'https://my-dev.convex.site';
191
+ const token = 'pb_ct_' + 'a'.repeat(40);
192
+ mockFetch.mockResolvedValueOnce({
193
+ ok: true,
194
+ json: async () => ({
195
+ apiKey: 'pb_sk_convex',
196
+ workspaceId: 'ws-convex',
197
+ workspaceName: 'Convex WS',
198
+ }),
199
+ });
200
+ await runConnect(token);
201
+ expect(mockFetch).toHaveBeenCalledWith('https://my-dev.convex.site/auth/redeem-connect-token', expect.objectContaining({ method: 'POST' }));
202
+ });
203
+ it('passes --name to redeem body in non-interactive flow', async () => {
204
+ const token = 'pb_ct_' + 'a'.repeat(40);
205
+ mockFetch.mockResolvedValueOnce({
206
+ ok: true,
207
+ json: async () => ({
208
+ apiKey: 'pb_sk_ci',
209
+ workspaceId: 'ws-ci',
210
+ workspaceName: 'CI WS',
211
+ }),
212
+ });
213
+ await runConnect(token, { name: 'GitHub Actions' });
214
+ expect(mockFetch).toHaveBeenCalledWith('https://test.convex.site/auth/redeem-connect-token', expect.objectContaining({
215
+ body: JSON.stringify({ token, name: 'GitHub Actions' }),
216
+ }));
217
+ });
218
+ });
219
+ //# sourceMappingURL=connect-integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-integration.test.js","sourceRoot":"","sources":["../../src/commands/connect-integration.test.ts"],"names":[],"mappings":"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"}