@productbrain/cli 0.1.0-beta.7 → 0.1.0-beta.71

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 (612) hide show
  1. package/README.md +98 -30
  2. package/dist/__tests__/adapters.test.d.ts +2 -0
  3. package/dist/__tests__/adapters.test.d.ts.map +1 -0
  4. package/dist/__tests__/adapters.test.js +417 -0
  5. package/dist/__tests__/adapters.test.js.map +1 -0
  6. package/dist/__tests__/audit.test.d.ts +2 -0
  7. package/dist/__tests__/audit.test.d.ts.map +1 -0
  8. package/dist/__tests__/audit.test.js +394 -0
  9. package/dist/__tests__/audit.test.js.map +1 -0
  10. package/dist/__tests__/batch-transformations.test.d.ts +2 -0
  11. package/dist/__tests__/batch-transformations.test.d.ts.map +1 -0
  12. package/dist/__tests__/batch-transformations.test.js +263 -0
  13. package/dist/__tests__/batch-transformations.test.js.map +1 -0
  14. package/dist/__tests__/capture.test.d.ts +2 -0
  15. package/dist/__tests__/capture.test.d.ts.map +1 -0
  16. package/dist/__tests__/capture.test.js +377 -0
  17. package/dist/__tests__/capture.test.js.map +1 -0
  18. package/dist/__tests__/config.test.d.ts +8 -0
  19. package/dist/__tests__/config.test.d.ts.map +1 -0
  20. package/dist/__tests__/config.test.js +166 -0
  21. package/dist/__tests__/config.test.js.map +1 -0
  22. package/dist/__tests__/constants.test.d.ts +2 -0
  23. package/dist/__tests__/constants.test.d.ts.map +1 -0
  24. package/dist/__tests__/constants.test.js +141 -0
  25. package/dist/__tests__/constants.test.js.map +1 -0
  26. package/dist/__tests__/constellation.test.d.ts +2 -0
  27. package/dist/__tests__/constellation.test.d.ts.map +1 -0
  28. package/dist/__tests__/constellation.test.js +254 -0
  29. package/dist/__tests__/constellation.test.js.map +1 -0
  30. package/dist/__tests__/context-strategy.test.d.ts +2 -0
  31. package/dist/__tests__/context-strategy.test.d.ts.map +1 -0
  32. package/dist/__tests__/context-strategy.test.js +79 -0
  33. package/dist/__tests__/context-strategy.test.js.map +1 -0
  34. package/dist/__tests__/errors.test.d.ts +2 -0
  35. package/dist/__tests__/errors.test.d.ts.map +1 -0
  36. package/dist/__tests__/errors.test.js +117 -0
  37. package/dist/__tests__/errors.test.js.map +1 -0
  38. package/dist/__tests__/experiment.test.d.ts +6 -0
  39. package/dist/__tests__/experiment.test.d.ts.map +1 -0
  40. package/dist/__tests__/experiment.test.js +69 -0
  41. package/dist/__tests__/experiment.test.js.map +1 -0
  42. package/dist/__tests__/fields.test.d.ts +2 -0
  43. package/dist/__tests__/fields.test.d.ts.map +1 -0
  44. package/dist/__tests__/fields.test.js +238 -0
  45. package/dist/__tests__/fields.test.js.map +1 -0
  46. package/dist/__tests__/glossary.test.d.ts +2 -0
  47. package/dist/__tests__/glossary.test.d.ts.map +1 -0
  48. package/dist/__tests__/glossary.test.js +32 -0
  49. package/dist/__tests__/glossary.test.js.map +1 -0
  50. package/dist/__tests__/handshake.test.d.ts +2 -0
  51. package/dist/__tests__/handshake.test.d.ts.map +1 -0
  52. package/dist/__tests__/handshake.test.js +196 -0
  53. package/dist/__tests__/handshake.test.js.map +1 -0
  54. package/dist/__tests__/ingest.test.js +110 -12
  55. package/dist/__tests__/ingest.test.js.map +1 -1
  56. package/dist/__tests__/init.test.d.ts +7 -0
  57. package/dist/__tests__/init.test.d.ts.map +1 -0
  58. package/dist/__tests__/init.test.js +146 -0
  59. package/dist/__tests__/init.test.js.map +1 -0
  60. package/dist/__tests__/login.test.d.ts +2 -0
  61. package/dist/__tests__/login.test.d.ts.map +1 -0
  62. package/dist/__tests__/login.test.js +167 -0
  63. package/dist/__tests__/login.test.js.map +1 -0
  64. package/dist/__tests__/onboarding-path-b.test.d.ts +2 -0
  65. package/dist/__tests__/onboarding-path-b.test.d.ts.map +1 -0
  66. package/dist/__tests__/onboarding-path-b.test.js +46 -0
  67. package/dist/__tests__/onboarding-path-b.test.js.map +1 -0
  68. package/dist/__tests__/onboarding.test.d.ts +6 -0
  69. package/dist/__tests__/onboarding.test.d.ts.map +1 -0
  70. package/dist/__tests__/onboarding.test.js +347 -0
  71. package/dist/__tests__/onboarding.test.js.map +1 -0
  72. package/dist/__tests__/orient.test.d.ts +2 -0
  73. package/dist/__tests__/orient.test.d.ts.map +1 -0
  74. package/dist/__tests__/orient.test.js +143 -0
  75. package/dist/__tests__/orient.test.js.map +1 -0
  76. package/dist/__tests__/profiles.test.d.ts +2 -0
  77. package/dist/__tests__/profiles.test.d.ts.map +1 -0
  78. package/dist/__tests__/profiles.test.js +168 -0
  79. package/dist/__tests__/profiles.test.js.map +1 -0
  80. package/dist/__tests__/promote.test.d.ts +2 -0
  81. package/dist/__tests__/promote.test.d.ts.map +1 -0
  82. package/dist/__tests__/promote.test.js +161 -0
  83. package/dist/__tests__/promote.test.js.map +1 -0
  84. package/dist/__tests__/prompts.test.d.ts +6 -0
  85. package/dist/__tests__/prompts.test.d.ts.map +1 -0
  86. package/dist/__tests__/prompts.test.js +146 -0
  87. package/dist/__tests__/prompts.test.js.map +1 -0
  88. package/dist/__tests__/proposals.test.d.ts +2 -0
  89. package/dist/__tests__/proposals.test.d.ts.map +1 -0
  90. package/dist/__tests__/proposals.test.js +167 -0
  91. package/dist/__tests__/proposals.test.js.map +1 -0
  92. package/dist/__tests__/relate.test.d.ts +2 -0
  93. package/dist/__tests__/relate.test.d.ts.map +1 -0
  94. package/dist/__tests__/relate.test.js +103 -0
  95. package/dist/__tests__/relate.test.js.map +1 -0
  96. package/dist/__tests__/repo-detect.test.d.ts +2 -0
  97. package/dist/__tests__/repo-detect.test.d.ts.map +1 -0
  98. package/dist/__tests__/repo-detect.test.js +215 -0
  99. package/dist/__tests__/repo-detect.test.js.map +1 -0
  100. package/dist/__tests__/runner.test.d.ts +2 -0
  101. package/dist/__tests__/runner.test.d.ts.map +1 -0
  102. package/dist/__tests__/runner.test.js +219 -0
  103. package/dist/__tests__/runner.test.js.map +1 -0
  104. package/dist/__tests__/session-state-machine.test.d.ts +2 -0
  105. package/dist/__tests__/session-state-machine.test.d.ts.map +1 -0
  106. package/dist/__tests__/session-state-machine.test.js +154 -0
  107. package/dist/__tests__/session-state-machine.test.js.map +1 -0
  108. package/dist/__tests__/session-touch.test.d.ts +2 -0
  109. package/dist/__tests__/session-touch.test.d.ts.map +1 -0
  110. package/dist/__tests__/session-touch.test.js +134 -0
  111. package/dist/__tests__/session-touch.test.js.map +1 -0
  112. package/dist/__tests__/session.test.d.ts +2 -0
  113. package/dist/__tests__/session.test.d.ts.map +1 -0
  114. package/dist/__tests__/session.test.js +46 -0
  115. package/dist/__tests__/session.test.js.map +1 -0
  116. package/dist/__tests__/setup.test.d.ts +2 -0
  117. package/dist/__tests__/setup.test.d.ts.map +1 -0
  118. package/dist/__tests__/setup.test.js +141 -0
  119. package/dist/__tests__/setup.test.js.map +1 -0
  120. package/dist/__tests__/spinner-labels.test.d.ts +2 -0
  121. package/dist/__tests__/spinner-labels.test.d.ts.map +1 -0
  122. package/dist/__tests__/spinner-labels.test.js +23 -0
  123. package/dist/__tests__/spinner-labels.test.js.map +1 -0
  124. package/dist/__tests__/strip.test.d.ts +2 -0
  125. package/dist/__tests__/strip.test.d.ts.map +1 -0
  126. package/dist/__tests__/strip.test.js +136 -0
  127. package/dist/__tests__/strip.test.js.map +1 -0
  128. package/dist/__tests__/surface-profiles.test.d.ts +2 -0
  129. package/dist/__tests__/surface-profiles.test.d.ts.map +1 -0
  130. package/dist/__tests__/surface-profiles.test.js +233 -0
  131. package/dist/__tests__/surface-profiles.test.js.map +1 -0
  132. package/dist/__tests__/update.test.d.ts +2 -0
  133. package/dist/__tests__/update.test.d.ts.map +1 -0
  134. package/dist/__tests__/update.test.js +228 -0
  135. package/dist/__tests__/update.test.js.map +1 -0
  136. package/dist/__tests__/workspace.test.d.ts +2 -0
  137. package/dist/__tests__/workspace.test.d.ts.map +1 -0
  138. package/dist/__tests__/workspace.test.js +308 -0
  139. package/dist/__tests__/workspace.test.js.map +1 -0
  140. package/dist/commands/accept.d.ts +18 -0
  141. package/dist/commands/accept.d.ts.map +1 -0
  142. package/dist/commands/accept.js +76 -0
  143. package/dist/commands/accept.js.map +1 -0
  144. package/dist/commands/admin/cockpit.d.ts +88 -0
  145. package/dist/commands/admin/cockpit.d.ts.map +1 -0
  146. package/dist/commands/admin/cockpit.js +409 -0
  147. package/dist/commands/admin/cockpit.js.map +1 -0
  148. package/dist/commands/admin/index.d.ts +21 -0
  149. package/dist/commands/admin/index.d.ts.map +1 -0
  150. package/dist/commands/admin/index.js +254 -0
  151. package/dist/commands/admin/index.js.map +1 -0
  152. package/dist/commands/admin/inspect.d.ts +21 -0
  153. package/dist/commands/admin/inspect.d.ts.map +1 -0
  154. package/dist/commands/admin/inspect.js +536 -0
  155. package/dist/commands/admin/inspect.js.map +1 -0
  156. package/dist/commands/admin/inspect.test.d.ts +7 -0
  157. package/dist/commands/admin/inspect.test.d.ts.map +1 -0
  158. package/dist/commands/admin/inspect.test.js +71 -0
  159. package/dist/commands/admin/inspect.test.js.map +1 -0
  160. package/dist/commands/admin/seed.d.ts +32 -0
  161. package/dist/commands/admin/seed.d.ts.map +1 -0
  162. package/dist/commands/admin/seed.js +527 -0
  163. package/dist/commands/admin/seed.js.map +1 -0
  164. package/dist/commands/admin/seed.test.d.ts +6 -0
  165. package/dist/commands/admin/seed.test.d.ts.map +1 -0
  166. package/dist/commands/admin/seed.test.js +65 -0
  167. package/dist/commands/admin/seed.test.js.map +1 -0
  168. package/dist/commands/audit.d.ts +25 -0
  169. package/dist/commands/audit.d.ts.map +1 -0
  170. package/dist/commands/audit.js +188 -0
  171. package/dist/commands/audit.js.map +1 -0
  172. package/dist/commands/brand-pack.d.ts +2 -0
  173. package/dist/commands/brand-pack.d.ts.map +1 -0
  174. package/dist/commands/brand-pack.js +25 -0
  175. package/dist/commands/brand-pack.js.map +1 -0
  176. package/dist/commands/brief.d.ts +28 -0
  177. package/dist/commands/brief.d.ts.map +1 -0
  178. package/dist/commands/brief.js +75 -0
  179. package/dist/commands/brief.js.map +1 -0
  180. package/dist/commands/capture.d.ts +30 -0
  181. package/dist/commands/capture.d.ts.map +1 -0
  182. package/dist/commands/capture.js +385 -0
  183. package/dist/commands/capture.js.map +1 -0
  184. package/dist/commands/chain-walk.d.ts +14 -0
  185. package/dist/commands/chain-walk.d.ts.map +1 -0
  186. package/dist/commands/chain-walk.js +38 -0
  187. package/dist/commands/chain-walk.js.map +1 -0
  188. package/dist/commands/changes.d.ts +11 -0
  189. package/dist/commands/changes.d.ts.map +1 -0
  190. package/dist/commands/changes.js +46 -0
  191. package/dist/commands/changes.js.map +1 -0
  192. package/dist/commands/codex-prep.d.ts +12 -0
  193. package/dist/commands/codex-prep.d.ts.map +1 -0
  194. package/dist/commands/codex-prep.js +122 -0
  195. package/dist/commands/codex-prep.js.map +1 -0
  196. package/dist/commands/collections.d.ts +22 -0
  197. package/dist/commands/collections.d.ts.map +1 -0
  198. package/dist/commands/collections.js +77 -0
  199. package/dist/commands/collections.js.map +1 -0
  200. package/dist/commands/connect-integration.test.d.ts +7 -0
  201. package/dist/commands/connect-integration.test.d.ts.map +1 -0
  202. package/dist/commands/connect-integration.test.js +200 -0
  203. package/dist/commands/connect-integration.test.js.map +1 -0
  204. package/dist/commands/connect.d.ts +21 -0
  205. package/dist/commands/connect.d.ts.map +1 -0
  206. package/dist/commands/connect.js +279 -0
  207. package/dist/commands/connect.js.map +1 -0
  208. package/dist/commands/connect.test.d.ts +6 -0
  209. package/dist/commands/connect.test.d.ts.map +1 -0
  210. package/dist/commands/connect.test.js +230 -0
  211. package/dist/commands/connect.test.js.map +1 -0
  212. package/dist/commands/constellation.d.ts +11 -0
  213. package/dist/commands/constellation.d.ts.map +1 -0
  214. package/dist/commands/constellation.js +33 -0
  215. package/dist/commands/constellation.js.map +1 -0
  216. package/dist/commands/context.d.ts +2 -1
  217. package/dist/commands/context.d.ts.map +1 -1
  218. package/dist/commands/context.js +21 -10
  219. package/dist/commands/context.js.map +1 -1
  220. package/dist/commands/cross-cut.d.ts +11 -0
  221. package/dist/commands/cross-cut.d.ts.map +1 -0
  222. package/dist/commands/cross-cut.js +23 -0
  223. package/dist/commands/cross-cut.js.map +1 -0
  224. package/dist/commands/doctor.d.ts +18 -0
  225. package/dist/commands/doctor.d.ts.map +1 -0
  226. package/dist/commands/doctor.js +232 -0
  227. package/dist/commands/doctor.js.map +1 -0
  228. package/dist/commands/doctor.test.d.ts +8 -0
  229. package/dist/commands/doctor.test.d.ts.map +1 -0
  230. package/dist/commands/doctor.test.js +311 -0
  231. package/dist/commands/doctor.test.js.map +1 -0
  232. package/dist/commands/fields.d.ts +9 -0
  233. package/dist/commands/fields.d.ts.map +1 -0
  234. package/dist/commands/fields.js +30 -0
  235. package/dist/commands/fields.js.map +1 -0
  236. package/dist/commands/get.d.ts +8 -1
  237. package/dist/commands/get.d.ts.map +1 -1
  238. package/dist/commands/get.js +61 -8
  239. package/dist/commands/get.js.map +1 -1
  240. package/dist/commands/handshake.d.ts +28 -0
  241. package/dist/commands/handshake.d.ts.map +1 -0
  242. package/dist/commands/handshake.js +617 -0
  243. package/dist/commands/handshake.js.map +1 -0
  244. package/dist/commands/ingest.d.ts +8 -2
  245. package/dist/commands/ingest.d.ts.map +1 -1
  246. package/dist/commands/ingest.js +151 -28
  247. package/dist/commands/ingest.js.map +1 -1
  248. package/dist/commands/init.d.ts +14 -0
  249. package/dist/commands/init.d.ts.map +1 -0
  250. package/dist/commands/init.js +117 -0
  251. package/dist/commands/init.js.map +1 -0
  252. package/dist/commands/login.d.ts +4 -0
  253. package/dist/commands/login.d.ts.map +1 -1
  254. package/dist/commands/login.js +101 -38
  255. package/dist/commands/login.js.map +1 -1
  256. package/dist/commands/orient.d.ts +107 -1
  257. package/dist/commands/orient.d.ts.map +1 -1
  258. package/dist/commands/orient.js +25 -9
  259. package/dist/commands/orient.js.map +1 -1
  260. package/dist/commands/profile.d.ts +24 -0
  261. package/dist/commands/profile.d.ts.map +1 -0
  262. package/dist/commands/profile.js +82 -0
  263. package/dist/commands/profile.js.map +1 -0
  264. package/dist/commands/promote.d.ts +12 -0
  265. package/dist/commands/promote.d.ts.map +1 -0
  266. package/dist/commands/promote.js +90 -0
  267. package/dist/commands/promote.js.map +1 -0
  268. package/dist/commands/proposals.d.ts +9 -0
  269. package/dist/commands/proposals.d.ts.map +1 -0
  270. package/dist/commands/proposals.js +24 -0
  271. package/dist/commands/proposals.js.map +1 -0
  272. package/dist/commands/reject.d.ts +14 -0
  273. package/dist/commands/reject.d.ts.map +1 -0
  274. package/dist/commands/reject.js +43 -0
  275. package/dist/commands/reject.js.map +1 -0
  276. package/dist/commands/relate.d.ts +16 -0
  277. package/dist/commands/relate.d.ts.map +1 -0
  278. package/dist/commands/relate.js +98 -0
  279. package/dist/commands/relate.js.map +1 -0
  280. package/dist/commands/search.d.ts +1 -0
  281. package/dist/commands/search.d.ts.map +1 -1
  282. package/dist/commands/search.js +6 -4
  283. package/dist/commands/search.js.map +1 -1
  284. package/dist/commands/session.d.ts +20 -0
  285. package/dist/commands/session.d.ts.map +1 -0
  286. package/dist/commands/session.js +203 -0
  287. package/dist/commands/session.js.map +1 -0
  288. package/dist/commands/setup.d.ts +15 -0
  289. package/dist/commands/setup.d.ts.map +1 -0
  290. package/dist/commands/setup.js +168 -0
  291. package/dist/commands/setup.js.map +1 -0
  292. package/dist/commands/update.d.ts +17 -0
  293. package/dist/commands/update.d.ts.map +1 -0
  294. package/dist/commands/update.js +178 -0
  295. package/dist/commands/update.js.map +1 -0
  296. package/dist/commands/usage.d.ts +40 -0
  297. package/dist/commands/usage.d.ts.map +1 -0
  298. package/dist/commands/usage.js +232 -0
  299. package/dist/commands/usage.js.map +1 -0
  300. package/dist/commands/verify.d.ts +13 -0
  301. package/dist/commands/verify.d.ts.map +1 -0
  302. package/dist/commands/verify.js +49 -0
  303. package/dist/commands/verify.js.map +1 -0
  304. package/dist/commands/workspace.d.ts +41 -0
  305. package/dist/commands/workspace.d.ts.map +1 -0
  306. package/dist/commands/workspace.js +239 -0
  307. package/dist/commands/workspace.js.map +1 -0
  308. package/dist/formatters/audit.d.ts +46 -0
  309. package/dist/formatters/audit.d.ts.map +1 -0
  310. package/dist/formatters/audit.js +81 -0
  311. package/dist/formatters/audit.js.map +1 -0
  312. package/dist/formatters/brief.d.ts +112 -0
  313. package/dist/formatters/brief.d.ts.map +1 -0
  314. package/dist/formatters/brief.js +179 -0
  315. package/dist/formatters/brief.js.map +1 -0
  316. package/dist/formatters/capture.d.ts +48 -0
  317. package/dist/formatters/capture.d.ts.map +1 -0
  318. package/dist/formatters/capture.js +77 -0
  319. package/dist/formatters/capture.js.map +1 -0
  320. package/dist/formatters/chain-walk.d.ts +33 -0
  321. package/dist/formatters/chain-walk.d.ts.map +1 -0
  322. package/dist/formatters/chain-walk.js +54 -0
  323. package/dist/formatters/chain-walk.js.map +1 -0
  324. package/dist/formatters/changes.d.ts +25 -0
  325. package/dist/formatters/changes.d.ts.map +1 -0
  326. package/dist/formatters/changes.js +60 -0
  327. package/dist/formatters/changes.js.map +1 -0
  328. package/dist/formatters/collections.d.ts +40 -0
  329. package/dist/formatters/collections.d.ts.map +1 -0
  330. package/dist/formatters/collections.js +93 -0
  331. package/dist/formatters/collections.js.map +1 -0
  332. package/dist/formatters/constellation.d.ts +34 -0
  333. package/dist/formatters/constellation.d.ts.map +1 -0
  334. package/dist/formatters/constellation.js +38 -0
  335. package/dist/formatters/constellation.js.map +1 -0
  336. package/dist/formatters/cross-cut.d.ts +21 -0
  337. package/dist/formatters/cross-cut.d.ts.map +1 -0
  338. package/dist/formatters/cross-cut.js +32 -0
  339. package/dist/formatters/cross-cut.js.map +1 -0
  340. package/dist/formatters/entry.d.ts +11 -4
  341. package/dist/formatters/entry.d.ts.map +1 -1
  342. package/dist/formatters/entry.js +24 -8
  343. package/dist/formatters/entry.js.map +1 -1
  344. package/dist/formatters/fields.d.ts +32 -0
  345. package/dist/formatters/fields.d.ts.map +1 -0
  346. package/dist/formatters/fields.js +49 -0
  347. package/dist/formatters/fields.js.map +1 -0
  348. package/dist/formatters/handshake.d.ts +24 -0
  349. package/dist/formatters/handshake.d.ts.map +1 -0
  350. package/dist/formatters/handshake.js +69 -0
  351. package/dist/formatters/handshake.js.map +1 -0
  352. package/dist/formatters/orient.d.ts +104 -1
  353. package/dist/formatters/orient.d.ts.map +1 -1
  354. package/dist/formatters/orient.js +140 -17
  355. package/dist/formatters/orient.js.map +1 -1
  356. package/dist/formatters/promote.d.ts +30 -0
  357. package/dist/formatters/promote.d.ts.map +1 -0
  358. package/dist/formatters/promote.js +39 -0
  359. package/dist/formatters/promote.js.map +1 -0
  360. package/dist/formatters/proposals.d.ts +45 -0
  361. package/dist/formatters/proposals.d.ts.map +1 -0
  362. package/dist/formatters/proposals.js +62 -0
  363. package/dist/formatters/proposals.js.map +1 -0
  364. package/dist/formatters/relate.d.ts +14 -0
  365. package/dist/formatters/relate.d.ts.map +1 -0
  366. package/dist/formatters/relate.js +16 -0
  367. package/dist/formatters/relate.js.map +1 -0
  368. package/dist/formatters/search.d.ts +0 -4
  369. package/dist/formatters/search.d.ts.map +1 -1
  370. package/dist/formatters/search.js +4 -1
  371. package/dist/formatters/search.js.map +1 -1
  372. package/dist/formatters/session.d.ts +11 -0
  373. package/dist/formatters/session.d.ts.map +1 -0
  374. package/dist/formatters/session.js +53 -0
  375. package/dist/formatters/session.js.map +1 -0
  376. package/dist/formatters/update.d.ts +17 -0
  377. package/dist/formatters/update.d.ts.map +1 -0
  378. package/dist/formatters/update.js +45 -0
  379. package/dist/formatters/update.js.map +1 -0
  380. package/dist/formatters/verify.d.ts +11 -0
  381. package/dist/formatters/verify.d.ts.map +1 -0
  382. package/dist/formatters/verify.js +11 -0
  383. package/dist/formatters/verify.js.map +1 -0
  384. package/dist/generators/__tests__/surface-profiles.test.d.ts +2 -0
  385. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +1 -0
  386. package/dist/generators/__tests__/surface-profiles.test.js +89 -0
  387. package/dist/generators/__tests__/surface-profiles.test.js.map +1 -0
  388. package/dist/generators/adapters.d.ts +44 -0
  389. package/dist/generators/adapters.d.ts.map +1 -0
  390. package/dist/generators/adapters.js +290 -0
  391. package/dist/generators/adapters.js.map +1 -0
  392. package/dist/generators/adapters.test.d.ts +2 -0
  393. package/dist/generators/adapters.test.d.ts.map +1 -0
  394. package/dist/generators/adapters.test.js +27 -0
  395. package/dist/generators/adapters.test.js.map +1 -0
  396. package/dist/generators/archetypes.d.ts +52 -0
  397. package/dist/generators/archetypes.d.ts.map +1 -0
  398. package/dist/generators/archetypes.js +153 -0
  399. package/dist/generators/archetypes.js.map +1 -0
  400. package/dist/generators/archetypes.test.d.ts +2 -0
  401. package/dist/generators/archetypes.test.d.ts.map +1 -0
  402. package/dist/generators/archetypes.test.js +237 -0
  403. package/dist/generators/archetypes.test.js.map +1 -0
  404. package/dist/generators/briefing-md.d.ts +8 -0
  405. package/dist/generators/briefing-md.d.ts.map +1 -0
  406. package/dist/generators/briefing-md.js +51 -0
  407. package/dist/generators/briefing-md.js.map +1 -0
  408. package/dist/generators/chain-classifier.d.ts +49 -0
  409. package/dist/generators/chain-classifier.d.ts.map +1 -0
  410. package/dist/generators/chain-classifier.js +180 -0
  411. package/dist/generators/chain-classifier.js.map +1 -0
  412. package/dist/generators/chain-classifier.test.d.ts +2 -0
  413. package/dist/generators/chain-classifier.test.d.ts.map +1 -0
  414. package/dist/generators/chain-classifier.test.js +257 -0
  415. package/dist/generators/chain-classifier.test.js.map +1 -0
  416. package/dist/generators/chain-rules.d.ts +42 -0
  417. package/dist/generators/chain-rules.d.ts.map +1 -0
  418. package/dist/generators/chain-rules.js +144 -0
  419. package/dist/generators/chain-rules.js.map +1 -0
  420. package/dist/generators/chain-rules.test.d.ts +2 -0
  421. package/dist/generators/chain-rules.test.d.ts.map +1 -0
  422. package/dist/generators/chain-rules.test.js +179 -0
  423. package/dist/generators/chain-rules.test.js.map +1 -0
  424. package/dist/generators/context-md.d.ts +8 -0
  425. package/dist/generators/context-md.d.ts.map +1 -0
  426. package/dist/generators/context-md.js +134 -0
  427. package/dist/generators/context-md.js.map +1 -0
  428. package/dist/generators/handshake-diff.d.ts +67 -0
  429. package/dist/generators/handshake-diff.d.ts.map +1 -0
  430. package/dist/generators/handshake-diff.js +183 -0
  431. package/dist/generators/handshake-diff.js.map +1 -0
  432. package/dist/generators/handshake-diff.test.d.ts +2 -0
  433. package/dist/generators/handshake-diff.test.d.ts.map +1 -0
  434. package/dist/generators/handshake-diff.test.js +264 -0
  435. package/dist/generators/handshake-diff.test.js.map +1 -0
  436. package/dist/generators/portable-knowledge.d.ts +143 -0
  437. package/dist/generators/portable-knowledge.d.ts.map +1 -0
  438. package/dist/generators/portable-knowledge.js +504 -0
  439. package/dist/generators/portable-knowledge.js.map +1 -0
  440. package/dist/generators/portable-knowledge.test.d.ts +2 -0
  441. package/dist/generators/portable-knowledge.test.d.ts.map +1 -0
  442. package/dist/generators/portable-knowledge.test.js +927 -0
  443. package/dist/generators/portable-knowledge.test.js.map +1 -0
  444. package/dist/generators/surface-profiles.d.ts +49 -0
  445. package/dist/generators/surface-profiles.d.ts.map +1 -0
  446. package/dist/generators/surface-profiles.js +98 -0
  447. package/dist/generators/surface-profiles.js.map +1 -0
  448. package/dist/index.d.ts +3 -2
  449. package/dist/index.d.ts.map +1 -1
  450. package/dist/index.js +670 -37
  451. package/dist/index.js.map +1 -1
  452. package/dist/lib/activation.d.ts +28 -0
  453. package/dist/lib/activation.d.ts.map +1 -0
  454. package/dist/lib/activation.js +57 -0
  455. package/dist/lib/activation.js.map +1 -0
  456. package/dist/lib/activation.test.d.ts +6 -0
  457. package/dist/lib/activation.test.d.ts.map +1 -0
  458. package/dist/lib/activation.test.js +121 -0
  459. package/dist/lib/activation.test.js.map +1 -0
  460. package/dist/lib/client.d.ts +62 -1
  461. package/dist/lib/client.d.ts.map +1 -1
  462. package/dist/lib/client.js +258 -12
  463. package/dist/lib/client.js.map +1 -1
  464. package/dist/lib/config.d.ts +84 -4
  465. package/dist/lib/config.d.ts.map +1 -1
  466. package/dist/lib/config.js +322 -42
  467. package/dist/lib/config.js.map +1 -1
  468. package/dist/lib/constants.d.ts +42 -0
  469. package/dist/lib/constants.d.ts.map +1 -0
  470. package/dist/lib/constants.js +76 -0
  471. package/dist/lib/constants.js.map +1 -0
  472. package/dist/lib/conversation-engine.d.ts +45 -0
  473. package/dist/lib/conversation-engine.d.ts.map +1 -0
  474. package/dist/lib/conversation-engine.js +112 -0
  475. package/dist/lib/conversation-engine.js.map +1 -0
  476. package/dist/lib/conversation-phases.d.ts +59 -0
  477. package/dist/lib/conversation-phases.d.ts.map +1 -0
  478. package/dist/lib/conversation-phases.js +11 -0
  479. package/dist/lib/conversation-phases.js.map +1 -0
  480. package/dist/lib/conversation-signals.d.ts +30 -0
  481. package/dist/lib/conversation-signals.d.ts.map +1 -0
  482. package/dist/lib/conversation-signals.js +64 -0
  483. package/dist/lib/conversation-signals.js.map +1 -0
  484. package/dist/lib/deployment.d.ts +23 -0
  485. package/dist/lib/deployment.d.ts.map +1 -0
  486. package/dist/lib/deployment.js +78 -0
  487. package/dist/lib/deployment.js.map +1 -0
  488. package/dist/lib/deployment.test.d.ts +5 -0
  489. package/dist/lib/deployment.test.d.ts.map +1 -0
  490. package/dist/lib/deployment.test.js +54 -0
  491. package/dist/lib/deployment.test.js.map +1 -0
  492. package/dist/lib/errors.d.ts +58 -0
  493. package/dist/lib/errors.d.ts.map +1 -0
  494. package/dist/lib/errors.js +67 -0
  495. package/dist/lib/errors.js.map +1 -0
  496. package/dist/lib/experiment.d.ts +18 -0
  497. package/dist/lib/experiment.d.ts.map +1 -0
  498. package/dist/lib/experiment.js +28 -0
  499. package/dist/lib/experiment.js.map +1 -0
  500. package/dist/lib/format.d.ts +10 -0
  501. package/dist/lib/format.d.ts.map +1 -0
  502. package/dist/lib/format.js +27 -0
  503. package/dist/lib/format.js.map +1 -0
  504. package/dist/lib/glossary.d.ts +19 -0
  505. package/dist/lib/glossary.d.ts.map +1 -0
  506. package/dist/lib/glossary.js +53 -0
  507. package/dist/lib/glossary.js.map +1 -0
  508. package/dist/lib/onboarding-path-b.d.ts +10 -0
  509. package/dist/lib/onboarding-path-b.d.ts.map +1 -0
  510. package/dist/lib/onboarding-path-b.js +214 -0
  511. package/dist/lib/onboarding-path-b.js.map +1 -0
  512. package/dist/lib/onboarding-phases.d.ts +9 -0
  513. package/dist/lib/onboarding-phases.d.ts.map +1 -0
  514. package/dist/lib/onboarding-phases.js +120 -0
  515. package/dist/lib/onboarding-phases.js.map +1 -0
  516. package/dist/lib/onboarding-shared.d.ts +81 -0
  517. package/dist/lib/onboarding-shared.d.ts.map +1 -0
  518. package/dist/lib/onboarding-shared.js +190 -0
  519. package/dist/lib/onboarding-shared.js.map +1 -0
  520. package/dist/lib/onboarding-topics.d.ts +27 -0
  521. package/dist/lib/onboarding-topics.d.ts.map +1 -0
  522. package/dist/lib/onboarding-topics.js +57 -0
  523. package/dist/lib/onboarding-topics.js.map +1 -0
  524. package/dist/lib/onboarding.d.ts +17 -0
  525. package/dist/lib/onboarding.d.ts.map +1 -0
  526. package/dist/lib/onboarding.js +350 -0
  527. package/dist/lib/onboarding.js.map +1 -0
  528. package/dist/lib/profiles.d.ts +39 -0
  529. package/dist/lib/profiles.d.ts.map +1 -0
  530. package/dist/lib/profiles.js +185 -0
  531. package/dist/lib/profiles.js.map +1 -0
  532. package/dist/lib/prompts.d.ts +65 -0
  533. package/dist/lib/prompts.d.ts.map +1 -0
  534. package/dist/lib/prompts.js +132 -0
  535. package/dist/lib/prompts.js.map +1 -0
  536. package/dist/lib/repo-detect.d.ts +33 -0
  537. package/dist/lib/repo-detect.d.ts.map +1 -0
  538. package/dist/lib/repo-detect.js +83 -0
  539. package/dist/lib/repo-detect.js.map +1 -0
  540. package/dist/lib/runner.d.ts +33 -0
  541. package/dist/lib/runner.d.ts.map +1 -0
  542. package/dist/lib/runner.js +79 -0
  543. package/dist/lib/runner.js.map +1 -0
  544. package/dist/lib/session.d.ts +42 -0
  545. package/dist/lib/session.d.ts.map +1 -0
  546. package/dist/lib/session.js +109 -0
  547. package/dist/lib/session.js.map +1 -0
  548. package/dist/lib/spinner.d.ts +27 -0
  549. package/dist/lib/spinner.d.ts.map +1 -0
  550. package/dist/lib/spinner.js +76 -0
  551. package/dist/lib/spinner.js.map +1 -0
  552. package/dist/lib/spinner.test.d.ts +2 -0
  553. package/dist/lib/spinner.test.d.ts.map +1 -0
  554. package/dist/lib/spinner.test.js +39 -0
  555. package/dist/lib/spinner.test.js.map +1 -0
  556. package/dist/lib/strip.d.ts +12 -0
  557. package/dist/lib/strip.d.ts.map +1 -0
  558. package/dist/lib/strip.js +41 -0
  559. package/dist/lib/strip.js.map +1 -0
  560. package/dist/lib/style.d.ts +94 -0
  561. package/dist/lib/style.d.ts.map +1 -0
  562. package/dist/lib/style.js +167 -0
  563. package/dist/lib/style.js.map +1 -0
  564. package/dist/lib/style.test.d.ts +7 -0
  565. package/dist/lib/style.test.d.ts.map +1 -0
  566. package/dist/lib/style.test.js +263 -0
  567. package/dist/lib/style.test.js.map +1 -0
  568. package/dist/lib/telemetry.d.ts +15 -0
  569. package/dist/lib/telemetry.d.ts.map +1 -0
  570. package/dist/lib/telemetry.js +47 -0
  571. package/dist/lib/telemetry.js.map +1 -0
  572. package/dist/lib/tokenConstants.d.ts +17 -0
  573. package/dist/lib/tokenConstants.d.ts.map +1 -0
  574. package/dist/lib/tokenConstants.js +17 -0
  575. package/dist/lib/tokenConstants.js.map +1 -0
  576. package/dist/lib/update-check.d.ts +21 -0
  577. package/dist/lib/update-check.d.ts.map +1 -0
  578. package/dist/lib/update-check.js +144 -0
  579. package/dist/lib/update-check.js.map +1 -0
  580. package/dist/lib/wizard-surfaces.d.ts +47 -0
  581. package/dist/lib/wizard-surfaces.d.ts.map +1 -0
  582. package/dist/lib/wizard-surfaces.js +176 -0
  583. package/dist/lib/wizard-surfaces.js.map +1 -0
  584. package/dist/lib/wizard-surfaces.test.d.ts +2 -0
  585. package/dist/lib/wizard-surfaces.test.d.ts.map +1 -0
  586. package/dist/lib/wizard-surfaces.test.js +127 -0
  587. package/dist/lib/wizard-surfaces.test.js.map +1 -0
  588. package/dist/lib/wizard-trust.d.ts +31 -0
  589. package/dist/lib/wizard-trust.d.ts.map +1 -0
  590. package/dist/lib/wizard-trust.js +66 -0
  591. package/dist/lib/wizard-trust.js.map +1 -0
  592. package/dist/lib/wizard-trust.test.d.ts +2 -0
  593. package/dist/lib/wizard-trust.test.d.ts.map +1 -0
  594. package/dist/lib/wizard-trust.test.js +32 -0
  595. package/dist/lib/wizard-trust.test.js.map +1 -0
  596. package/dist/lib/workspace-probe.d.ts +16 -0
  597. package/dist/lib/workspace-probe.d.ts.map +1 -0
  598. package/dist/lib/workspace-probe.js +33 -0
  599. package/dist/lib/workspace-probe.js.map +1 -0
  600. package/package.json +13 -4
  601. package/templates/archetypes/boundary.md +23 -0
  602. package/templates/archetypes/constraint.md +23 -0
  603. package/templates/archetypes/convention.md +23 -0
  604. package/templates/archetypes/policy.md +23 -0
  605. package/templates/archetypes/quality-gate.md +23 -0
  606. package/templates/archetypes/workflow.md +23 -0
  607. package/templates/general/code-integrity.md +11 -0
  608. package/templates/general/getting-started.md +12 -0
  609. package/templates/node-ts/code-integrity.md +13 -0
  610. package/templates/node-ts/testing.md +12 -0
  611. package/templates/python/code-integrity.md +13 -0
  612. package/templates/python/testing.md +12 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Experiment assignment — deterministic path selection for A/B experiments.
