@productbrain/cli 0.1.0-beta.99 → 0.1.0-beta.997

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 (418) hide show
  1. package/dist/__tests__/audit.test.js +5 -0
  2. package/dist/__tests__/audit.test.js.map +1 -1
  3. package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
  4. package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
  5. package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
  6. package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
  7. package/dist/__tests__/config.test.js +272 -2
  8. package/dist/__tests__/config.test.js.map +1 -1
  9. package/dist/__tests__/constants.test.js +6 -1
  10. package/dist/__tests__/constants.test.js.map +1 -1
  11. package/dist/__tests__/envelope-contract.test.js +29 -3
  12. package/dist/__tests__/envelope-contract.test.js.map +1 -1
  13. package/dist/__tests__/errors.test.js +1 -0
  14. package/dist/__tests__/errors.test.js.map +1 -1
  15. package/dist/__tests__/handshake-augment.test.d.ts +2 -0
  16. package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
  17. package/dist/__tests__/handshake-augment.test.js +423 -0
  18. package/dist/__tests__/handshake-augment.test.js.map +1 -0
  19. package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
  20. package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
  21. package/dist/__tests__/handshake-dormancy.test.js +207 -0
  22. package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
  23. package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
  24. package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
  25. package/dist/__tests__/handshake-formatter.test.js +67 -0
  26. package/dist/__tests__/handshake-formatter.test.js.map +1 -0
  27. package/dist/__tests__/handshake-preview.test.js +566 -4
  28. package/dist/__tests__/handshake-preview.test.js.map +1 -1
  29. package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
  30. package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
  31. package/dist/__tests__/handshake.e2e.test.js +1252 -0
  32. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  33. package/dist/__tests__/handshake.test.js +611 -2
  34. package/dist/__tests__/handshake.test.js.map +1 -1
  35. package/dist/__tests__/manifest.test.js +118 -1
  36. package/dist/__tests__/manifest.test.js.map +1 -1
  37. package/dist/__tests__/notice-marker.test.d.ts +2 -0
  38. package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
  39. package/dist/__tests__/notice-marker.test.js +41 -0
  40. package/dist/__tests__/notice-marker.test.js.map +1 -0
  41. package/dist/__tests__/onboarding-path-b.test.js +4 -4
  42. package/dist/__tests__/onboarding-path-b.test.js.map +1 -1
  43. package/dist/__tests__/orient.test.js +184 -7
  44. package/dist/__tests__/orient.test.js.map +1 -1
  45. package/dist/__tests__/perimeter.test.d.ts +2 -0
  46. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  47. package/dist/__tests__/perimeter.test.js +165 -0
  48. package/dist/__tests__/perimeter.test.js.map +1 -0
  49. package/dist/__tests__/personal-layer.test.d.ts +1 -2
  50. package/dist/__tests__/personal-layer.test.d.ts.map +1 -1
  51. package/dist/__tests__/personal-layer.test.js +12 -48
  52. package/dist/__tests__/personal-layer.test.js.map +1 -1
  53. package/dist/__tests__/profiles.test.js +106 -2
  54. package/dist/__tests__/profiles.test.js.map +1 -1
  55. package/dist/__tests__/promote.test.js +2 -2
  56. package/dist/__tests__/promote.test.js.map +1 -1
  57. package/dist/__tests__/session-state-machine.test.js +45 -1
  58. package/dist/__tests__/session-state-machine.test.js.map +1 -1
  59. package/dist/__tests__/session-switch.test.d.ts +2 -0
  60. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  61. package/dist/__tests__/session-switch.test.js +129 -0
  62. package/dist/__tests__/session-switch.test.js.map +1 -0
  63. package/dist/__tests__/setup-ingest.test.js +16 -0
  64. package/dist/__tests__/setup-ingest.test.js.map +1 -1
  65. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  66. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  67. package/dist/__tests__/skill-vocabulary.test.js +187 -0
  68. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  69. package/dist/__tests__/update-check.test.d.ts +2 -0
  70. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  71. package/dist/__tests__/update-check.test.js +215 -0
  72. package/dist/__tests__/update-check.test.js.map +1 -0
  73. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  74. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  75. package/dist/__tests__/upgrade-runner.test.js +54 -0
  76. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  77. package/dist/__tests__/upgrade.test.d.ts +2 -0
  78. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  79. package/dist/__tests__/upgrade.test.js +56 -0
  80. package/dist/__tests__/upgrade.test.js.map +1 -0
  81. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  82. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  83. package/dist/__tests__/vocabulary-leak.test.js +534 -0
  84. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  85. package/dist/__tests__/workspace.test.js +32 -12
  86. package/dist/__tests__/workspace.test.js.map +1 -1
  87. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  88. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  89. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  90. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  91. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
  92. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
  93. package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
  94. package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
  95. package/dist/commands/__tests__/setup-state.test.d.ts +2 -0
  96. package/dist/commands/__tests__/setup-state.test.d.ts.map +1 -0
  97. package/dist/commands/__tests__/setup-state.test.js +194 -0
  98. package/dist/commands/__tests__/setup-state.test.js.map +1 -0
  99. package/dist/commands/admin/seed.d.ts +46 -2
  100. package/dist/commands/admin/seed.d.ts.map +1 -1
  101. package/dist/commands/admin/seed.js +475 -33
  102. package/dist/commands/admin/seed.js.map +1 -1
  103. package/dist/commands/admin/seed.test.d.ts +5 -0
  104. package/dist/commands/admin/seed.test.d.ts.map +1 -1
  105. package/dist/commands/admin/seed.test.js +67 -2
  106. package/dist/commands/admin/seed.test.js.map +1 -1
  107. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  108. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  109. package/dist/commands/admin/seedRegistryEntries.generated.js +117 -0
  110. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  111. package/dist/commands/admin/seedRegistryEntries.test.d.ts +11 -0
  112. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  113. package/dist/commands/admin/seedRegistryEntries.test.js +67 -0
  114. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  115. package/dist/commands/audit.d.ts.map +1 -1
  116. package/dist/commands/audit.js +30 -3
  117. package/dist/commands/audit.js.map +1 -1
  118. package/dist/commands/authority-domains.d.ts +7 -1
  119. package/dist/commands/authority-domains.d.ts.map +1 -1
  120. package/dist/commands/authority-domains.js +19 -4
  121. package/dist/commands/authority-domains.js.map +1 -1
  122. package/dist/commands/capture.d.ts.map +1 -1
  123. package/dist/commands/capture.js +5 -3
  124. package/dist/commands/capture.js.map +1 -1
  125. package/dist/commands/codex-prep.d.ts +1 -0
  126. package/dist/commands/codex-prep.d.ts.map +1 -1
  127. package/dist/commands/codex-prep.js +10 -7
  128. package/dist/commands/codex-prep.js.map +1 -1
  129. package/dist/commands/connect-config.test.d.ts +2 -0
  130. package/dist/commands/connect-config.test.d.ts.map +1 -0
  131. package/dist/commands/connect-config.test.js +44 -0
  132. package/dist/commands/connect-config.test.js.map +1 -0
  133. package/dist/commands/connect-context.d.ts +45 -0
  134. package/dist/commands/connect-context.d.ts.map +1 -0
  135. package/dist/commands/connect-context.js +64 -0
  136. package/dist/commands/connect-context.js.map +1 -0
  137. package/dist/commands/connect-context.test.d.ts +2 -0
  138. package/dist/commands/connect-context.test.d.ts.map +1 -0
  139. package/dist/commands/connect-context.test.js +110 -0
  140. package/dist/commands/connect-context.test.js.map +1 -0
  141. package/dist/commands/connect-handoff.d.ts +51 -0
  142. package/dist/commands/connect-handoff.d.ts.map +1 -0
  143. package/dist/commands/connect-handoff.js +70 -0
  144. package/dist/commands/connect-handoff.js.map +1 -0
  145. package/dist/commands/connect-integration.test.js +13 -12
  146. package/dist/commands/connect-integration.test.js.map +1 -1
  147. package/dist/commands/connect-screens.d.ts +6 -4
  148. package/dist/commands/connect-screens.d.ts.map +1 -1
  149. package/dist/commands/connect-screens.js +30 -19
  150. package/dist/commands/connect-screens.js.map +1 -1
  151. package/dist/commands/connect.d.ts +19 -6
  152. package/dist/commands/connect.d.ts.map +1 -1
  153. package/dist/commands/connect.js +31 -56
  154. package/dist/commands/connect.js.map +1 -1
  155. package/dist/commands/doctor.d.ts.map +1 -1
  156. package/dist/commands/doctor.js +68 -3
  157. package/dist/commands/doctor.js.map +1 -1
  158. package/dist/commands/doctor.test.js +150 -0
  159. package/dist/commands/doctor.test.js.map +1 -1
  160. package/dist/commands/handshake.d.ts +194 -2
  161. package/dist/commands/handshake.d.ts.map +1 -1
  162. package/dist/commands/handshake.js +1538 -46
  163. package/dist/commands/handshake.js.map +1 -1
  164. package/dist/commands/method.d.ts.map +1 -1
  165. package/dist/commands/method.js +5 -1
  166. package/dist/commands/method.js.map +1 -1
  167. package/dist/commands/orient.d.ts +63 -2
  168. package/dist/commands/orient.d.ts.map +1 -1
  169. package/dist/commands/orient.js +106 -4
  170. package/dist/commands/orient.js.map +1 -1
  171. package/dist/commands/profile.d.ts +1 -14
  172. package/dist/commands/profile.d.ts.map +1 -1
  173. package/dist/commands/profile.js +89 -72
  174. package/dist/commands/profile.js.map +1 -1
  175. package/dist/commands/reject.d.ts.map +1 -1
  176. package/dist/commands/reject.js +2 -1
  177. package/dist/commands/reject.js.map +1 -1
  178. package/dist/commands/relate.d.ts.map +1 -1
  179. package/dist/commands/relate.js +4 -2
  180. package/dist/commands/relate.js.map +1 -1
  181. package/dist/commands/session.d.ts.map +1 -1
  182. package/dist/commands/session.js +50 -13
  183. package/dist/commands/session.js.map +1 -1
  184. package/dist/commands/setup-audit.d.ts +59 -0
  185. package/dist/commands/setup-audit.d.ts.map +1 -0
  186. package/dist/commands/setup-audit.js +250 -0
  187. package/dist/commands/setup-audit.js.map +1 -0
  188. package/dist/commands/setup-detect-surfaces.d.ts +38 -0
  189. package/dist/commands/setup-detect-surfaces.d.ts.map +1 -0
  190. package/dist/commands/setup-detect-surfaces.js +76 -0
  191. package/dist/commands/setup-detect-surfaces.js.map +1 -0
  192. package/dist/commands/setup-ingest.d.ts.map +1 -1
  193. package/dist/commands/setup-ingest.js +4 -2
  194. package/dist/commands/setup-ingest.js.map +1 -1
  195. package/dist/commands/setup-state.d.ts +42 -0
  196. package/dist/commands/setup-state.d.ts.map +1 -0
  197. package/dist/commands/setup-state.js +93 -0
  198. package/dist/commands/setup-state.js.map +1 -0
  199. package/dist/commands/setup.d.ts +17 -9
  200. package/dist/commands/setup.d.ts.map +1 -1
  201. package/dist/commands/setup.js +52 -131
  202. package/dist/commands/setup.js.map +1 -1
  203. package/dist/commands/update.d.ts.map +1 -1
  204. package/dist/commands/update.js +2 -1
  205. package/dist/commands/update.js.map +1 -1
  206. package/dist/commands/upgrade.d.ts +5 -0
  207. package/dist/commands/upgrade.d.ts.map +1 -0
  208. package/dist/commands/upgrade.js +110 -0
  209. package/dist/commands/upgrade.js.map +1 -0
  210. package/dist/commands/verify.d.ts.map +1 -1
  211. package/dist/commands/verify.js +2 -1
  212. package/dist/commands/verify.js.map +1 -1
  213. package/dist/commands/whoami.d.ts +12 -0
  214. package/dist/commands/whoami.d.ts.map +1 -0
  215. package/dist/commands/whoami.js +70 -0
  216. package/dist/commands/whoami.js.map +1 -0
  217. package/dist/commands/whoami.test.d.ts +2 -0
  218. package/dist/commands/whoami.test.d.ts.map +1 -0
  219. package/dist/commands/whoami.test.js +50 -0
  220. package/dist/commands/whoami.test.js.map +1 -0
  221. package/dist/commands/workspace.d.ts +23 -2
  222. package/dist/commands/workspace.d.ts.map +1 -1
  223. package/dist/commands/workspace.js +2 -2
  224. package/dist/commands/workspace.js.map +1 -1
  225. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  226. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  227. package/dist/formatters/__tests__/orient-provenance.test.js +454 -0
  228. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  229. package/dist/formatters/audit.d.ts +6 -0
  230. package/dist/formatters/audit.d.ts.map +1 -1
  231. package/dist/formatters/audit.js.map +1 -1
  232. package/dist/formatters/entry.d.ts +21 -0
  233. package/dist/formatters/entry.d.ts.map +1 -1
  234. package/dist/formatters/entry.js +46 -5
  235. package/dist/formatters/entry.js.map +1 -1
  236. package/dist/formatters/handshake.d.ts +19 -3
  237. package/dist/formatters/handshake.d.ts.map +1 -1
  238. package/dist/formatters/handshake.js +48 -13
  239. package/dist/formatters/handshake.js.map +1 -1
  240. package/dist/formatters/orient.d.ts +79 -4
  241. package/dist/formatters/orient.d.ts.map +1 -1
  242. package/dist/formatters/orient.js +119 -18
  243. package/dist/formatters/orient.js.map +1 -1
  244. package/dist/generators/context-md.js +6 -6
  245. package/dist/generators/context-md.js.map +1 -1
  246. package/dist/generators/manifest.d.ts +76 -0
  247. package/dist/generators/manifest.d.ts.map +1 -1
  248. package/dist/generators/manifest.js +125 -14
  249. package/dist/generators/manifest.js.map +1 -1
  250. package/dist/generators/portable-knowledge.d.ts +6 -12
  251. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  252. package/dist/generators/portable-knowledge.js +2 -19
  253. package/dist/generators/portable-knowledge.js.map +1 -1
  254. package/dist/generators/region-projections.d.ts +18 -0
  255. package/dist/generators/region-projections.d.ts.map +1 -0
  256. package/dist/generators/region-projections.js +49 -0
  257. package/dist/generators/region-projections.js.map +1 -0
  258. package/dist/generators/region-projections.test.d.ts +2 -0
  259. package/dist/generators/region-projections.test.d.ts.map +1 -0
  260. package/dist/generators/region-projections.test.js +63 -0
  261. package/dist/generators/region-projections.test.js.map +1 -0
  262. package/dist/generators/region.d.ts +24 -0
  263. package/dist/generators/region.d.ts.map +1 -0
  264. package/dist/generators/region.js +87 -0
  265. package/dist/generators/region.js.map +1 -0
  266. package/dist/generators/region.test.d.ts +2 -0
  267. package/dist/generators/region.test.d.ts.map +1 -0
  268. package/dist/generators/region.test.js +126 -0
  269. package/dist/generators/region.test.js.map +1 -0
  270. package/dist/generators/surface-profiles.d.ts +1 -2
  271. package/dist/generators/surface-profiles.d.ts.map +1 -1
  272. package/dist/generators/surface-profiles.js.map +1 -1
  273. package/dist/index.js +134 -26
  274. package/dist/index.js.map +1 -1
  275. package/dist/lib/activation.d.ts.map +1 -1
  276. package/dist/lib/activation.js +3 -3
  277. package/dist/lib/activation.js.map +1 -1
  278. package/dist/lib/activation.test.js +3 -3
  279. package/dist/lib/activation.test.js.map +1 -1
  280. package/dist/lib/canonicalRefs.d.ts +72 -0
  281. package/dist/lib/canonicalRefs.d.ts.map +1 -1
  282. package/dist/lib/canonicalRefs.js +67 -0
  283. package/dist/lib/canonicalRefs.js.map +1 -1
  284. package/dist/lib/client.d.ts.map +1 -1
  285. package/dist/lib/client.js +13 -3
  286. package/dist/lib/client.js.map +1 -1
  287. package/dist/lib/config.d.ts +70 -4
  288. package/dist/lib/config.d.ts.map +1 -1
  289. package/dist/lib/config.js +151 -11
  290. package/dist/lib/config.js.map +1 -1
  291. package/dist/lib/constants.d.ts +2 -0
  292. package/dist/lib/constants.d.ts.map +1 -1
  293. package/dist/lib/constants.js +2 -0
  294. package/dist/lib/constants.js.map +1 -1
  295. package/dist/lib/errors.d.ts +1 -0
  296. package/dist/lib/errors.d.ts.map +1 -1
  297. package/dist/lib/errors.js +1 -0
  298. package/dist/lib/errors.js.map +1 -1
  299. package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
  300. package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
  301. package/dist/lib/normalizeMaterializedFilename.js +56 -0
  302. package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
  303. package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
  304. package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
  305. package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
  306. package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
  307. package/dist/lib/notice-marker.d.ts +3 -0
  308. package/dist/lib/notice-marker.d.ts.map +1 -0
  309. package/dist/lib/notice-marker.js +53 -0
  310. package/dist/lib/notice-marker.js.map +1 -0
  311. package/dist/lib/onboarding-path-b.d.ts.map +1 -1
  312. package/dist/lib/onboarding-path-b.js +0 -1
  313. package/dist/lib/onboarding-path-b.js.map +1 -1
  314. package/dist/lib/onboarding-shared.d.ts +0 -1
  315. package/dist/lib/onboarding-shared.d.ts.map +1 -1
  316. package/dist/lib/onboarding-shared.js +1 -17
  317. package/dist/lib/onboarding-shared.js.map +1 -1
  318. package/dist/lib/profiles.d.ts +3 -1
  319. package/dist/lib/profiles.d.ts.map +1 -1
  320. package/dist/lib/profiles.js +9 -6
  321. package/dist/lib/profiles.js.map +1 -1
  322. package/dist/lib/session.d.ts +10 -0
  323. package/dist/lib/session.d.ts.map +1 -1
  324. package/dist/lib/session.js +14 -0
  325. package/dist/lib/session.js.map +1 -1
  326. package/dist/lib/update-check.d.ts +42 -7
  327. package/dist/lib/update-check.d.ts.map +1 -1
  328. package/dist/lib/update-check.js +213 -62
  329. package/dist/lib/update-check.js.map +1 -1
  330. package/dist/lib/upgrade-runner.d.ts +22 -0
  331. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  332. package/dist/lib/upgrade-runner.js +110 -0
  333. package/dist/lib/upgrade-runner.js.map +1 -0
  334. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  335. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  336. package/dist/lib/workspaceVocabCache.js +98 -0
  337. package/dist/lib/workspaceVocabCache.js.map +1 -0
  338. package/dist/setup/__tests__/coach-traces.test.d.ts +2 -0
  339. package/dist/setup/__tests__/coach-traces.test.d.ts.map +1 -0
  340. package/dist/setup/__tests__/coach-traces.test.js +189 -0
  341. package/dist/setup/__tests__/coach-traces.test.js.map +1 -0
  342. package/dist/setup/__tests__/setup-commands.test.d.ts +2 -0
  343. package/dist/setup/__tests__/setup-commands.test.d.ts.map +1 -0
  344. package/dist/setup/__tests__/setup-commands.test.js +177 -0
  345. package/dist/setup/__tests__/setup-commands.test.js.map +1 -0
  346. package/dist/setup/__tests__/state-machine.test.d.ts +2 -0
  347. package/dist/setup/__tests__/state-machine.test.d.ts.map +1 -0
  348. package/dist/setup/__tests__/state-machine.test.js +341 -0
  349. package/dist/setup/__tests__/state-machine.test.js.map +1 -0
  350. package/dist/setup/detect-surfaces.d.ts +21 -0
  351. package/dist/setup/detect-surfaces.d.ts.map +1 -0
  352. package/dist/setup/detect-surfaces.js +39 -0
  353. package/dist/setup/detect-surfaces.js.map +1 -0
  354. package/dist/setup/manifest-writer.d.ts +17 -0
  355. package/dist/setup/manifest-writer.d.ts.map +1 -0
  356. package/dist/setup/manifest-writer.js +153 -0
  357. package/dist/setup/manifest-writer.js.map +1 -0
  358. package/dist/setup/perimeter.d.ts +72 -0
  359. package/dist/setup/perimeter.d.ts.map +1 -0
  360. package/dist/setup/perimeter.js +128 -0
  361. package/dist/setup/perimeter.js.map +1 -0
  362. package/dist/setup/state-machine.d.ts +67 -0
  363. package/dist/setup/state-machine.d.ts.map +1 -0
  364. package/dist/setup/state-machine.js +124 -0
  365. package/dist/setup/state-machine.js.map +1 -0
  366. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  367. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  368. package/dist/surfaces/__tests__/adapter.test.js +90 -0
  369. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  370. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +2 -0
  371. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +1 -0
  372. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +132 -0
  373. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +1 -0
  374. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  375. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  376. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  377. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  378. package/dist/surfaces/adapter.d.ts +70 -0
  379. package/dist/surfaces/adapter.d.ts.map +1 -0
  380. package/dist/surfaces/adapter.js +2 -0
  381. package/dist/surfaces/adapter.js.map +1 -0
  382. package/dist/surfaces/adapters/claude.d.ts +3 -0
  383. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  384. package/dist/surfaces/adapters/claude.js +67 -0
  385. package/dist/surfaces/adapters/claude.js.map +1 -0
  386. package/dist/surfaces/adapters/codex.d.ts +3 -0
  387. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  388. package/dist/surfaces/adapters/codex.js +61 -0
  389. package/dist/surfaces/adapters/codex.js.map +1 -0
  390. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  391. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  392. package/dist/surfaces/adapters/copilot.js +59 -0
  393. package/dist/surfaces/adapters/copilot.js.map +1 -0
  394. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  395. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  396. package/dist/surfaces/adapters/cursor.js +78 -0
  397. package/dist/surfaces/adapters/cursor.js.map +1 -0
  398. package/dist/surfaces/registry.d.ts +58 -2
  399. package/dist/surfaces/registry.d.ts.map +1 -1
  400. package/dist/surfaces/registry.js +82 -7
  401. package/dist/surfaces/registry.js.map +1 -1
  402. package/dist/surfaces/telemetry.d.ts +17 -0
  403. package/dist/surfaces/telemetry.d.ts.map +1 -0
  404. package/dist/surfaces/telemetry.js +31 -0
  405. package/dist/surfaces/telemetry.js.map +1 -0
  406. package/package.json +3 -1
  407. package/dist/__tests__/setup.test.d.ts +0 -2
  408. package/dist/__tests__/setup.test.d.ts.map +0 -1
  409. package/dist/__tests__/setup.test.js +0 -141
  410. package/dist/__tests__/setup.test.js.map +0 -1
  411. package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
  412. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
  413. package/dist/generators/__tests__/surface-profiles.test.js +0 -89
  414. package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
  415. package/dist/lib/onboarding-phases.d.ts +0 -9
  416. package/dist/lib/onboarding-phases.d.ts.map +0 -1
  417. package/dist/lib/onboarding-phases.js +0 -120
  418. package/dist/lib/onboarding-phases.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.test.js","sourceRoot":"","sources":["../../src/__tests__/workspace.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.test.js","sourceRoot":"","sources":["../../src/__tests__/workspace.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtG,8EAA8E;AAE9E,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE/B,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CAC5D,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAC3B,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAC/E;CACF,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAK,EAAE,EAAE,EAAE,YAAY,EAA4D,EAAE,EAAE;QAC/G,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,8EAA8E;AAE9E,SAAS,aAAa,CAAC,EAAuB;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE;YACzE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,EAAE,EAAE;aACD,IAAI,CAAC,GAAG,EAAE;YACT,GAAG,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,GAAG,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAE9E,MAAM,aAAa,GAA0B;IAC3C,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,eAAe,GAA0B;IAC7C,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,kBAAkB;IACjC,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;IACxB,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,oEAAoE;YAC7E,OAAO,EAAE,EAAE,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;SACrD;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,6EAA6E;SACvF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,gEAAgE;SAC1E;KACF;IACD,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF,MAAM,kBAAkB,GAA0B;IAChD,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,KAAK;IACzB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;IACxB,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,uCAAuC;YAC7C,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,qCAAqC;YAC9C,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;SAChD;KACF;IACD,MAAM,EAAE,eAAe;CACxB,CAAC;AAEF,8EAA8E;AAE9E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAErC,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,kBAAkB;QAClB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,cAAc,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,cAAc,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAErC,MAAM,oBAAoB,GAAmB;QAC3C,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,mBAAmB;QAClC,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC;QACtE,cAAc,EAAE,IAAI;KACrB,CAAC;IAEF,MAAM,cAAc,GAAmB;QACrC,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,iBAAiB;QAChC,SAAS,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;QACrD,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,cAAc,EAAE,KAAK;KACtB,CAAC;IAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,cAAc,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE;;;;;;;OAOG;IAEH,oEAAoE;IACpE,IAAI,iBAAiB,GAAoC,IAAI,CAAC;IAE9D,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,SAAS,oBAAoB;QAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QACjC,iEAAiE;QACjE,OAAO,CAAC,kBAAkB,CAA+B,CAC1D,CAAC;QACF,KAAK,aAAa,CAAC;QACnB,kEAAkE;QAClE,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;YACnC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAK,EAAE,EAAE,EAAE,YAAY,EAA4D,EAAE,EAAE;gBAC/G,iBAAiB,GAAG,YAAsC,CAAC;gBAC3D,MAAM,EAAE,EAAE,CAAC;YACb,CAAC,CAAC;SACH,CAAC,CAAC,CAAC;IACN,CAAC;IACD,KAAK,oBAAoB,CAAC;IAE1B,uEAAuE;IACvE,mEAAmE;IAEnE,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,8DAA8D;QAC9D,yEAAyE;QACzE,mCAAmC;QACnC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;QACzE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,cAAc,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChD,gFAAgF;QAChF,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC3D,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,cAAc,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,wBAAwB;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * WP-433 S4 — FEAT-1291: Tests for connect-handoff module.
3
+ *
4
+ * Contract:
5
+ * 1. Heuristic table: 5 cases, each asserts exact agent + message strings.
6
+ * 2. ≤200-char invariant: all 5 messages must be ≤200 characters.
7
+ * 3. No bare-repo undefined: bare-repo result is never undefined/empty.
8
+ * 4. detectHandoffMarkers integration: tmpdir with .claude/ → hasClaude=true.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=connect-handoff.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-handoff.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/connect-handoff.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * WP-433 S4 — FEAT-1291: Tests for connect-handoff module.
3
+ *
4
+ * Contract:
5
+ * 1. Heuristic table: 5 cases, each asserts exact agent + message strings.
6
+ * 2. ≤200-char invariant: all 5 messages must be ≤200 characters.
7
+ * 3. No bare-repo undefined: bare-repo result is never undefined/empty.
8
+ * 4. detectHandoffMarkers integration: tmpdir with .claude/ → hasClaude=true.
9
+ */
10
+ import { mkdirSync, rmSync, writeFileSync } from 'fs';
11
+ import { join } from 'path';
12
+ import { tmpdir } from 'os';
13
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
14
+ import { resolveHandoff, detectHandoffMarkers, HANDOFF_MESSAGE_CLAUDE_OR_CURSOR, HANDOFF_MESSAGE_CLAUDE, HANDOFF_MESSAGE_CURSOR, HANDOFF_MESSAGE_CODEX, HANDOFF_MESSAGE_BARE_REPO, } from '../connect-handoff.js';
15
+ // ── 1. Heuristic table (5 cases) ─────────────────────────────────────────────
16
+ describe('resolveHandoff — heuristic table', () => {
17
+ it('.claude=Y, .cursor=Y → claude-or-cursor', () => {
18
+ const result = resolveHandoff({ hasClaude: true, hasCursor: true, hasCodexFile: false });
19
+ expect(result.agent).toBe('claude-or-cursor');
20
+ expect(result.message).toBe('Open Claude Code or Cursor in this project and type in chat: Start Product Brain');
21
+ });
22
+ it('.claude=Y, .cursor=N → claude', () => {
23
+ const result = resolveHandoff({ hasClaude: true, hasCursor: false, hasCodexFile: false });
24
+ expect(result.agent).toBe('claude');
25
+ expect(result.message).toBe('Open Claude Code in this project and type in chat: Start Product Brain');
26
+ });
27
+ it('.claude=N, .cursor=Y → cursor', () => {
28
+ const result = resolveHandoff({ hasClaude: false, hasCursor: true, hasCodexFile: false });
29
+ expect(result.agent).toBe('cursor');
30
+ expect(result.message).toBe('Open Cursor in this project and type in chat: Start Product Brain');
31
+ });
32
+ it('.claude=N, .cursor=N, AGENTS.md=Y → codex', () => {
33
+ const result = resolveHandoff({ hasClaude: false, hasCursor: false, hasCodexFile: true });
34
+ expect(result.agent).toBe('codex');
35
+ expect(result.message).toBe('Open Codex CLI in this project and type in chat: Start Product Brain');
36
+ });
37
+ it('.claude=N, .cursor=N, AGENTS.md=N → bare-repo', () => {
38
+ const result = resolveHandoff({ hasClaude: false, hasCursor: false, hasCodexFile: false });
39
+ expect(result.agent).toBe('bare-repo');
40
+ expect(result.message).toBe('No AI tool detected in this project. Visit productbrain.io/docs to set one up.');
41
+ });
42
+ });
43
+ // ── 2. Exhaustiveness: every boolean combination returns a defined HandoffResult ──
44
+ describe('resolveHandoff — every boolean combination returns a defined HandoffResult', () => {
45
+ it('covers all 2^3 = 8 marker combinations', () => {
46
+ const bools = [false, true];
47
+ for (const hasClaude of bools) {
48
+ for (const hasCursor of bools) {
49
+ for (const hasCodexFile of bools) {
50
+ const result = resolveHandoff({ hasClaude, hasCursor, hasCodexFile });
51
+ expect(result.agent).toBeDefined();
52
+ expect(result.message.length).toBeGreaterThan(0);
53
+ }
54
+ }
55
+ }
56
+ });
57
+ });
58
+ // ── 4. ≤200-char invariant ────────────────────────────────────────────────────
59
+ describe('handoff message ≤200-char invariant', () => {
60
+ const allMessages = [
61
+ HANDOFF_MESSAGE_CLAUDE_OR_CURSOR,
62
+ HANDOFF_MESSAGE_CLAUDE,
63
+ HANDOFF_MESSAGE_CURSOR,
64
+ HANDOFF_MESSAGE_CODEX,
65
+ HANDOFF_MESSAGE_BARE_REPO,
66
+ ];
67
+ it.each(allMessages)('message is ≤200 chars: "%s"', (msg) => {
68
+ expect(msg.length).toBeLessThanOrEqual(200);
69
+ });
70
+ });
71
+ // ── 5. No bare-repo undefined ─────────────────────────────────────────────────
72
+ describe('bare-repo result is never undefined or empty', () => {
73
+ it('resolveHandoff returns bare-repo with non-empty message when no markers', () => {
74
+ const result = resolveHandoff({ hasClaude: false, hasCursor: false, hasCodexFile: false });
75
+ expect(result.agent).toBe('bare-repo');
76
+ expect(result.message).toBeDefined();
77
+ expect(result.message.length).toBeGreaterThan(0);
78
+ });
79
+ });
80
+ // ── 6. detectHandoffMarkers integration ──────────────────────────────────────
81
+ describe('detectHandoffMarkers integration', () => {
82
+ let tmp;
83
+ beforeEach(() => {
84
+ tmp = join(tmpdir(), `pb-handoff-test-${Date.now()}`);
85
+ mkdirSync(tmp, { recursive: true });
86
+ });
87
+ afterEach(() => {
88
+ rmSync(tmp, { recursive: true, force: true });
89
+ });
90
+ it('returns hasClaude=true when .claude/ dir exists', () => {
91
+ mkdirSync(join(tmp, '.claude'));
92
+ const markers = detectHandoffMarkers(tmp);
93
+ expect(markers).toEqual({ hasClaude: true, hasCursor: false, hasCodexFile: false });
94
+ });
95
+ it('returns hasCursor=true when .cursor/ dir exists', () => {
96
+ mkdirSync(join(tmp, '.cursor'));
97
+ const markers = detectHandoffMarkers(tmp);
98
+ expect(markers).toEqual({ hasClaude: false, hasCursor: true, hasCodexFile: false });
99
+ });
100
+ it('returns hasCodexFile=true when AGENTS.md exists', () => {
101
+ // Write a minimal file so existsSync resolves it as a file (not dir)
102
+ writeFileSync(join(tmp, 'AGENTS.md'), '');
103
+ const markers = detectHandoffMarkers(tmp);
104
+ expect(markers).toEqual({ hasClaude: false, hasCursor: false, hasCodexFile: true });
105
+ });
106
+ it('returns all false when directory is empty', () => {
107
+ const markers = detectHandoffMarkers(tmp);
108
+ expect(markers).toEqual({ hasClaude: false, hasCursor: false, hasCodexFile: false });
109
+ });
110
+ });
111
+ //# sourceMappingURL=connect-handoff.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-handoff.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/connect-handoff.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * WP-433 S5 — `formatDetectSurfacesSummary` pure unit tests.
3
+ *
4
+ * Per INS-1420: runSetupDetectSurfaces makes live server calls via getConfigSafe()
5
+ * and kernelCall. These tests ONLY exercise the pure formatter on hand-crafted
6
+ * SetupDetectSurfacesResult objects — runSetupDetectSurfaces is never called.
7
+ *
8
+ * Test cases:
9
+ * 1. Bare-repo (zero detected, zero existing) → appends locked guidance question
10
+ * 2. Normal detect (new surfaces detected) → does NOT append
11
+ * 3. Idempotent re-run (existing surfaces, zero new) → does NOT append
12
+ * 4. Server-stamp-error case → surfaces error in summary, does NOT append extra question
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=setup-detect-surfaces.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-detect-surfaces.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/setup-detect-surfaces.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * WP-433 S5 — `formatDetectSurfacesSummary` pure unit tests.
3
+ *
4
+ * Per INS-1420: runSetupDetectSurfaces makes live server calls via getConfigSafe()
5
+ * and kernelCall. These tests ONLY exercise the pure formatter on hand-crafted
6
+ * SetupDetectSurfacesResult objects — runSetupDetectSurfaces is never called.
7
+ *
8
+ * Test cases:
9
+ * 1. Bare-repo (zero detected, zero existing) → appends locked guidance question
10
+ * 2. Normal detect (new surfaces detected) → does NOT append
11
+ * 3. Idempotent re-run (existing surfaces, zero new) → does NOT append
12
+ * 4. Server-stamp-error case → surfaces error in summary, does NOT append extra question
13
+ */
14
+ import { describe, expect, it } from 'vitest';
15
+ import { formatDetectSurfacesSummary, } from '../setup-detect-surfaces.js';
16
+ const LOCKED_QUESTION = "I don't see Claude Code or Cursor — which AI tool do you use?";
17
+ /** Helper: build a minimal SetupDetectSurfacesResult */
18
+ function makeResult(overrides = {}) {
19
+ return {
20
+ detected: [],
21
+ existing: [],
22
+ newlyAdded: [],
23
+ union: [],
24
+ manifestUpdated: false,
25
+ manifestPath: '/repo/.productbrain/manifest.json',
26
+ serverStamp: null,
27
+ serverStampError: null,
28
+ ...overrides,
29
+ };
30
+ }
31
+ describe('formatDetectSurfacesSummary — WP-433 S5 bare-repo guidance', () => {
32
+ it('bare-repo (zero detected, zero existing) appends locked guidance question', () => {
33
+ const result = makeResult({
34
+ detected: [],
35
+ existing: [],
36
+ newlyAdded: [],
37
+ union: [],
38
+ manifestUpdated: false,
39
+ });
40
+ const summary = formatDetectSurfacesSummary(result);
41
+ expect(summary).toContain(LOCKED_QUESTION);
42
+ // Confirm the question is on a separate line
43
+ expect(summary).toContain('\n' + LOCKED_QUESTION);
44
+ });
45
+ it('normal detect (new surfaces detected) does NOT append locked question', () => {
46
+ const result = makeResult({
47
+ detected: ['claude'],
48
+ existing: [],
49
+ newlyAdded: ['claude'],
50
+ union: ['claude'],
51
+ manifestUpdated: true,
52
+ serverStamp: { stamped: true, surfaces: ['claude'] },
53
+ });
54
+ const summary = formatDetectSurfacesSummary(result);
55
+ expect(summary).not.toContain(LOCKED_QUESTION);
56
+ // Confirm surfaces are mentioned
57
+ expect(summary).toContain('claude');
58
+ });
59
+ it('STD-235 remnant (zero detected, existing surfaces remain in manifest) does NOT append locked question', () => {
60
+ // Marker dir deleted from disk; STD-235 forward-only keeps the surface in manifest.
61
+ // Detected is empty but existing is not — guard must NOT trigger bare-repo guidance.
62
+ const result = makeResult({
63
+ detected: [],
64
+ existing: ['claude'],
65
+ newlyAdded: [],
66
+ union: ['claude'],
67
+ manifestUpdated: false,
68
+ });
69
+ const summary = formatDetectSurfacesSummary(result);
70
+ expect(summary).not.toContain(LOCKED_QUESTION);
71
+ expect(summary).toContain('Detected: none');
72
+ expect(summary).toContain('Existing: claude');
73
+ });
74
+ it('idempotent re-run (existing surfaces, zero new detected) does NOT append locked question', () => {
75
+ const result = makeResult({
76
+ detected: ['claude'],
77
+ existing: ['claude'],
78
+ newlyAdded: [],
79
+ union: ['claude'],
80
+ manifestUpdated: false,
81
+ serverStamp: { stamped: false, surfaces: ['claude'] },
82
+ });
83
+ const summary = formatDetectSurfacesSummary(result);
84
+ expect(summary).not.toContain(LOCKED_QUESTION);
85
+ // Existing should appear in summary
86
+ expect(summary).toContain('claude');
87
+ });
88
+ it('server-stamp-error case surfaces the error and does NOT append the locked question', () => {
89
+ // If detect-surfaces fails at the server stamp but DID find surfaces locally,
90
+ // the error should appear but the bare-repo question should not.
91
+ const result = makeResult({
92
+ detected: ['cursor'],
93
+ existing: [],
94
+ newlyAdded: ['cursor'],
95
+ union: ['cursor'],
96
+ manifestUpdated: true,
97
+ serverStamp: null,
98
+ serverStampError: 'Network timeout connecting to workspace',
99
+ });
100
+ const summary = formatDetectSurfacesSummary(result);
101
+ // Error is surfaced
102
+ expect(summary).toContain('Server stamp failed: Network timeout connecting to workspace');
103
+ // Bare-repo question is NOT appended (surfaces were found)
104
+ expect(summary).not.toContain(LOCKED_QUESTION);
105
+ });
106
+ it('bare-repo with server-stamp-error (edge case: zero surfaces + server error) appends locked question', () => {
107
+ // Zero detected + zero existing → bare-repo. Server stamp would not have been
108
+ // called (union is empty), but if serverStampError somehow populated, the
109
+ // bare-repo signal still dominates and the question should appear.
110
+ const result = makeResult({
111
+ detected: [],
112
+ existing: [],
113
+ newlyAdded: [],
114
+ union: [],
115
+ manifestUpdated: false,
116
+ serverStamp: null,
117
+ serverStampError: 'Config missing',
118
+ });
119
+ const summary = formatDetectSurfacesSummary(result);
120
+ // Server stamp error is surfaced
121
+ expect(summary).toContain('Server stamp failed: Config missing');
122
+ // Bare-repo guidance still applies
123
+ expect(summary).toContain(LOCKED_QUESTION);
124
+ });
125
+ it('summary has correct shape for bare-repo result', () => {
126
+ const result = makeResult();
127
+ const summary = formatDetectSurfacesSummary(result);
128
+ // Base line before the question
129
+ expect(summary).toMatch(/^Detected: none \(new: none\)\. Existing: none\. Manifest unchanged\./);
130
+ });
131
+ it('summary has correct shape for normal detect', () => {
132
+ const result = makeResult({
133
+ detected: ['claude', 'cursor'],
134
+ existing: ['claude'],
135
+ newlyAdded: ['cursor'],
136
+ union: ['claude', 'cursor'],
137
+ manifestUpdated: true,
138
+ serverStamp: { stamped: true, surfaces: ['claude', 'cursor'] },
139
+ });
140
+ const summary = formatDetectSurfacesSummary(result);
141
+ expect(summary).toContain('Detected: claude, cursor');
142
+ expect(summary).toContain('new: cursor');
143
+ expect(summary).toContain('Existing: claude');
144
+ expect(summary).toContain('Manifest updated.');
145
+ expect(summary).toContain('Server stamped.');
146
+ expect(summary).not.toContain(LOCKED_QUESTION);
147
+ });
148
+ });
149
+ //# sourceMappingURL=setup-detect-surfaces.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-detect-surfaces.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/setup-detect-surfaces.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=setup-state.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-state.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/setup-state.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * WP-431 S3 — `pb setup-state` and `pb setup` alias tests.
3
+ *
4
+ * Mocks kernelCall (gateway boundary) so error/auth/network paths and the
5
+ * recordInvocation idempotence behaviour are exercised without a real Convex
6
+ * deployment.
7
+ */
8
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
9
+ import { mkdirSync, mkdtempSync, rmSync } from 'fs';
10
+ import { dirname, join } from 'path';
11
+ import { fileURLToPath } from 'url';
12
+ import { tmpdir } from 'os';
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
15
+ vi.mock('../../lib/client.js', async () => {
16
+ class FakeMcpError extends Error {
17
+ code;
18
+ constructor(message, code) {
19
+ super(message);
20
+ this.name = 'McpError';
21
+ this.code = code;
22
+ }
23
+ }
24
+ return {
25
+ kernelCall: vi.fn(),
26
+ McpError: FakeMcpError,
27
+ };
28
+ });
29
+ import { runSetupState, fetchSetupState } from '../setup-state.js';
30
+ import { runSetup } from '../setup.js';
31
+ import { kernelCall, McpError } from '../../lib/client.js';
32
+ const mockedKernelCall = vi.mocked(kernelCall);
33
+ let scratch;
34
+ let originalCwd;
35
+ let exitSpy;
36
+ let stdoutSpy;
37
+ let stderrSpy;
38
+ beforeEach(() => {
39
+ originalCwd = process.cwd();
40
+ scratch = mkdtempSync(join(tmpdir(), 'pb-setup-state-'));
41
+ process.chdir(scratch);
42
+ mockedKernelCall.mockReset();
43
+ exitSpy = vi.spyOn(process, 'exit').mockImplementation(((_code) => {
44
+ throw new Error(`__exit:${_code ?? 0}`);
45
+ }));
46
+ stdoutSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
47
+ stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
48
+ });
49
+ afterEach(() => {
50
+ process.chdir(originalCwd);
51
+ rmSync(scratch, { recursive: true, force: true });
52
+ exitSpy.mockRestore();
53
+ stdoutSpy.mockRestore();
54
+ stderrSpy.mockRestore();
55
+ });
56
+ const SAMPLE = {
57
+ phase: 1,
58
+ role: 'creator',
59
+ expectedAction: 'declare a surface',
60
+ reasonForPhase: 'manifest.surfaces empty',
61
+ isComplete: false,
62
+ surfaceCapability: 'cli',
63
+ };
64
+ describe('fetchSetupState()', () => {
65
+ it('returns the typed result from setup.getPbSetupState', async () => {
66
+ mockedKernelCall.mockResolvedValueOnce(SAMPLE);
67
+ const result = await fetchSetupState();
68
+ expect(result).toEqual(SAMPLE);
69
+ expect(mockedKernelCall).toHaveBeenCalledWith('setup.getPbSetupState', {});
70
+ });
71
+ });
72
+ describe('runSetupState()', () => {
73
+ it('writes compact JSON to stdout on success', async () => {
74
+ mockedKernelCall.mockResolvedValueOnce(SAMPLE);
75
+ await runSetupState();
76
+ const written = stdoutSpy.mock.calls.map((c) => String(c[0])).join('');
77
+ const parsed = JSON.parse(written.trim());
78
+ expect(parsed).toEqual(SAMPLE);
79
+ });
80
+ it('exits 2 on AUTH_REQUIRED', async () => {
81
+ mockedKernelCall.mockRejectedValueOnce(new McpError('not member', 'AUTHZ_NOT_MEMBER'));
82
+ await expect(runSetupState()).rejects.toThrow('__exit:2');
83
+ const stderr = stderrSpy.mock.calls.map((c) => String(c[0])).join('');
84
+ expect(stderr).toContain('AUTH_DENIED');
85
+ });
86
+ it('exits 3 on network error (CLIError category=network)', async () => {
87
+ const { CLIError, ErrorCode } = await import('../../lib/errors.js');
88
+ mockedKernelCall.mockRejectedValueOnce(new CLIError('Could not reach host.', {
89
+ code: ErrorCode.NETWORK_UNREACHABLE,
90
+ category: 'network',
91
+ }));
92
+ await expect(runSetupState()).rejects.toThrow('__exit:3');
93
+ });
94
+ it('emits JSON to stdout regardless of tty (non-tty path)', async () => {
95
+ Object.defineProperty(process.stdout, 'isTTY', { value: false, configurable: true });
96
+ mockedKernelCall.mockResolvedValueOnce(SAMPLE);
97
+ await runSetupState();
98
+ const written = stdoutSpy.mock.calls.map((c) => String(c[0])).join('');
99
+ expect(written.trim().startsWith('{')).toBe(true);
100
+ });
101
+ });
102
+ describe('pb start ≠ pb setup (DEC-995 invariant)', () => {
103
+ it('runSessionStart is the binding for `pb start`, not runSetup', async () => {
104
+ const fs = await import('fs');
105
+ const indexSrc = fs.readFileSync(join(__dirname, '..', '..', 'index.ts'), 'utf8');
106
+ // pb start dispatches to runSessionStart
107
+ expect(indexSrc).toContain("args[0] === 'start'");
108
+ const startSection = indexSrc.split("args[0] === 'start'")[1] ?? '';
109
+ const closeSection = startSection.split("args[0] === 'close'")[0] ?? '';
110
+ expect(closeSection).toContain('runSessionStart');
111
+ expect(closeSection).not.toContain('runSetup(');
112
+ });
113
+ });
114
+ describe('runSetup() (pb setup alias)', () => {
115
+ beforeEach(() => {
116
+ // Default to TTY=true so the human summary is exercised
117
+ Object.defineProperty(process.stdout, 'isTTY', { value: true, configurable: true });
118
+ });
119
+ it('Phase 1 → triggers detect-surfaces, re-reads state, prints final state', async () => {
120
+ // WP-433 S2: .claude dir triggers Claude surface detection → stampDetectedSurfaces
121
+ // is called as a 3rd kernelCall (between recordSetupInvocation and the re-read).
122
+ mkdirSync(join(scratch, '.claude'));
123
+ mockedKernelCall
124
+ .mockResolvedValueOnce({ ...SAMPLE, phase: 1 }) // initial getPbSetupState
125
+ .mockResolvedValueOnce({ firstSetupInvocationAt: 1, alreadyRecorded: false }) // recordSetupInvocation
126
+ .mockResolvedValueOnce({ stamped: true, surfaces: ['claude'] }) // stampDetectedSurfaces (WP-433 S2)
127
+ .mockResolvedValueOnce({ ...SAMPLE, phase: 2 }); // re-read after detect
128
+ await runSetup({ cwd: scratch });
129
+ const stdout = stdoutSpy.mock.calls.map((c) => String(c[0])).join('');
130
+ expect(stdout).toContain('"phase":2');
131
+ });
132
+ it('Phase 2+ → no auto-detect, prints initial state', async () => {
133
+ const phase2 = { ...SAMPLE, phase: 2 };
134
+ mockedKernelCall
135
+ .mockResolvedValueOnce(phase2)
136
+ .mockResolvedValueOnce({ firstSetupInvocationAt: 1, alreadyRecorded: true });
137
+ await runSetup({ cwd: scratch });
138
+ const calls = mockedKernelCall.mock.calls.map((c) => c[0]);
139
+ expect(calls.filter((c) => c === 'setup.getPbSetupState')).toHaveLength(1);
140
+ });
141
+ it('records invocation exactly once per pb-setup invocation', async () => {
142
+ const phase2 = { ...SAMPLE, phase: 2 };
143
+ mockedKernelCall
144
+ .mockResolvedValueOnce(phase2)
145
+ .mockResolvedValueOnce({ firstSetupInvocationAt: 1, alreadyRecorded: false });
146
+ await runSetup({ cwd: scratch });
147
+ const invocationCalls = mockedKernelCall.mock.calls.filter((c) => c[0] === 'setup.recordSetupInvocation');
148
+ expect(invocationCalls).toHaveLength(1);
149
+ expect(invocationCalls[0][1]).toMatchObject({ surfaceCapability: 'cli' });
150
+ });
151
+ it('records invocation with chat-only when state.surfaceCapability=chat-only (WP-431 S3 review fix #1)', async () => {
152
+ // Pre-revision: this test fabricated a `reasonForPhase` string the producer
153
+ // never emits and asserted that the (now-deleted) `inferSurfaceCapability`
154
+ // string-greppy heuristic returned 'chat-only'. The heuristic was broken
155
+ // (producer never emits 'chat-only' in reasonForPhase), so every chat-only
156
+ // user was silently tagged 'cli'. Post-revision, the resolver surfaces
157
+ // `surfaceCapability` as a structural field — the CLI reads it directly.
158
+ const chatOnly = {
159
+ ...SAMPLE,
160
+ phase: 3,
161
+ role: 'creator',
162
+ reasonForPhase: 'Phase 2 done (surface-skipped per DEC-993); catalogAdoptionCount=0 → Phase 3.',
163
+ surfaceCapability: 'chat-only',
164
+ };
165
+ mockedKernelCall
166
+ .mockResolvedValueOnce(chatOnly)
167
+ .mockResolvedValueOnce({ firstSetupInvocationAt: 1, alreadyRecorded: false });
168
+ await runSetup({ cwd: scratch });
169
+ const invocationCalls = mockedKernelCall.mock.calls.filter((c) => c[0] === 'setup.recordSetupInvocation');
170
+ expect(invocationCalls[0][1]).toMatchObject({ surfaceCapability: 'chat-only' });
171
+ });
172
+ it('chat-only resolver path: empty manifest + chat-only state → state.surfaceCapability="chat-only" (live resolver)', async () => {
173
+ // WP-431 S3 review fix #1: assert the actual resolver emits surfaceCapability
174
+ // structurally. This is a unit-level pin against the *resolver* (not the
175
+ // CLI handler), so we exercise resolveSetupState directly with a
176
+ // chat-only input shape that DOES occur in production
177
+ // (manifest.surfaces=['mcp-only'] is the upstream stamp for chat-only
178
+ // surfaces per DEC-993).
179
+ const { resolveSetupState } = await import('../../setup/state-machine.js');
180
+ const out = resolveSetupState({
181
+ manifest: { surfaces: ['mcp-only'] },
182
+ assetCounts: { totalAssets: 0, totalUnimported: 0, hasMore: false },
183
+ catalogAdoptionCount: 0,
184
+ confirmedEntryCount: 0,
185
+ entriesAcrossCollections: 0,
186
+ retrievalDemoConfirmed: false,
187
+ workspaceMaterialized: false,
188
+ userActivated: false,
189
+ surfaceCapability: 'chat-only',
190
+ });
191
+ expect(out.surfaceCapability).toBe('chat-only');
192
+ });
193
+ });
194
+ //# sourceMappingURL=setup-state.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-state.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/setup-state.test.ts"],"names":[],"mappings":"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"}