3
+ * WP-304: Dormant until PB_EXPERIMENT_304=1. When active, overrides PB_ONBOARDING_PATH.
4
+ */
5
+ export type ExperimentPath = 'A' | 'B';
6
+ /**
7
+ * Deterministic assignment based on workspace ID.
8
+ * FNV-1a hash mod 2 — same workspace always gets the same path.
9
+ */
10
+ export declare function assignOnboardingPath(workspaceId: string): ExperimentPath;
11
+ /** Check if the WP-304 experiment is active. */
12
+ export declare function isExperimentActive(): boolean;
13
+ /**
14
+ * FNV-1a hash — fast, deterministic, good distribution for short strings.
15
+ * Returns a positive 32-bit integer.
16
+ */
17
+ export declare function fnv1aHash(str: string): number;
18
+ //# sourceMappingURL=experiment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment.d.ts","sourceRoot":"","sources":["../../src/lib/experiment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAExE;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Experiment assignment — deterministic path selection for A/B experiments.
3
+ * WP-304: Dormant until PB_EXPERIMENT_304=1. When active, overrides PB_ONBOARDING_PATH.
4
+ */
5
+ /**
6
+ * Deterministic assignment based on workspace ID.
7
+ * FNV-1a hash mod 2 — same workspace always gets the same path.
8
+ */
9
+ export function assignOnboardingPath(workspaceId) {
10
+ return fnv1aHash(workspaceId) % 2 === 0 ? 'A' : 'B';
11
+ }
12
+ /** Check if the WP-304 experiment is active. */
13
+ export function isExperimentActive() {
14
+ return process.env.PB_EXPERIMENT_304 === '1';
15
+ }
16
+ /**
17
+ * FNV-1a hash — fast, deterministic, good distribution for short strings.
18
+ * Returns a positive 32-bit integer.
19
+ */
20
+ export function fnv1aHash(str) {
21
+ let hash = 0x811c9dc5; // FNV offset basis
22
+ for (let i = 0; i < str.length; i++) {
23
+ hash ^= str.charCodeAt(i);
24
+ hash = (hash * 0x01000193) >>> 0; // FNV prime, keep as unsigned 32-bit
25
+ }
26
+ return hash >>> 0;
27
+ }
28
+ //# sourceMappingURL=experiment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/lib/experiment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,mBAAmB;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC;IACzE,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared formatting utilities for the CLI.
3
+ * Single source of truth for display helpers used across commands.
4
+ */
5
+ /**
6
+ * Format an ISO timestamp into a human-friendly elapsed string.
7
+ * e.g. "just now", "5m ago", "3h ago", "2d ago"
8
+ */
9
+ export declare function formatElapsed(isoDate: string): string;
10
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAarD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared formatting utilities for the CLI.
3
+ * Single source of truth for display helpers used across commands.
4
+ */
5
+ /**
6
+ * Format an ISO timestamp into a human-friendly elapsed string.
7
+ * e.g. "just now", "5m ago", "3h ago", "2d ago"
8
+ */
9
+ export function formatElapsed(isoDate) {
10
+ try {
11
+ const ms = Date.now() - new Date(isoDate).getTime();
12
+ const minutes = Math.floor(ms / 60000);
13
+ if (minutes < 1)
14
+ return 'just now';
15
+ if (minutes < 60)
16
+ return `${minutes}m ago`;
17
+ const hours = Math.floor(minutes / 60);
18
+ if (hours < 24)
19
+ return `${hours}h ago`;
20
+ const days = Math.floor(hours / 24);
21
+ return `${days}d ago`;
22
+ }
23
+ catch {
24
+ return 'unknown';
25
+ }
26
+ }
27
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,UAAU,CAAC;QACnC,IAAI,OAAO,GAAG,EAAE;YAAE,OAAO,GAAG,OAAO,OAAO,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,GAAG,KAAK,OAAO,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACpC,OAAO,GAAG,IAAI,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * glossary.ts — Key CLI terms and their definitions.
3
+ *
4
+ * Provides a static glossary of Product Brain CLI terminology,
5
+ * plus a formatter for TTY output.
6
+ *
7
+ * WP-302 Slice 4.
8
+ */
9
+ export interface GlossaryEntry {
10
+ term: string;
11
+ definition: string;
12
+ }
13
+ export declare const GLOSSARY: GlossaryEntry[];
14
+ /**
15
+ * Format the glossary for TTY output.
16
+ * Returns a multi-line string with bold terms and dimmed definitions.
17
+ */
18
+ export declare function formatGlossary(): string;
19
+ //# sourceMappingURL=glossary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossary.d.ts","sourceRoot":"","sources":["../../src/lib/glossary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,EA6BnC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAUvC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * glossary.ts — Key CLI terms and their definitions.
3
+ *
4
+ * Provides a static glossary of Product Brain CLI terminology,
5
+ * plus a formatter for TTY output.
6
+ *
7
+ * WP-302 Slice 4.
8
+ */
9
+ import { bold, dim } from './style.js';
10
+ export const GLOSSARY = [
11
+ {
12
+ term: 'workspace',
13
+ definition: 'Your product knowledge space. One workspace = one product.',
14
+ },
15
+ {
16
+ term: 'entry',
17
+ definition: 'A unit of product knowledge (bet, decision, tension, standard, etc.).',
18
+ },
19
+ {
20
+ term: 'collection',
21
+ definition: 'A group of related entries (work-packages, decisions, tensions, etc.).',
22
+ },
23
+ {
24
+ term: 'relation',
25
+ definition: 'A typed link between entries (part_of, depends_on, addresses, etc.).',
26
+ },
27
+ {
28
+ term: 'session',
29
+ definition: 'A tracked write session. Required before creating or updating entries.',
30
+ },
31
+ {
32
+ term: 'capture',
33
+ definition: 'Create a new entry on the Chain via pb capture.',
34
+ },
35
+ {
36
+ term: 'profile',
37
+ definition: 'A named workspace configuration with API key and endpoint.',
38
+ },
39
+ ];
40
+ /**
41
+ * Format the glossary for TTY output.
42
+ * Returns a multi-line string with bold terms and dimmed definitions.
43
+ */
44
+ export function formatGlossary() {
45
+ const lines = [];
46
+ const maxTermLen = Math.max(...GLOSSARY.map((g) => g.term.length));
47
+ for (const entry of GLOSSARY) {
48
+ const paddedTerm = entry.term.padEnd(maxTermLen);
49
+ lines.push(` ${bold(paddedTerm)} ${dim(entry.definition)}`);
50
+ }
51
+ return lines.join('\n');
52
+ }
53
+ //# sourceMappingURL=glossary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../src/lib/glossary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAOvC,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC;QACE,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,4DAA4D;KACzE;IACD;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,uEAAuE;KACpF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,wEAAwE;KACrF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,sEAAsE;KACnF;IACD;QACE,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,wEAAwE;KACrF;IACD;QACE,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,iDAAiD;KAC9D;IACD;QACE,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,4DAA4D;KACzE;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Path B — Facilitator-pattern onboarding (2 exchanges max).
3
+ * WP-304: Shorter flow, silent extraction, auto-capture, governance proof.
4
+ */
5
+ import { type OnboardingExtraction } from './onboarding-shared.js';
6
+ export declare function runOnboardingPathB(workspaceName: string): Promise<void>;
7
+ /** Merge two extractions — second takes precedence for scalar fields, arrays concatenate. */
8
+ export declare function mergeExtractions(first: OnboardingExtraction | null, second: OnboardingExtraction): OnboardingExtraction;
9
+ export declare function dedupe(arr: string[]): string[];
10
+ //# sourceMappingURL=onboarding-path-b.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-path-b.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-path-b.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAIL,KAAK,oBAAoB,EAG1B,MAAM,wBAAwB,CAAC;AAEhC,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyK7E;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,MAAM,EAAE,oBAAoB,GAC3B,oBAAoB,CAUtB;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI9C"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Path B — Facilitator-pattern onboarding (2 exchanges max).
3
+ * WP-304: Shorter flow, silent extraction, auto-capture, governance proof.
4
+ */
5
+ import { convexCall } from './client.js';
6
+ import { ask } from './prompts.js';
7
+ import { bold, dim, green, icons } from './style.js';
8
+ import { trackEvent } from './telemetry.js';
9
+ import { extractionToEntries, batchCaptureEntries, countWords, } from './onboarding-shared.js';
10
+ export async function runOnboardingPathB(workspaceName) {
11
+ trackEvent('setup_started', { mode: 'llm', path: 'B' });
12
+ const messages = [];
13
+ let totalUserWords = 0;
14
+ let lastExtraction = null;
15
+ // Exchange 1: Opening question
16
+ let greeting;
17
+ try {
18
+ const result = await convexCall('onboarding.chat', {
19
+ messages: [],
20
+ workspaceName,
21
+ style: 'facilitator',
22
+ turnNumber: 1,
23
+ totalUserWords: 0,
24
+ });
25
+ if (!result?.content) {
26
+ await runPathBFallback(workspaceName);
27
+ return;
28
+ }
29
+ greeting = result.content;
30
+ }
31
+ catch {
32
+ await runPathBFallback(workspaceName);
33
+ return;
34
+ }
35
+ process.stdout.write(`\n ${greeting}\n\n`);
36
+ messages.push({ role: 'assistant', content: greeting });
37
+ // Get user's first answer
38
+ let userInput;
39
+ try {
40
+ userInput = await ask({
41
+ message: 'You',
42
+ placeholder: 'Tell me about your product...',
43
+ });
44
+ }
45
+ catch {
46
+ process.stdout.write(`\n ${dim('No worries! Run')} ${bold('pb capture')} ${dim('anytime to add knowledge.')}\n\n`);
47
+ return;
48
+ }
49
+ if (!userInput.trim()) {
50
+ process.stdout.write(`\n ${dim('No problem — explore with')} ${bold('pb orient -b')} ${dim('or capture with')} ${bold('pb capture')}\n\n`);
51
+ return;
52
+ }
53
+ messages.push({ role: 'user', content: userInput });
54
+ totalUserWords += countWords(userInput);
55
+ // Silent extraction after first answer (parallel with follow-up)
56
+ const [followUpResult, extractResult] = await Promise.allSettled([
57
+ convexCall('onboarding.chat', {
58
+ messages,
59
+ workspaceName,
60
+ style: 'facilitator',
61
+ turnNumber: 2,
62
+ totalUserWords,
63
+ }),
64
+ convexCall('onboarding.chat', {
65
+ messages,
66
+ workspaceName,
67
+ mode: 'extract',
68
+ }),
69
+ ]);
70
+ // Store first extraction if available
71
+ if (extractResult.status === 'fulfilled' && extractResult.value?.extraction) {
72
+ lastExtraction = extractResult.value.extraction;
73
+ }
74
+ // Show follow-up question
75
+ if (followUpResult.status === 'fulfilled' && followUpResult.value?.content) {
76
+ const followUp = followUpResult.value.content;
77
+ process.stdout.write(`\n ${followUp}\n\n`);
78
+ messages.push({ role: 'assistant', content: followUp });
79
+ // Get second answer
80
+ try {
81
+ const secondInput = await ask({ message: 'You', placeholder: '' });
82
+ if (secondInput.trim()) {
83
+ messages.push({ role: 'user', content: secondInput });
84
+ totalUserWords += countWords(secondInput);
85
+ // Second extraction — merge with first
86
+ try {
87
+ const result2 = await convexCall('onboarding.chat', {
88
+ messages,
89
+ workspaceName,
90
+ mode: 'extract',
91
+ });
92
+ if (result2?.extraction) {
93
+ lastExtraction = mergeExtractions(lastExtraction, result2.extraction);
94
+ }
95
+ }
96
+ catch {
97
+ // Use first extraction if second fails
98
+ }
99
+ }
100
+ }
101
+ catch {
102
+ // User cancelled — use what we have
103
+ }
104
+ }
105
+ // Content floor — need at least something to extract
106
+ if (totalUserWords < 5 || !lastExtraction?.vision) {
107
+ // Try one final extraction if we don't have one
108
+ if (!lastExtraction?.vision && messages.filter((m) => m.role === 'user').length > 0) {
109
+ try {
110
+ const finalExtract = await convexCall('onboarding.chat', {
111
+ messages,
112
+ workspaceName,
113
+ mode: 'extract',
114
+ });
115
+ if (finalExtract?.extraction) {
116
+ lastExtraction = finalExtract.extraction;
117
+ }
118
+ }
119
+ catch {
120
+ // Nothing to do
121
+ }
122
+ }
123
+ if (!lastExtraction?.vision) {
124
+ process.stdout.write(`\n ${dim('No problem — add knowledge anytime with')} ${bold('pb capture')}\n\n`);
125
+ trackEvent('setup_completed', { path: 'B', capturedCount: 0, reason: 'insufficient_content' });
126
+ return;
127
+ }
128
+ }
129
+ trackEvent('first_capture_prompted', { mode: 'llm', path: 'B' });
130
+ // Auto-capture — no approval UI in Path B
131
+ const allEntries = extractionToEntries(lastExtraction);
132
+ const entriesToCapture = allEntries
133
+ .filter((e) => e.name.trim().split(/\s+/).length >= 2 || e.collection === 'glossary')
134
+ .slice(0, 5);
135
+ if (entriesToCapture.length === 0) {
136
+ process.stdout.write(`\n ${dim('Nothing to save yet. Try')} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
137
+ return;
138
+ }
139
+ const { capturedCount, errors } = await batchCaptureEntries(entriesToCapture);
140
+ if (capturedCount > 0) {
141
+ process.stdout.write(`\n ${green(icons.pass)} Saved ${capturedCount} item${capturedCount === 1 ? '' : 's'} to your product brain.\n`);
142
+ trackEvent('capture_completed', { mode: 'llm', path: 'B', count: capturedCount });
143
+ }
144
+ if (errors.length > 0) {
145
+ process.stdout.write(`\n ${dim(`${errors.length} couldn't be saved.`)}\n`);
146
+ }
147
+ // Governance proof moment — show how captured knowledge participates in governance
148
+ await showGovernanceProof(lastExtraction.vision);
149
+ process.stdout.write(` ${dim('Explore with')} ${bold('pb orient -b')} ${dim('or add more with')} ${bold('pb capture')}\n\n`);
150
+ trackEvent('setup_completed', { path: 'B', capturedCount });
151
+ }
152
+ /** Merge two extractions — second takes precedence for scalar fields, arrays concatenate. */
153
+ export function mergeExtractions(first, second) {
154
+ if (!first)
155
+ return second;
156
+ return {
157
+ vision: second.vision || first.vision,
158
+ audience: second.audience || first.audience,
159
+ techStack: dedupe([...(first.techStack ?? []), ...(second.techStack ?? [])]),
160
+ keyTerms: dedupe([...(first.keyTerms ?? []), ...(second.keyTerms ?? [])]),
161
+ keyDecisions: dedupe([...(first.keyDecisions ?? []), ...(second.keyDecisions ?? [])]),
162
+ tensions: dedupe([...(first.tensions ?? []), ...(second.tensions ?? [])]),
163
+ };
164
+ }
165
+ export function dedupe(arr) {
166
+ return [...new Set(arr.map((s) => s.toLowerCase()))].map((lower) => arr.find((s) => s.toLowerCase() === lower) ?? lower);
167
+ }
168
+ /** Governance proof — show binding governance from captured knowledge via resolveTaskStartup. */
169
+ async function showGovernanceProof(vision) {
170
+ try {
171
+ const result = await convexCall('chain.resolveTaskStartup', { task: vision });
172
+ const governance = result?.bindingGovernance;
173
+ const steering = result?.steeringContext ?? [];
174
+ const allItems = [
175
+ ...(governance?.principles ?? []),
176
+ ...(governance?.standards ?? []),
177
+ ...(governance?.businessRules ?? []),
178
+ ...steering.slice(0, 3),
179
+ ].filter((i) => i.name);
180
+ if (allItems.length > 0) {
181
+ process.stdout.write(`\n ${bold('Your product knowledge is now wired in:')}\n\n`);
182
+ for (const item of allItems.slice(0, 4)) {
183
+ process.stdout.write(` ${dim(icons.dot)} ${item.name}\n`);
184
+ }
185
+ if (allItems.length > 4) {
186
+ process.stdout.write(` ${dim(`...and ${allItems.length - 4} more`)}\n`);
187
+ }
188
+ process.stdout.write('\n');
189
+ }
190
+ }
191
+ catch {
192
+ // Governance proof is best-effort — fall back to orient-based proof
193
+ try {
194
+ const orient = await convexCall('orient', { brief: true });
195
+ const items = orient?.sections?.flatMap((s) => s.items ?? []).filter((i) => i.name) ?? [];
196
+ if (items.length > 0) {
197
+ process.stdout.write(`\n ${bold("Here's how your product brain will use this:")}\n\n`);
198
+ for (const item of items.slice(0, 5)) {
199
+ process.stdout.write(` ${dim(icons.dot)} ${item.name}\n`);
200
+ }
201
+ process.stdout.write('\n');
202
+ }
203
+ }
204
+ catch {
205
+ // Both proofs failed — skip silently
206
+ }
207
+ }
208
+ }
209
+ /** Deterministic fallback when LLM is unavailable. Dynamic import avoids circular dependency with onboarding.ts. */
210
+ async function runPathBFallback(workspaceName) {
211
+ const { runFallbackOnboarding } = await import('./onboarding.js');
212
+ await runFallbackOnboarding(workspaceName);
213
+ }
214
+ //# sourceMappingURL=onboarding-path-b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-path-b.js","sourceRoot":"","sources":["../../src/lib/onboarding-path-b.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Onboarding conversation phases — the 5-phase arc for first-time setup.
3
+ * WP-304: Each phase has a directive (what the LLM should do) and exit criteria (what the CLI checks).
4
+ */
5
+ import type { ConversationPhase } from './conversation-phases.js';
6
+ export declare const ONBOARDING_PHASES: ConversationPhase[];
7
+ /** Check if user wants to skip the conversation. */
8
+ export declare function userWantsToSkip(text: string): boolean;
9
+ //# sourceMappingURL=onboarding-phases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-phases.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-phases.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,EA4GhD,CAAC;AAKF,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Onboarding conversation phases — the 5-phase arc for first-time setup.
3
+ * WP-304: Each phase has a directive (what the LLM should do) and exit criteria (what the CLI checks).
4
+ */
5
+ export const ONBOARDING_PHASES = [
6
+ {
7
+ id: 'greet',
8
+ directive: `Your job: Say hello and ask what they're building. One sentence. No fluff.
9
+ Example: "Hey! What are you building?"
10
+ Do NOT ask multiple questions. Do NOT explain Product Brain yet.`,
11
+ exitCriteria: [
12
+ {
13
+ name: 'greeting_sent',
14
+ check: (s) => s.phaseExchanges['greet'] !== undefined && (s.phaseExchanges['greet'] ?? 0) >= 0,
15
+ required: true,
16
+ },
17
+ ],
18
+ maxExchanges: 1,
19
+ },
20
+ {
21
+ id: 'explore',
22
+ directive: `Your job: Learn what they're building. Get specific.
23
+ If they gave a vague answer ("something big", "a tool", "an app"), pick one concrete detail and dig in.
24
+ Ask who uses it, what it actually does, or how it works today.
25
+ Good questions: "Who's using it?" / "What does it replace?" / "How does that work today?"
26
+ Bad questions: "What domain are you operating in?" / "Can you elaborate on that?"
27
+ Do NOT ask why they're trying Product Brain yet.
28
+ One question only.`,
29
+ exitCriteria: [
30
+ {
31
+ name: 'user_mentioned_product',
32
+ check: (s) => s.signals.mentionedProduct,
33
+ required: true,
34
+ },
35
+ {
36
+ name: 'has_substantive_answer',
37
+ check: (s) => s.signals.hasSubstantiveAnswer,
38
+ required: true,
39
+ },
40
+ ],
41
+ maxExchanges: 3,
42
+ },
43
+ {
44
+ id: 'deepen',
45
+ directive: `Your job: Understand what's hard about what they're building.
46
+ Pick ONE specific thing they mentioned and ask what breaks or why it's hard. Be direct and short.
47
+ Good: "What breaks when the agent doesn't have that context?" / "Where does the rework hit hardest?"
48
+ Bad: "What makes it hard to ensure X?" / "Can you tell me more about the challenges?"
49
+ Do NOT ask why they're trying Product Brain yet.
50
+ One question only.`,
51
+ exitCriteria: [
52
+ {
53
+ name: 'user_mentioned_challenge',
54
+ check: (s) => s.signals.mentionedChallenge,
55
+ required: false,
56
+ },
57
+ {
58
+ name: 'min_2_substantive_messages',
59
+ check: (s) => s.signals.substantiveMessageCount >= 2,
60
+ required: true,
61
+ },
62
+ ],
63
+ maxExchanges: 2,
64
+ },
65
+ {
66
+ id: 'why_pb',
67
+ directive: `Your job: Ask what made them try Product Brain. Be direct.
68
+ Examples: "What made you try Product Brain?" or "What problem are you hoping Product Brain solves?"
69
+ Do NOT summarize or synthesize yet.
70
+ One question only.`,
71
+ exitCriteria: [
72
+ {
73
+ name: 'user_answered_why_pb',
74
+ check: (s) => s.signals.mentionedWhyPB,
75
+ required: false,
76
+ },
77
+ {
78
+ name: 'min_total_words_25',
79
+ check: (s) => s.totalUserWords >= 25,
80
+ required: true,
81
+ },
82
+ {
83
+ name: 'min_3_substantive_messages',
84
+ check: (s) => s.signals.substantiveMessageCount >= 3,
85
+ required: true,
86
+ },
87
+ ],
88
+ maxExchanges: 2,
89
+ },
90
+ {
91
+ id: 'bridge',
92
+ directive: `Your job: Bridge the conversation to Product Brain's value. Speak as Product Brain (first person "I").
93
+ Keep it SHORT — 2-3 sentences max. Do NOT list bullet items. The CLI will handle showing examples.
94
+
95
+ Structure:
96
+ 1. One sentence connecting their problem to what you (PB) do. Use first person.
97
+ 2. One sentence showing you understood something specific they said.
98
+
99
+ Good example: "I can remember all of that across your AI sessions — so next time you open your AI tools, they already know about the decision rot problem and your cashflow automation. No more re-explaining."
100
+ Bad example: "Product Brain can help — it remembers context. Here's what I'd save: * item 1 * item 2 * item 3"
101
+
102
+ Do NOT list items. Do NOT use bullet points or asterisks. The CLI shows examples separately.
103
+ This is a STATEMENT. Do NOT ask a question. Do NOT end with a question mark.`,
104
+ exitCriteria: [
105
+ {
106
+ name: 'bridge_delivered',
107
+ check: (s) => (s.phaseExchanges['bridge'] ?? 0) >= 1,
108
+ required: true,
109
+ },
110
+ ],
111
+ maxExchanges: 1,
112
+ },
113
+ ];
114
+ /** User wants to skip — detected by regex on user input. */
115
+ const SKIP_PATTERNS = [/\b(?:skip|done|that'?s it|wrap up|let'?s go|finish|end)\b/i];
116
+ /** Check if user wants to skip the conversation. */
117
+ export function userWantsToSkip(text) {
118
+ return SKIP_PATTERNS.some((p) => p.test(text));
119
+ }
120
+ //# sourceMappingURL=onboarding-phases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-phases.js","sourceRoot":"","sources":["../../src/lib/onboarding-phases.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD;QACE,EAAE,EAAE,OAAO;QACX,SAAS,EAAE;;iEAEkD;QAC7D,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBAC9F,QAAQ,EAAE,IAAI;aACf;SACF;QACD,YAAY,EAAE,CAAC;KAChB;IACD;QACE,EAAE,EAAE,SAAS;QACb,SAAS,EAAE;;;;;;mBAMI;QACf,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBACxC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB;gBAC5C,QAAQ,EAAE,IAAI;aACf;SACF;QACD,YAAY,EAAE,CAAC;KAChB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE;;;;;mBAKI;QACf,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,0BAA0B;gBAChC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB;gBAC1C,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,IAAI,CAAC;gBACpD,QAAQ,EAAE,IAAI;aACf;SACF;QACD,YAAY,EAAE,CAAC;KAChB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE;;;mBAGI;QACf,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;gBACtC,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE;gBACpC,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,IAAI,CAAC;gBACpD,QAAQ,EAAE,IAAI;aACf;SACF;QACD,YAAY,EAAE,CAAC;KAChB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE;;;;;;;;;;;6EAW8D;QACzE,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBACpD,QAAQ,EAAE,IAAI;aACf;SACF;QACD,YAAY,EAAE,CAAC;KAChB;CACF,CAAC;AAEF,4DAA4D;AAC5D,MAAM,aAAa,GAAG,CAAC,4DAA4D,CAAC,CAAC;AAErF,oDAAoD;AACpD,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Shared onboarding utilities — types, extraction mapping, batch capture, retrieval proof.
3
+ * WP-304: Extracted from onboarding.ts to support both Path A and future Path B.
4
+ *
5
+ * DIVERGED from packages/mcp-server/src/tools/start-interview.ts:extractionToBatchEntries per DEC-522.
6
+ * Copy-and-own: CLI uses 120-char truncate limits (vs MCP's 80). Shared package deferred.
7
+ * Duplicated due to monorepo import boundary (BR-108).
8
+ */
9
+ /** @deprecated Use CaptureEntry[] directly — LLM now outputs entry-shaped data. */
10
+ export interface OnboardingExtraction {
11
+ vision: string;
12
+ audience?: string | null;
13
+ techStack?: string[] | null;
14
+ keyTerms?: string[] | null;
15
+ keyDecisions?: string[] | null;
16
+ tensions?: string[] | null;
17
+ }
18
+ /** Result from chain.createEntry. */
19
+ export interface CreateEntryResult {
20
+ entryId: string;
21
+ collection: string;
22
+ name: string;
23
+ status: string;
24
+ }
25
+ /** A single entry to capture. */
26
+ export interface CaptureEntry {
27
+ collection: string;
28
+ name: string;
29
+ description: string;
30
+ typeLabel: string;
31
+ }
32
+ /** Result from the onboarding.chat action — chat mode. */
33
+ export interface OnboardingChatResult {
34
+ content: string;
35
+ /** Coach pattern (Path A): whether the LLM judged the current topic's criteria as met. */
36
+ topicComplete?: boolean;
37
+ /** @deprecated Path B facilitator only. */
38
+ phase?: string;
39
+ signals?: {
40
+ describedProduct?: boolean;
41
+ describedProblem?: boolean;
42
+ answeredWhyPB?: boolean;
43
+ quotableFragments?: string[];
44
+ } | null;
45
+ }
46
+ /** Result from the onboarding.chat action — extract mode. */
47
+ export interface OnboardingExtractResult {
48
+ entries: CaptureEntry[];
49
+ /** @deprecated Backward-compat for Path B. Remove when Path B migrates to entries[]. */
50
+ extraction?: OnboardingExtraction;
51
+ }
52
+ export declare function truncate(str: string, maxLen: number): string;
53
+ export declare function firstNWords(str: string, n: number): string;
54
+ export declare function countWords(text: string): number;
55
+ /**
56
+ * Validate and clean LLM-extracted entries. The LLM outputs entry-shaped data directly;
57
+ * this function validates shape, deduplicates, and caps the result.
58
+ */
59
+ export declare function validateExtractedEntries(entries: unknown[]): CaptureEntry[];
60
+ /** @deprecated Use validateExtractedEntries instead — kept for backward compat during migration. */
61
+ export declare function extractionToEntries(extracted: OnboardingExtraction): CaptureEntry[];
62
+ /**
63
+ * Display one entry example with schema structure.
64
+ * Shows typeLabel (from LLM), name, and description in a clean format.
65
+ */
66
+ export declare function displayEntryExample(entry: CaptureEntry): void;
67
+ /**
68
+ * Batch-capture entries via MCP chain.createEntry.
69
+ * Returns count of captured entries and any error messages.
70
+ */
71
+ export declare function batchCaptureEntries(entries: CaptureEntry[]): Promise<{
72
+ capturedCount: number;
73
+ errors: string[];
74
+ }>;
75
+ /**
76
+ * Show deterministic proof of what was captured — displays the entries that were just saved.
77
+ * Guaranteed to show content (no network call that can fail or return empty).
78
+ * Satisfies BR-141: "First-session flow MUST end with retrieval demonstration."
79
+ */
80
+ export declare function showCapturedSummary(entries: CaptureEntry[], capturedCount: number): void;
81
+ //# sourceMappingURL=onboarding-shared.d.ts.map