@productbrain/cli 0.1.0-beta.15 → 0.1.0-beta.1522

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 (948) hide show
  1. package/README.md +76 -115
  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.js +65 -44
  7. package/dist/__tests__/audit.test.js.map +1 -1
  8. package/dist/__tests__/authority-domains-queue.test.d.ts +2 -0
  9. package/dist/__tests__/authority-domains-queue.test.d.ts.map +1 -0
  10. package/dist/__tests__/authority-domains-queue.test.js +169 -0
  11. package/dist/__tests__/authority-domains-queue.test.js.map +1 -0
  12. package/dist/__tests__/authority-domains.test.d.ts +2 -0
  13. package/dist/__tests__/authority-domains.test.d.ts.map +1 -0
  14. package/dist/__tests__/authority-domains.test.js +48 -0
  15. package/dist/__tests__/authority-domains.test.js.map +1 -0
  16. package/dist/__tests__/batch-transformations.test.d.ts +2 -0
  17. package/dist/__tests__/batch-transformations.test.d.ts.map +1 -0
  18. package/dist/__tests__/batch-transformations.test.js +263 -0
  19. package/dist/__tests__/batch-transformations.test.js.map +1 -0
  20. package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
  21. package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
  22. package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
  23. package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
  24. package/dist/__tests__/capture-receipt-domain.test.d.ts +2 -0
  25. package/dist/__tests__/capture-receipt-domain.test.d.ts.map +1 -0
  26. package/dist/__tests__/capture-receipt-domain.test.js +29 -0
  27. package/dist/__tests__/capture-receipt-domain.test.js.map +1 -0
  28. package/dist/__tests__/capture.test.js +309 -18
  29. package/dist/__tests__/capture.test.js.map +1 -1
  30. package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
  31. package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
  32. package/dist/__tests__/codex-prep-parity.test.js +107 -0
  33. package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
  34. package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
  35. package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
  36. package/dist/__tests__/config-prod-fallthrough.test.js +82 -0
  37. package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
  38. package/dist/__tests__/config.test.d.ts +8 -0
  39. package/dist/__tests__/config.test.d.ts.map +1 -0
  40. package/dist/__tests__/config.test.js +566 -0
  41. package/dist/__tests__/config.test.js.map +1 -0
  42. package/dist/__tests__/constants.test.d.ts +2 -0
  43. package/dist/__tests__/constants.test.d.ts.map +1 -0
  44. package/dist/__tests__/constants.test.js +146 -0
  45. package/dist/__tests__/constants.test.js.map +1 -0
  46. package/dist/__tests__/constellation.test.js +16 -22
  47. package/dist/__tests__/constellation.test.js.map +1 -1
  48. package/dist/__tests__/context-strategy.test.js +8 -8
  49. package/dist/__tests__/context-strategy.test.js.map +1 -1
  50. package/dist/__tests__/envelope-contract.test.d.ts +15 -0
  51. package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
  52. package/dist/__tests__/envelope-contract.test.js +152 -0
  53. package/dist/__tests__/envelope-contract.test.js.map +1 -0
  54. package/dist/__tests__/errors.test.d.ts +2 -0
  55. package/dist/__tests__/errors.test.d.ts.map +1 -0
  56. package/dist/__tests__/errors.test.js +118 -0
  57. package/dist/__tests__/errors.test.js.map +1 -0
  58. package/dist/__tests__/experiment.test.d.ts +6 -0
  59. package/dist/__tests__/experiment.test.d.ts.map +1 -0
  60. package/dist/__tests__/experiment.test.js +69 -0
  61. package/dist/__tests__/experiment.test.js.map +1 -0
  62. package/dist/__tests__/fields.test.js +36 -36
  63. package/dist/__tests__/fields.test.js.map +1 -1
  64. package/dist/__tests__/glossary.test.d.ts +2 -0
  65. package/dist/__tests__/glossary.test.d.ts.map +1 -0
  66. package/dist/__tests__/glossary.test.js +32 -0
  67. package/dist/__tests__/glossary.test.js.map +1 -0
  68. package/dist/__tests__/handshake-augment.test.d.ts +2 -0
  69. package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
  70. package/dist/__tests__/handshake-augment.test.js +423 -0
  71. package/dist/__tests__/handshake-augment.test.js.map +1 -0
  72. package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
  73. package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
  74. package/dist/__tests__/handshake-dormancy.test.js +207 -0
  75. package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
  76. package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
  77. package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
  78. package/dist/__tests__/handshake-formatter.test.js +67 -0
  79. package/dist/__tests__/handshake-formatter.test.js.map +1 -0
  80. package/dist/__tests__/handshake-preview.test.d.ts +2 -0
  81. package/dist/__tests__/handshake-preview.test.d.ts.map +1 -0
  82. package/dist/__tests__/handshake-preview.test.js +949 -0
  83. package/dist/__tests__/handshake-preview.test.js.map +1 -0
  84. package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
  85. package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
  86. package/dist/__tests__/handshake.e2e.test.js +1252 -0
  87. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  88. package/dist/__tests__/handshake.test.js +813 -19
  89. package/dist/__tests__/handshake.test.js.map +1 -1
  90. package/dist/__tests__/hook-intents.test.d.ts +2 -0
  91. package/dist/__tests__/hook-intents.test.d.ts.map +1 -0
  92. package/dist/__tests__/hook-intents.test.js +184 -0
  93. package/dist/__tests__/hook-intents.test.js.map +1 -0
  94. package/dist/__tests__/ingest.test.js +28 -28
  95. package/dist/__tests__/ingest.test.js.map +1 -1
  96. package/dist/__tests__/init.test.d.ts +7 -0
  97. package/dist/__tests__/init.test.d.ts.map +1 -0
  98. package/dist/__tests__/init.test.js +146 -0
  99. package/dist/__tests__/init.test.js.map +1 -0
  100. package/dist/__tests__/login.test.d.ts +2 -0
  101. package/dist/__tests__/login.test.d.ts.map +1 -0
  102. package/dist/__tests__/login.test.js +167 -0
  103. package/dist/__tests__/login.test.js.map +1 -0
  104. package/dist/__tests__/manifest.test.d.ts +6 -0
  105. package/dist/__tests__/manifest.test.d.ts.map +1 -0
  106. package/dist/__tests__/manifest.test.js +255 -0
  107. package/dist/__tests__/manifest.test.js.map +1 -0
  108. package/dist/__tests__/method-publish-coherency.test.d.ts +9 -0
  109. package/dist/__tests__/method-publish-coherency.test.d.ts.map +1 -0
  110. package/dist/__tests__/method-publish-coherency.test.js +71 -0
  111. package/dist/__tests__/method-publish-coherency.test.js.map +1 -0
  112. package/dist/__tests__/method-registry.integration.test.d.ts +6 -0
  113. package/dist/__tests__/method-registry.integration.test.d.ts.map +1 -0
  114. package/dist/__tests__/method-registry.integration.test.js +18 -0
  115. package/dist/__tests__/method-registry.integration.test.js.map +1 -0
  116. package/dist/__tests__/method-registry.test.d.ts +14 -0
  117. package/dist/__tests__/method-registry.test.d.ts.map +1 -0
  118. package/dist/__tests__/method-registry.test.js +134 -0
  119. package/dist/__tests__/method-registry.test.js.map +1 -0
  120. package/dist/__tests__/notice-marker.test.d.ts +2 -0
  121. package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
  122. package/dist/__tests__/notice-marker.test.js +41 -0
  123. package/dist/__tests__/notice-marker.test.js.map +1 -0
  124. package/dist/__tests__/onboarding-path-b.test.d.ts +2 -0
  125. package/dist/__tests__/onboarding-path-b.test.d.ts.map +1 -0
  126. package/dist/__tests__/onboarding-path-b.test.js +46 -0
  127. package/dist/__tests__/onboarding-path-b.test.js.map +1 -0
  128. package/dist/__tests__/onboarding.test.d.ts +6 -0
  129. package/dist/__tests__/onboarding.test.d.ts.map +1 -0
  130. package/dist/__tests__/onboarding.test.js +347 -0
  131. package/dist/__tests__/onboarding.test.js.map +1 -0
  132. package/dist/__tests__/orient.test.d.ts +2 -0
  133. package/dist/__tests__/orient.test.d.ts.map +1 -0
  134. package/dist/__tests__/orient.test.js +424 -0
  135. package/dist/__tests__/orient.test.js.map +1 -0
  136. package/dist/__tests__/perimeter.test.d.ts +2 -0
  137. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  138. package/dist/__tests__/perimeter.test.js +165 -0
  139. package/dist/__tests__/perimeter.test.js.map +1 -0
  140. package/dist/__tests__/personal-layer.test.d.ts +11 -0
  141. package/dist/__tests__/personal-layer.test.d.ts.map +1 -0
  142. package/dist/__tests__/personal-layer.test.js +268 -0
  143. package/dist/__tests__/personal-layer.test.js.map +1 -0
  144. package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
  145. package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
  146. package/dist/__tests__/preview-key-refresh.test.js +126 -0
  147. package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
  148. package/dist/__tests__/profiles.test.d.ts +2 -0
  149. package/dist/__tests__/profiles.test.d.ts.map +1 -0
  150. package/dist/__tests__/profiles.test.js +316 -0
  151. package/dist/__tests__/profiles.test.js.map +1 -0
  152. package/dist/__tests__/promote-batch.test.d.ts +2 -0
  153. package/dist/__tests__/promote-batch.test.d.ts.map +1 -0
  154. package/dist/__tests__/promote-batch.test.js +185 -0
  155. package/dist/__tests__/promote-batch.test.js.map +1 -0
  156. package/dist/__tests__/promote.test.js +213 -34
  157. package/dist/__tests__/promote.test.js.map +1 -1
  158. package/dist/__tests__/prompts.test.d.ts +6 -0
  159. package/dist/__tests__/prompts.test.d.ts.map +1 -0
  160. package/dist/__tests__/prompts.test.js +146 -0
  161. package/dist/__tests__/prompts.test.js.map +1 -0
  162. package/dist/__tests__/proof-run.test.d.ts +2 -0
  163. package/dist/__tests__/proof-run.test.d.ts.map +1 -0
  164. package/dist/__tests__/proof-run.test.js +255 -0
  165. package/dist/__tests__/proof-run.test.js.map +1 -0
  166. package/dist/__tests__/proposals.test.js +24 -47
  167. package/dist/__tests__/proposals.test.js.map +1 -1
  168. package/dist/__tests__/relate.test.js +34 -36
  169. package/dist/__tests__/relate.test.js.map +1 -1
  170. package/dist/__tests__/repo-detect.test.js +97 -1
  171. package/dist/__tests__/repo-detect.test.js.map +1 -1
  172. package/dist/__tests__/runner.test.js +19 -15
  173. package/dist/__tests__/runner.test.js.map +1 -1
  174. package/dist/__tests__/session-close-loop.test.d.ts +2 -0
  175. package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
  176. package/dist/__tests__/session-close-loop.test.js +231 -0
  177. package/dist/__tests__/session-close-loop.test.js.map +1 -0
  178. package/dist/__tests__/session-reset.test.d.ts +2 -0
  179. package/dist/__tests__/session-reset.test.d.ts.map +1 -0
  180. package/dist/__tests__/session-reset.test.js +122 -0
  181. package/dist/__tests__/session-reset.test.js.map +1 -0
  182. package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
  183. package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
  184. package/dist/__tests__/session-resume-backstop.test.js +97 -0
  185. package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
  186. package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
  187. package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
  188. package/dist/__tests__/session-start-key-refresh.test.js +179 -0
  189. package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
  190. package/dist/__tests__/session-state-machine.test.d.ts +2 -0
  191. package/dist/__tests__/session-state-machine.test.d.ts.map +1 -0
  192. package/dist/__tests__/session-state-machine.test.js +198 -0
  193. package/dist/__tests__/session-state-machine.test.js.map +1 -0
  194. package/dist/__tests__/session-switch.test.d.ts +2 -0
  195. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  196. package/dist/__tests__/session-switch.test.js +130 -0
  197. package/dist/__tests__/session-switch.test.js.map +1 -0
  198. package/dist/__tests__/session-touch.test.js +11 -11
  199. package/dist/__tests__/session-touch.test.js.map +1 -1
  200. package/dist/__tests__/session.test.js +4 -10
  201. package/dist/__tests__/session.test.js.map +1 -1
  202. package/dist/__tests__/setup-ingest.test.d.ts +2 -0
  203. package/dist/__tests__/setup-ingest.test.d.ts.map +1 -0
  204. package/dist/__tests__/setup-ingest.test.js +71 -0
  205. package/dist/__tests__/setup-ingest.test.js.map +1 -0
  206. package/dist/__tests__/setup-resolver.test.d.ts +14 -0
  207. package/dist/__tests__/setup-resolver.test.d.ts.map +1 -0
  208. package/dist/__tests__/setup-resolver.test.js +228 -0
  209. package/dist/__tests__/setup-resolver.test.js.map +1 -0
  210. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  211. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  212. package/dist/__tests__/skill-vocabulary.test.js +192 -0
  213. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  214. package/dist/__tests__/spinner-labels.test.d.ts +2 -0
  215. package/dist/__tests__/spinner-labels.test.d.ts.map +1 -0
  216. package/dist/__tests__/spinner-labels.test.js +23 -0
  217. package/dist/__tests__/spinner-labels.test.js.map +1 -0
  218. package/dist/__tests__/state.test.d.ts +6 -0
  219. package/dist/__tests__/state.test.d.ts.map +1 -0
  220. package/dist/__tests__/state.test.js +97 -0
  221. package/dist/__tests__/state.test.js.map +1 -0
  222. package/dist/__tests__/surface-profiles.test.d.ts +2 -0
  223. package/dist/__tests__/surface-profiles.test.d.ts.map +1 -0
  224. package/dist/__tests__/surface-profiles.test.js +233 -0
  225. package/dist/__tests__/surface-profiles.test.js.map +1 -0
  226. package/dist/__tests__/surfaces.test.d.ts +2 -0
  227. package/dist/__tests__/surfaces.test.d.ts.map +1 -0
  228. package/dist/__tests__/surfaces.test.js +46 -0
  229. package/dist/__tests__/surfaces.test.js.map +1 -0
  230. package/dist/__tests__/update-check.test.d.ts +2 -0
  231. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  232. package/dist/__tests__/update-check.test.js +215 -0
  233. package/dist/__tests__/update-check.test.js.map +1 -0
  234. package/dist/__tests__/update.test.js +63 -72
  235. package/dist/__tests__/update.test.js.map +1 -1
  236. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  237. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  238. package/dist/__tests__/upgrade-runner.test.js +54 -0
  239. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  240. package/dist/__tests__/upgrade.test.d.ts +2 -0
  241. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  242. package/dist/__tests__/upgrade.test.js +56 -0
  243. package/dist/__tests__/upgrade.test.js.map +1 -0
  244. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  245. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  246. package/dist/__tests__/vocabulary-leak.test.js +534 -0
  247. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  248. package/dist/__tests__/workspace.test.d.ts +2 -0
  249. package/dist/__tests__/workspace.test.d.ts.map +1 -0
  250. package/dist/__tests__/workspace.test.js +328 -0
  251. package/dist/__tests__/workspace.test.js.map +1 -0
  252. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  253. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  254. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  255. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  256. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
  257. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
  258. package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
  259. package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
  260. package/dist/commands/__tests__/setup-state.test.d.ts +2 -0
  261. package/dist/commands/__tests__/setup-state.test.d.ts.map +1 -0
  262. package/dist/commands/__tests__/setup-state.test.js +194 -0
  263. package/dist/commands/__tests__/setup-state.test.js.map +1 -0
  264. package/dist/commands/accept.d.ts.map +1 -1
  265. package/dist/commands/accept.js +10 -6
  266. package/dist/commands/accept.js.map +1 -1
  267. package/dist/commands/admin/cockpit.d.ts +90 -0
  268. package/dist/commands/admin/cockpit.d.ts.map +1 -0
  269. package/dist/commands/admin/cockpit.js +618 -0
  270. package/dist/commands/admin/cockpit.js.map +1 -0
  271. package/dist/commands/admin/index.d.ts +21 -0
  272. package/dist/commands/admin/index.d.ts.map +1 -0
  273. package/dist/commands/admin/index.js +256 -0
  274. package/dist/commands/admin/index.js.map +1 -0
  275. package/dist/commands/admin/inspect.d.ts +30 -0
  276. package/dist/commands/admin/inspect.d.ts.map +1 -0
  277. package/dist/commands/admin/inspect.js +555 -0
  278. package/dist/commands/admin/inspect.js.map +1 -0
  279. package/dist/commands/admin/inspect.test.d.ts +7 -0
  280. package/dist/commands/admin/inspect.test.d.ts.map +1 -0
  281. package/dist/commands/admin/inspect.test.js +90 -0
  282. package/dist/commands/admin/inspect.test.js.map +1 -0
  283. package/dist/commands/admin/manage.d.ts +8 -0
  284. package/dist/commands/admin/manage.d.ts.map +1 -0
  285. package/dist/commands/admin/manage.js +260 -0
  286. package/dist/commands/admin/manage.js.map +1 -0
  287. package/dist/commands/admin/manage.test.d.ts +16 -0
  288. package/dist/commands/admin/manage.test.d.ts.map +1 -0
  289. package/dist/commands/admin/manage.test.js +159 -0
  290. package/dist/commands/admin/manage.test.js.map +1 -0
  291. package/dist/commands/admin/seed.d.ts +75 -0
  292. package/dist/commands/admin/seed.d.ts.map +1 -0
  293. package/dist/commands/admin/seed.js +944 -0
  294. package/dist/commands/admin/seed.js.map +1 -0
  295. package/dist/commands/admin/seed.test.d.ts +11 -0
  296. package/dist/commands/admin/seed.test.d.ts.map +1 -0
  297. package/dist/commands/admin/seed.test.js +127 -0
  298. package/dist/commands/admin/seed.test.js.map +1 -0
  299. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  300. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  301. package/dist/commands/admin/seedRegistryEntries.generated.js +144 -0
  302. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  303. package/dist/commands/admin/seedRegistryEntries.test.d.ts +11 -0
  304. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  305. package/dist/commands/admin/seedRegistryEntries.test.js +70 -0
  306. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  307. package/dist/commands/audit.d.ts.map +1 -1
  308. package/dist/commands/audit.js +42 -7
  309. package/dist/commands/audit.js.map +1 -1
  310. package/dist/commands/authority-domains.d.ts +157 -0
  311. package/dist/commands/authority-domains.d.ts.map +1 -0
  312. package/dist/commands/authority-domains.js +356 -0
  313. package/dist/commands/authority-domains.js.map +1 -0
  314. package/dist/commands/brief.d.ts.map +1 -1
  315. package/dist/commands/brief.js +10 -5
  316. package/dist/commands/brief.js.map +1 -1
  317. package/dist/commands/capture.d.ts +7 -0
  318. package/dist/commands/capture.d.ts.map +1 -1
  319. package/dist/commands/capture.js +266 -19
  320. package/dist/commands/capture.js.map +1 -1
  321. package/dist/commands/chain-walk.d.ts.map +1 -1
  322. package/dist/commands/chain-walk.js +8 -3
  323. package/dist/commands/chain-walk.js.map +1 -1
  324. package/dist/commands/changes.d.ts.map +1 -1
  325. package/dist/commands/changes.js +8 -3
  326. package/dist/commands/changes.js.map +1 -1
  327. package/dist/commands/codex-prep.d.ts +23 -0
  328. package/dist/commands/codex-prep.d.ts.map +1 -0
  329. package/dist/commands/codex-prep.js +56 -0
  330. package/dist/commands/codex-prep.js.map +1 -0
  331. package/dist/commands/collections.d.ts +22 -0
  332. package/dist/commands/collections.d.ts.map +1 -0
  333. package/dist/commands/collections.js +77 -0
  334. package/dist/commands/collections.js.map +1 -0
  335. package/dist/commands/connect-config.test.d.ts +2 -0
  336. package/dist/commands/connect-config.test.d.ts.map +1 -0
  337. package/dist/commands/connect-config.test.js +44 -0
  338. package/dist/commands/connect-config.test.js.map +1 -0
  339. package/dist/commands/connect-context.d.ts +45 -0
  340. package/dist/commands/connect-context.d.ts.map +1 -0
  341. package/dist/commands/connect-context.js +64 -0
  342. package/dist/commands/connect-context.js.map +1 -0
  343. package/dist/commands/connect-context.test.d.ts +2 -0
  344. package/dist/commands/connect-context.test.d.ts.map +1 -0
  345. package/dist/commands/connect-context.test.js +110 -0
  346. package/dist/commands/connect-context.test.js.map +1 -0
  347. package/dist/commands/connect-handoff.d.ts +51 -0
  348. package/dist/commands/connect-handoff.d.ts.map +1 -0
  349. package/dist/commands/connect-handoff.js +70 -0
  350. package/dist/commands/connect-handoff.js.map +1 -0
  351. package/dist/commands/connect-integration.test.d.ts +7 -0
  352. package/dist/commands/connect-integration.test.d.ts.map +1 -0
  353. package/dist/commands/connect-integration.test.js +212 -0
  354. package/dist/commands/connect-integration.test.js.map +1 -0
  355. package/dist/commands/connect-screens.d.ts +23 -0
  356. package/dist/commands/connect-screens.d.ts.map +1 -0
  357. package/dist/commands/connect-screens.js +90 -0
  358. package/dist/commands/connect-screens.js.map +1 -0
  359. package/dist/commands/connect.d.ts +36 -0
  360. package/dist/commands/connect.d.ts.map +1 -0
  361. package/dist/commands/connect.js +264 -0
  362. package/dist/commands/connect.js.map +1 -0
  363. package/dist/commands/connect.test.d.ts +6 -0
  364. package/dist/commands/connect.test.d.ts.map +1 -0
  365. package/dist/commands/connect.test.js +297 -0
  366. package/dist/commands/connect.test.js.map +1 -0
  367. package/dist/commands/constellation.d.ts.map +1 -1
  368. package/dist/commands/constellation.js +8 -3
  369. package/dist/commands/constellation.js.map +1 -1
  370. package/dist/commands/context.d.ts.map +1 -1
  371. package/dist/commands/context.js +8 -3
  372. package/dist/commands/context.js.map +1 -1
  373. package/dist/commands/cross-cut.js +2 -2
  374. package/dist/commands/cross-cut.js.map +1 -1
  375. package/dist/commands/doctor.d.ts +18 -0
  376. package/dist/commands/doctor.d.ts.map +1 -0
  377. package/dist/commands/doctor.js +297 -0
  378. package/dist/commands/doctor.js.map +1 -0
  379. package/dist/commands/doctor.test.d.ts +8 -0
  380. package/dist/commands/doctor.test.d.ts.map +1 -0
  381. package/dist/commands/doctor.test.js +461 -0
  382. package/dist/commands/doctor.test.js.map +1 -0
  383. package/dist/commands/fields.d.ts.map +1 -1
  384. package/dist/commands/fields.js +8 -4
  385. package/dist/commands/fields.js.map +1 -1
  386. package/dist/commands/get.d.ts.map +1 -1
  387. package/dist/commands/get.js +14 -6
  388. package/dist/commands/get.js.map +1 -1
  389. package/dist/commands/handshake.d.ts +233 -2
  390. package/dist/commands/handshake.d.ts.map +1 -1
  391. package/dist/commands/handshake.js +2338 -81
  392. package/dist/commands/handshake.js.map +1 -1
  393. package/dist/commands/ingest.d.ts.map +1 -1
  394. package/dist/commands/ingest.js +17 -9
  395. package/dist/commands/ingest.js.map +1 -1
  396. package/dist/commands/init.d.ts +14 -0
  397. package/dist/commands/init.d.ts.map +1 -0
  398. package/dist/commands/init.js +109 -0
  399. package/dist/commands/init.js.map +1 -0
  400. package/dist/commands/login.d.ts +4 -0
  401. package/dist/commands/login.d.ts.map +1 -1
  402. package/dist/commands/login.js +101 -38
  403. package/dist/commands/login.js.map +1 -1
  404. package/dist/commands/method.d.ts +99 -0
  405. package/dist/commands/method.d.ts.map +1 -0
  406. package/dist/commands/method.js +796 -0
  407. package/dist/commands/method.js.map +1 -0
  408. package/dist/commands/migrate-setup.d.ts +18 -0
  409. package/dist/commands/migrate-setup.d.ts.map +1 -0
  410. package/dist/commands/migrate-setup.js +148 -0
  411. package/dist/commands/migrate-setup.js.map +1 -0
  412. package/dist/commands/orient.d.ts +197 -3
  413. package/dist/commands/orient.d.ts.map +1 -1
  414. package/dist/commands/orient.js +129 -7
  415. package/dist/commands/orient.js.map +1 -1
  416. package/dist/commands/profile.d.ts +34 -0
  417. package/dist/commands/profile.d.ts.map +1 -0
  418. package/dist/commands/profile.js +165 -0
  419. package/dist/commands/profile.js.map +1 -0
  420. package/dist/commands/promote.d.ts +12 -1
  421. package/dist/commands/promote.d.ts.map +1 -1
  422. package/dist/commands/promote.js +197 -30
  423. package/dist/commands/promote.js.map +1 -1
  424. package/dist/commands/proof-run.d.ts +51 -0
  425. package/dist/commands/proof-run.d.ts.map +1 -0
  426. package/dist/commands/proof-run.js +209 -0
  427. package/dist/commands/proof-run.js.map +1 -0
  428. package/dist/commands/proposals.js +2 -2
  429. package/dist/commands/proposals.js.map +1 -1
  430. package/dist/commands/reject.d.ts.map +1 -1
  431. package/dist/commands/reject.js +14 -7
  432. package/dist/commands/reject.js.map +1 -1
  433. package/dist/commands/relate.d.ts.map +1 -1
  434. package/dist/commands/relate.js +49 -16
  435. package/dist/commands/relate.js.map +1 -1
  436. package/dist/commands/scoreboard.d.ts +28 -0
  437. package/dist/commands/scoreboard.d.ts.map +1 -0
  438. package/dist/commands/scoreboard.js +40 -0
  439. package/dist/commands/scoreboard.js.map +1 -0
  440. package/dist/commands/search.js +2 -2
  441. package/dist/commands/search.js.map +1 -1
  442. package/dist/commands/session.d.ts +26 -2
  443. package/dist/commands/session.d.ts.map +1 -1
  444. package/dist/commands/session.js +355 -41
  445. package/dist/commands/session.js.map +1 -1
  446. package/dist/commands/setup-audit.d.ts +59 -0
  447. package/dist/commands/setup-audit.d.ts.map +1 -0
  448. package/dist/commands/setup-audit.js +250 -0
  449. package/dist/commands/setup-audit.js.map +1 -0
  450. package/dist/commands/setup-detect-surfaces.d.ts +38 -0
  451. package/dist/commands/setup-detect-surfaces.d.ts.map +1 -0
  452. package/dist/commands/setup-detect-surfaces.js +76 -0
  453. package/dist/commands/setup-detect-surfaces.js.map +1 -0
  454. package/dist/commands/setup-ingest.d.ts +17 -0
  455. package/dist/commands/setup-ingest.d.ts.map +1 -0
  456. package/dist/commands/setup-ingest.js +174 -0
  457. package/dist/commands/setup-ingest.js.map +1 -0
  458. package/dist/commands/setup-resolver.d.ts +58 -0
  459. package/dist/commands/setup-resolver.d.ts.map +1 -0
  460. package/dist/commands/setup-resolver.js +150 -0
  461. package/dist/commands/setup-resolver.js.map +1 -0
  462. package/dist/commands/setup-state.d.ts +42 -0
  463. package/dist/commands/setup-state.d.ts.map +1 -0
  464. package/dist/commands/setup-state.js +93 -0
  465. package/dist/commands/setup-state.js.map +1 -0
  466. package/dist/commands/setup.d.ts +23 -0
  467. package/dist/commands/setup.d.ts.map +1 -0
  468. package/dist/commands/setup.js +69 -0
  469. package/dist/commands/setup.js.map +1 -0
  470. package/dist/commands/update.d.ts +9 -0
  471. package/dist/commands/update.d.ts.map +1 -1
  472. package/dist/commands/update.js +92 -26
  473. package/dist/commands/update.js.map +1 -1
  474. package/dist/commands/upgrade.d.ts +5 -0
  475. package/dist/commands/upgrade.d.ts.map +1 -0
  476. package/dist/commands/upgrade.js +110 -0
  477. package/dist/commands/upgrade.js.map +1 -0
  478. package/dist/commands/usage.d.ts +40 -0
  479. package/dist/commands/usage.d.ts.map +1 -0
  480. package/dist/commands/usage.js +232 -0
  481. package/dist/commands/usage.js.map +1 -0
  482. package/dist/commands/verify.d.ts.map +1 -1
  483. package/dist/commands/verify.js +14 -7
  484. package/dist/commands/verify.js.map +1 -1
  485. package/dist/commands/welcome.d.ts +21 -0
  486. package/dist/commands/welcome.d.ts.map +1 -0
  487. package/dist/commands/welcome.js +50 -0
  488. package/dist/commands/welcome.js.map +1 -0
  489. package/dist/commands/whoami.d.ts +12 -0
  490. package/dist/commands/whoami.d.ts.map +1 -0
  491. package/dist/commands/whoami.js +70 -0
  492. package/dist/commands/whoami.js.map +1 -0
  493. package/dist/commands/whoami.test.d.ts +2 -0
  494. package/dist/commands/whoami.test.d.ts.map +1 -0
  495. package/dist/commands/whoami.test.js +50 -0
  496. package/dist/commands/whoami.test.js.map +1 -0
  497. package/dist/commands/workspace.d.ts +113 -0
  498. package/dist/commands/workspace.d.ts.map +1 -0
  499. package/dist/commands/workspace.js +263 -0
  500. package/dist/commands/workspace.js.map +1 -0
  501. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  502. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  503. package/dist/formatters/__tests__/orient-provenance.test.js +454 -0
  504. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  505. package/dist/formatters/__tests__/session.test.d.ts +2 -0
  506. package/dist/formatters/__tests__/session.test.d.ts.map +1 -0
  507. package/dist/formatters/__tests__/session.test.js +113 -0
  508. package/dist/formatters/__tests__/session.test.js.map +1 -0
  509. package/dist/formatters/audit.d.ts +6 -0
  510. package/dist/formatters/audit.d.ts.map +1 -1
  511. package/dist/formatters/audit.js.map +1 -1
  512. package/dist/formatters/capture.d.ts +26 -3
  513. package/dist/formatters/capture.d.ts.map +1 -1
  514. package/dist/formatters/capture.js +25 -1
  515. package/dist/formatters/capture.js.map +1 -1
  516. package/dist/formatters/collections.d.ts +40 -0
  517. package/dist/formatters/collections.d.ts.map +1 -0
  518. package/dist/formatters/collections.js +93 -0
  519. package/dist/formatters/collections.js.map +1 -0
  520. package/dist/formatters/entry.d.ts +30 -4
  521. package/dist/formatters/entry.d.ts.map +1 -1
  522. package/dist/formatters/entry.js +66 -17
  523. package/dist/formatters/entry.js.map +1 -1
  524. package/dist/formatters/handshake.d.ts +45 -0
  525. package/dist/formatters/handshake.d.ts.map +1 -1
  526. package/dist/formatters/handshake.js +150 -3
  527. package/dist/formatters/handshake.js.map +1 -1
  528. package/dist/formatters/orient.d.ts +268 -5
  529. package/dist/formatters/orient.d.ts.map +1 -1
  530. package/dist/formatters/orient.js +381 -34
  531. package/dist/formatters/orient.js.map +1 -1
  532. package/dist/formatters/promote.d.ts +6 -0
  533. package/dist/formatters/promote.d.ts.map +1 -1
  534. package/dist/formatters/promote.js +8 -0
  535. package/dist/formatters/promote.js.map +1 -1
  536. package/dist/formatters/relate.d.ts +2 -0
  537. package/dist/formatters/relate.d.ts.map +1 -1
  538. package/dist/formatters/relate.js +3 -0
  539. package/dist/formatters/relate.js.map +1 -1
  540. package/dist/formatters/scoreboard.d.ts +11 -0
  541. package/dist/formatters/scoreboard.d.ts.map +1 -0
  542. package/dist/formatters/scoreboard.js +48 -0
  543. package/dist/formatters/scoreboard.js.map +1 -0
  544. package/dist/formatters/search.d.ts +0 -4
  545. package/dist/formatters/search.d.ts.map +1 -1
  546. package/dist/formatters/search.js +4 -1
  547. package/dist/formatters/search.js.map +1 -1
  548. package/dist/formatters/session.d.ts +39 -2
  549. package/dist/formatters/session.d.ts.map +1 -1
  550. package/dist/formatters/session.js +130 -9
  551. package/dist/formatters/session.js.map +1 -1
  552. package/dist/formatters/update.d.ts.map +1 -1
  553. package/dist/formatters/update.js +2 -0
  554. package/dist/formatters/update.js.map +1 -1
  555. package/dist/generators/adapters.d.ts +37 -3
  556. package/dist/generators/adapters.d.ts.map +1 -1
  557. package/dist/generators/adapters.js +196 -8
  558. package/dist/generators/adapters.js.map +1 -1
  559. package/dist/generators/adapters.test.d.ts +2 -0
  560. package/dist/generators/adapters.test.d.ts.map +1 -0
  561. package/dist/generators/adapters.test.js +27 -0
  562. package/dist/generators/adapters.test.js.map +1 -0
  563. package/dist/generators/archetypes.d.ts +52 -0
  564. package/dist/generators/archetypes.d.ts.map +1 -0
  565. package/dist/generators/archetypes.js +190 -0
  566. package/dist/generators/archetypes.js.map +1 -0
  567. package/dist/generators/archetypes.test.d.ts +2 -0
  568. package/dist/generators/archetypes.test.d.ts.map +1 -0
  569. package/dist/generators/archetypes.test.js +272 -0
  570. package/dist/generators/archetypes.test.js.map +1 -0
  571. package/dist/generators/boundary-manifest.d.ts +29 -0
  572. package/dist/generators/boundary-manifest.d.ts.map +1 -0
  573. package/dist/generators/boundary-manifest.js +183 -0
  574. package/dist/generators/boundary-manifest.js.map +1 -0
  575. package/dist/generators/boundary-manifest.test.d.ts +2 -0
  576. package/dist/generators/boundary-manifest.test.d.ts.map +1 -0
  577. package/dist/generators/boundary-manifest.test.js +91 -0
  578. package/dist/generators/boundary-manifest.test.js.map +1 -0
  579. package/dist/generators/chain-classifier.d.ts +63 -0
  580. package/dist/generators/chain-classifier.d.ts.map +1 -0
  581. package/dist/generators/chain-classifier.js +131 -0
  582. package/dist/generators/chain-classifier.js.map +1 -0
  583. package/dist/generators/chain-classifier.test.d.ts +2 -0
  584. package/dist/generators/chain-classifier.test.d.ts.map +1 -0
  585. package/dist/generators/chain-classifier.test.js +371 -0
  586. package/dist/generators/chain-classifier.test.js.map +1 -0
  587. package/dist/generators/chain-rules.d.ts +42 -0
  588. package/dist/generators/chain-rules.d.ts.map +1 -0
  589. package/dist/generators/chain-rules.js +152 -0
  590. package/dist/generators/chain-rules.js.map +1 -0
  591. package/dist/generators/chain-rules.test.d.ts +2 -0
  592. package/dist/generators/chain-rules.test.d.ts.map +1 -0
  593. package/dist/generators/chain-rules.test.js +211 -0
  594. package/dist/generators/chain-rules.test.js.map +1 -0
  595. package/dist/generators/context-md.d.ts +1 -1
  596. package/dist/generators/context-md.d.ts.map +1 -1
  597. package/dist/generators/context-md.js +18 -7
  598. package/dist/generators/context-md.js.map +1 -1
  599. package/dist/generators/handshake-diff.d.ts +67 -0
  600. package/dist/generators/handshake-diff.d.ts.map +1 -0
  601. package/dist/generators/handshake-diff.js +183 -0
  602. package/dist/generators/handshake-diff.js.map +1 -0
  603. package/dist/generators/handshake-diff.test.d.ts +2 -0
  604. package/dist/generators/handshake-diff.test.d.ts.map +1 -0
  605. package/dist/generators/handshake-diff.test.js +264 -0
  606. package/dist/generators/handshake-diff.test.js.map +1 -0
  607. package/dist/generators/manifest.d.ts +115 -0
  608. package/dist/generators/manifest.d.ts.map +1 -0
  609. package/dist/generators/manifest.js +277 -0
  610. package/dist/generators/manifest.js.map +1 -0
  611. package/dist/generators/portable-knowledge.d.ts +96 -9
  612. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  613. package/dist/generators/portable-knowledge.js +367 -17
  614. package/dist/generators/portable-knowledge.js.map +1 -1
  615. package/dist/generators/portable-knowledge.test.js +529 -1
  616. package/dist/generators/portable-knowledge.test.js.map +1 -1
  617. package/dist/generators/region-projections.d.ts +18 -0
  618. package/dist/generators/region-projections.d.ts.map +1 -0
  619. package/dist/generators/region-projections.js +49 -0
  620. package/dist/generators/region-projections.js.map +1 -0
  621. package/dist/generators/region-projections.test.d.ts +2 -0
  622. package/dist/generators/region-projections.test.d.ts.map +1 -0
  623. package/dist/generators/region-projections.test.js +63 -0
  624. package/dist/generators/region-projections.test.js.map +1 -0
  625. package/dist/generators/region.d.ts +24 -0
  626. package/dist/generators/region.d.ts.map +1 -0
  627. package/dist/generators/region.js +87 -0
  628. package/dist/generators/region.js.map +1 -0
  629. package/dist/generators/region.test.d.ts +2 -0
  630. package/dist/generators/region.test.d.ts.map +1 -0
  631. package/dist/generators/region.test.js +126 -0
  632. package/dist/generators/region.test.js.map +1 -0
  633. package/dist/generators/surface-profiles.d.ts +48 -0
  634. package/dist/generators/surface-profiles.d.ts.map +1 -0
  635. package/dist/generators/surface-profiles.js +98 -0
  636. package/dist/generators/surface-profiles.js.map +1 -0
  637. package/dist/index.js +800 -252
  638. package/dist/index.js.map +1 -1
  639. package/dist/lib/activation.d.ts +28 -0
  640. package/dist/lib/activation.d.ts.map +1 -0
  641. package/dist/lib/activation.js +57 -0
  642. package/dist/lib/activation.js.map +1 -0
  643. package/dist/lib/activation.test.d.ts +6 -0
  644. package/dist/lib/activation.test.d.ts.map +1 -0
  645. package/dist/lib/activation.test.js +121 -0
  646. package/dist/lib/activation.test.js.map +1 -0
  647. package/dist/lib/canonicalRefs.d.ts +141 -0
  648. package/dist/lib/canonicalRefs.d.ts.map +1 -0
  649. package/dist/lib/canonicalRefs.js +150 -0
  650. package/dist/lib/canonicalRefs.js.map +1 -0
  651. package/dist/lib/client.d.ts +33 -6
  652. package/dist/lib/client.d.ts.map +1 -1
  653. package/dist/lib/client.js +203 -42
  654. package/dist/lib/client.js.map +1 -1
  655. package/dist/lib/collectionRegistry.d.ts +40 -0
  656. package/dist/lib/collectionRegistry.d.ts.map +1 -0
  657. package/dist/lib/collectionRegistry.js +112 -0
  658. package/dist/lib/collectionRegistry.js.map +1 -0
  659. package/dist/lib/compose-wrapup-view.d.ts +48 -0
  660. package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
  661. package/dist/lib/compose-wrapup-view.js +37 -0
  662. package/dist/lib/compose-wrapup-view.js.map +1 -0
  663. package/dist/lib/config.d.ts +204 -4
  664. package/dist/lib/config.d.ts.map +1 -1
  665. package/dist/lib/config.js +594 -42
  666. package/dist/lib/config.js.map +1 -1
  667. package/dist/lib/connectKeyLabel.d.ts +9 -0
  668. package/dist/lib/connectKeyLabel.d.ts.map +1 -0
  669. package/dist/lib/connectKeyLabel.js +12 -0
  670. package/dist/lib/connectKeyLabel.js.map +1 -0
  671. package/dist/lib/constants.d.ts +46 -0
  672. package/dist/lib/constants.d.ts.map +1 -0
  673. package/dist/lib/constants.js +83 -0
  674. package/dist/lib/constants.js.map +1 -0
  675. package/dist/lib/conversation-engine.d.ts +45 -0
  676. package/dist/lib/conversation-engine.d.ts.map +1 -0
  677. package/dist/lib/conversation-engine.js +112 -0
  678. package/dist/lib/conversation-engine.js.map +1 -0
  679. package/dist/lib/conversation-phases.d.ts +59 -0
  680. package/dist/lib/conversation-phases.d.ts.map +1 -0
  681. package/dist/lib/conversation-phases.js +11 -0
  682. package/dist/lib/conversation-phases.js.map +1 -0
  683. package/dist/lib/conversation-signals.d.ts +30 -0
  684. package/dist/lib/conversation-signals.d.ts.map +1 -0
  685. package/dist/lib/conversation-signals.js +64 -0
  686. package/dist/lib/conversation-signals.js.map +1 -0
  687. package/dist/lib/deployment.d.ts +23 -0
  688. package/dist/lib/deployment.d.ts.map +1 -0
  689. package/dist/lib/deployment.js +78 -0
  690. package/dist/lib/deployment.js.map +1 -0
  691. package/dist/lib/deployment.test.d.ts +5 -0
  692. package/dist/lib/deployment.test.d.ts.map +1 -0
  693. package/dist/lib/deployment.test.js +54 -0
  694. package/dist/lib/deployment.test.js.map +1 -0
  695. package/dist/lib/errors.d.ts +63 -0
  696. package/dist/lib/errors.d.ts.map +1 -0
  697. package/dist/lib/errors.js +72 -0
  698. package/dist/lib/errors.js.map +1 -0
  699. package/dist/lib/experiment.d.ts +18 -0
  700. package/dist/lib/experiment.d.ts.map +1 -0
  701. package/dist/lib/experiment.js +28 -0
  702. package/dist/lib/experiment.js.map +1 -0
  703. package/dist/lib/format.d.ts +10 -0
  704. package/dist/lib/format.d.ts.map +1 -0
  705. package/dist/lib/format.js +27 -0
  706. package/dist/lib/format.js.map +1 -0
  707. package/dist/lib/frontmatter.d.ts +55 -0
  708. package/dist/lib/frontmatter.d.ts.map +1 -0
  709. package/dist/lib/frontmatter.js +92 -0
  710. package/dist/lib/frontmatter.js.map +1 -0
  711. package/dist/lib/frontmatter.test.d.ts +15 -0
  712. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  713. package/dist/lib/frontmatter.test.js +98 -0
  714. package/dist/lib/frontmatter.test.js.map +1 -0
  715. package/dist/lib/glossary.d.ts +19 -0
  716. package/dist/lib/glossary.d.ts.map +1 -0
  717. package/dist/lib/glossary.js +53 -0
  718. package/dist/lib/glossary.js.map +1 -0
  719. package/dist/lib/hook-intents.d.ts +51 -0
  720. package/dist/lib/hook-intents.d.ts.map +1 -0
  721. package/dist/lib/hook-intents.js +85 -0
  722. package/dist/lib/hook-intents.js.map +1 -0
  723. package/dist/lib/inferSourceDate.d.ts +12 -0
  724. package/dist/lib/inferSourceDate.d.ts.map +1 -0
  725. package/dist/lib/inferSourceDate.js +44 -0
  726. package/dist/lib/inferSourceDate.js.map +1 -0
  727. package/dist/lib/method-registry.d.ts +32 -0
  728. package/dist/lib/method-registry.d.ts.map +1 -0
  729. package/dist/lib/method-registry.js +53 -0
  730. package/dist/lib/method-registry.js.map +1 -0
  731. package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
  732. package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
  733. package/dist/lib/normalizeMaterializedFilename.js +56 -0
  734. package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
  735. package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
  736. package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
  737. package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
  738. package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
  739. package/dist/lib/notice-marker.d.ts +3 -0
  740. package/dist/lib/notice-marker.d.ts.map +1 -0
  741. package/dist/lib/notice-marker.js +53 -0
  742. package/dist/lib/notice-marker.js.map +1 -0
  743. package/dist/lib/onboarding-path-b.d.ts +10 -0
  744. package/dist/lib/onboarding-path-b.d.ts.map +1 -0
  745. package/dist/lib/onboarding-path-b.js +213 -0
  746. package/dist/lib/onboarding-path-b.js.map +1 -0
  747. package/dist/lib/onboarding-shared.d.ts +80 -0
  748. package/dist/lib/onboarding-shared.d.ts.map +1 -0
  749. package/dist/lib/onboarding-shared.js +174 -0
  750. package/dist/lib/onboarding-shared.js.map +1 -0
  751. package/dist/lib/onboarding-topics.d.ts +27 -0
  752. package/dist/lib/onboarding-topics.d.ts.map +1 -0
  753. package/dist/lib/onboarding-topics.js +57 -0
  754. package/dist/lib/onboarding-topics.js.map +1 -0
  755. package/dist/lib/onboarding.d.ts +17 -0
  756. package/dist/lib/onboarding.d.ts.map +1 -0
  757. package/dist/lib/onboarding.js +350 -0
  758. package/dist/lib/onboarding.js.map +1 -0
  759. package/dist/lib/profiles.d.ts +41 -0
  760. package/dist/lib/profiles.d.ts.map +1 -0
  761. package/dist/lib/profiles.js +188 -0
  762. package/dist/lib/profiles.js.map +1 -0
  763. package/dist/lib/prompts.d.ts +65 -0
  764. package/dist/lib/prompts.d.ts.map +1 -0
  765. package/dist/lib/prompts.js +132 -0
  766. package/dist/lib/prompts.js.map +1 -0
  767. package/dist/lib/repo-detect.d.ts +19 -0
  768. package/dist/lib/repo-detect.d.ts.map +1 -1
  769. package/dist/lib/repo-detect.js +25 -0
  770. package/dist/lib/repo-detect.js.map +1 -1
  771. package/dist/lib/runner.d.ts +2 -0
  772. package/dist/lib/runner.d.ts.map +1 -1
  773. package/dist/lib/runner.js +21 -7
  774. package/dist/lib/runner.js.map +1 -1
  775. package/dist/lib/session.d.ts +35 -0
  776. package/dist/lib/session.d.ts.map +1 -1
  777. package/dist/lib/session.js +94 -3
  778. package/dist/lib/session.js.map +1 -1
  779. package/dist/lib/spinner.d.ts +27 -0
  780. package/dist/lib/spinner.d.ts.map +1 -0
  781. package/dist/lib/spinner.js +76 -0
  782. package/dist/lib/spinner.js.map +1 -0
  783. package/dist/lib/spinner.test.d.ts +2 -0
  784. package/dist/lib/spinner.test.d.ts.map +1 -0
  785. package/dist/lib/spinner.test.js +39 -0
  786. package/dist/lib/spinner.test.js.map +1 -0
  787. package/dist/lib/startup-resolution-signals.d.ts +34 -0
  788. package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
  789. package/dist/lib/startup-resolution-signals.js +118 -0
  790. package/dist/lib/startup-resolution-signals.js.map +1 -0
  791. package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
  792. package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
  793. package/dist/lib/startup-resolution-signals.test.js +113 -0
  794. package/dist/lib/startup-resolution-signals.test.js.map +1 -0
  795. package/dist/lib/state.d.ts +51 -0
  796. package/dist/lib/state.d.ts.map +1 -0
  797. package/dist/lib/state.js +90 -0
  798. package/dist/lib/state.js.map +1 -0
  799. package/dist/lib/strip.d.ts +1 -0
  800. package/dist/lib/strip.d.ts.map +1 -1
  801. package/dist/lib/strip.js +15 -0
  802. package/dist/lib/strip.js.map +1 -1
  803. package/dist/lib/style.d.ts +96 -0
  804. package/dist/lib/style.d.ts.map +1 -0
  805. package/dist/lib/style.js +169 -0
  806. package/dist/lib/style.js.map +1 -0
  807. package/dist/lib/style.test.d.ts +7 -0
  808. package/dist/lib/style.test.d.ts.map +1 -0
  809. package/dist/lib/style.test.js +263 -0
  810. package/dist/lib/style.test.js.map +1 -0
  811. package/dist/lib/telemetry.d.ts +15 -0
  812. package/dist/lib/telemetry.d.ts.map +1 -0
  813. package/dist/lib/telemetry.js +47 -0
  814. package/dist/lib/telemetry.js.map +1 -0
  815. package/dist/lib/tokenConstants.d.ts +19 -0
  816. package/dist/lib/tokenConstants.d.ts.map +1 -0
  817. package/dist/lib/tokenConstants.js +19 -0
  818. package/dist/lib/tokenConstants.js.map +1 -0
  819. package/dist/lib/update-check.d.ts +56 -0
  820. package/dist/lib/update-check.d.ts.map +1 -0
  821. package/dist/lib/update-check.js +296 -0
  822. package/dist/lib/update-check.js.map +1 -0
  823. package/dist/lib/upgrade-runner.d.ts +22 -0
  824. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  825. package/dist/lib/upgrade-runner.js +110 -0
  826. package/dist/lib/upgrade-runner.js.map +1 -0
  827. package/dist/lib/wizard-surfaces.d.ts +47 -0
  828. package/dist/lib/wizard-surfaces.d.ts.map +1 -0
  829. package/dist/lib/wizard-surfaces.js +176 -0
  830. package/dist/lib/wizard-surfaces.js.map +1 -0
  831. package/dist/lib/wizard-surfaces.test.d.ts +2 -0
  832. package/dist/lib/wizard-surfaces.test.d.ts.map +1 -0
  833. package/dist/lib/wizard-surfaces.test.js +127 -0
  834. package/dist/lib/wizard-surfaces.test.js.map +1 -0
  835. package/dist/lib/wizard-trust.d.ts +31 -0
  836. package/dist/lib/wizard-trust.d.ts.map +1 -0
  837. package/dist/lib/wizard-trust.js +66 -0
  838. package/dist/lib/wizard-trust.js.map +1 -0
  839. package/dist/lib/wizard-trust.test.d.ts +2 -0
  840. package/dist/lib/wizard-trust.test.d.ts.map +1 -0
  841. package/dist/lib/wizard-trust.test.js +32 -0
  842. package/dist/lib/wizard-trust.test.js.map +1 -0
  843. package/dist/lib/workspace-probe.d.ts +19 -0
  844. package/dist/lib/workspace-probe.d.ts.map +1 -0
  845. package/dist/lib/workspace-probe.js +27 -0
  846. package/dist/lib/workspace-probe.js.map +1 -0
  847. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  848. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  849. package/dist/lib/workspaceVocabCache.js +98 -0
  850. package/dist/lib/workspaceVocabCache.js.map +1 -0
  851. package/dist/scoreboard/diagnose.d.ts +182 -0
  852. package/dist/scoreboard/diagnose.d.ts.map +1 -0
  853. package/dist/scoreboard/diagnose.js +250 -0
  854. package/dist/scoreboard/diagnose.js.map +1 -0
  855. package/dist/scoreboard/diagnose.test.d.ts +12 -0
  856. package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
  857. package/dist/scoreboard/diagnose.test.js +192 -0
  858. package/dist/scoreboard/diagnose.test.js.map +1 -0
  859. package/dist/scoreboard/localDrift.d.ts +23 -0
  860. package/dist/scoreboard/localDrift.d.ts.map +1 -0
  861. package/dist/scoreboard/localDrift.js +111 -0
  862. package/dist/scoreboard/localDrift.js.map +1 -0
  863. package/dist/scoreboard/localDrift.test.d.ts +9 -0
  864. package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
  865. package/dist/scoreboard/localDrift.test.js +82 -0
  866. package/dist/scoreboard/localDrift.test.js.map +1 -0
  867. package/dist/setup/__tests__/coach-traces.test.d.ts +2 -0
  868. package/dist/setup/__tests__/coach-traces.test.d.ts.map +1 -0
  869. package/dist/setup/__tests__/coach-traces.test.js +189 -0
  870. package/dist/setup/__tests__/coach-traces.test.js.map +1 -0
  871. package/dist/setup/__tests__/setup-commands.test.d.ts +2 -0
  872. package/dist/setup/__tests__/setup-commands.test.d.ts.map +1 -0
  873. package/dist/setup/__tests__/setup-commands.test.js +177 -0
  874. package/dist/setup/__tests__/setup-commands.test.js.map +1 -0
  875. package/dist/setup/__tests__/state-machine.test.d.ts +2 -0
  876. package/dist/setup/__tests__/state-machine.test.d.ts.map +1 -0
  877. package/dist/setup/__tests__/state-machine.test.js +341 -0
  878. package/dist/setup/__tests__/state-machine.test.js.map +1 -0
  879. package/dist/setup/detect-surfaces.d.ts +21 -0
  880. package/dist/setup/detect-surfaces.d.ts.map +1 -0
  881. package/dist/setup/detect-surfaces.js +39 -0
  882. package/dist/setup/detect-surfaces.js.map +1 -0
  883. package/dist/setup/manifest-writer.d.ts +17 -0
  884. package/dist/setup/manifest-writer.d.ts.map +1 -0
  885. package/dist/setup/manifest-writer.js +153 -0
  886. package/dist/setup/manifest-writer.js.map +1 -0
  887. package/dist/setup/perimeter.d.ts +72 -0
  888. package/dist/setup/perimeter.d.ts.map +1 -0
  889. package/dist/setup/perimeter.js +128 -0
  890. package/dist/setup/perimeter.js.map +1 -0
  891. package/dist/setup/state-machine.d.ts +67 -0
  892. package/dist/setup/state-machine.d.ts.map +1 -0
  893. package/dist/setup/state-machine.js +124 -0
  894. package/dist/setup/state-machine.js.map +1 -0
  895. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  896. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  897. package/dist/surfaces/__tests__/adapter.test.js +90 -0
  898. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  899. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +2 -0
  900. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +1 -0
  901. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +132 -0
  902. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +1 -0
  903. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  904. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  905. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  906. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  907. package/dist/surfaces/adapter.d.ts +70 -0
  908. package/dist/surfaces/adapter.d.ts.map +1 -0
  909. package/dist/surfaces/adapter.js +2 -0
  910. package/dist/surfaces/adapter.js.map +1 -0
  911. package/dist/surfaces/adapters/claude.d.ts +3 -0
  912. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  913. package/dist/surfaces/adapters/claude.js +67 -0
  914. package/dist/surfaces/adapters/claude.js.map +1 -0
  915. package/dist/surfaces/adapters/codex.d.ts +3 -0
  916. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  917. package/dist/surfaces/adapters/codex.js +61 -0
  918. package/dist/surfaces/adapters/codex.js.map +1 -0
  919. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  920. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  921. package/dist/surfaces/adapters/copilot.js +59 -0
  922. package/dist/surfaces/adapters/copilot.js.map +1 -0
  923. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  924. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  925. package/dist/surfaces/adapters/cursor.js +78 -0
  926. package/dist/surfaces/adapters/cursor.js.map +1 -0
  927. package/dist/surfaces/registry.d.ts +76 -0
  928. package/dist/surfaces/registry.d.ts.map +1 -0
  929. package/dist/surfaces/registry.js +117 -0
  930. package/dist/surfaces/registry.js.map +1 -0
  931. package/dist/surfaces/telemetry.d.ts +17 -0
  932. package/dist/surfaces/telemetry.d.ts.map +1 -0
  933. package/dist/surfaces/telemetry.js +31 -0
  934. package/dist/surfaces/telemetry.js.map +1 -0
  935. package/package.json +12 -4
  936. package/templates/archetypes/boundary.md +23 -0
  937. package/templates/archetypes/constraint.md +23 -0
  938. package/templates/archetypes/convention.md +23 -0
  939. package/templates/archetypes/policy.md +23 -0
  940. package/templates/archetypes/quality-gate.md +23 -0
  941. package/templates/archetypes/workflow.md +23 -0
  942. package/templates/general/code-integrity.md +11 -0
  943. package/templates/general/getting-started.md +12 -0
  944. package/templates/method-registry.json +16 -0
  945. package/templates/node-ts/code-integrity.md +13 -0
  946. package/templates/node-ts/testing.md +12 -0
  947. package/templates/python/code-integrity.md +13 -0
  948. package/templates/python/testing.md +12 -0
@@ -0,0 +1,174 @@
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
+ import { kernelCallWithSession } from './client.js';
10
+ import { bold, cyan, dim, icons } from './style.js';
11
+ // ── String helpers ─────────────────────────────────────────────────────────
12
+ export function truncate(str, maxLen) {
13
+ if (str.length <= maxLen)
14
+ return str;
15
+ const truncated = str.slice(0, maxLen);
16
+ const lastSpace = truncated.lastIndexOf(' ');
17
+ return lastSpace > maxLen * 0.6 ? truncated.slice(0, lastSpace) : truncated;
18
+ }
19
+ export function firstNWords(str, n) {
20
+ return str.split(/\s+/).slice(0, n).join(' ');
21
+ }
22
+ export function countWords(text) {
23
+ return text.trim().split(/\s+/).filter(Boolean).length;
24
+ }
25
+ // ── Extraction → Entries Validation ──────────────────────────────────────
26
+ const VALID_COLLECTIONS = new Set(['strategy', 'audiences', 'architecture', 'glossary', 'decisions', 'tensions']);
27
+ /**
28
+ * Validate and clean LLM-extracted entries. The LLM outputs entry-shaped data directly;
29
+ * this function validates shape, deduplicates, and caps the result.
30
+ */
31
+ export function validateExtractedEntries(entries) {
32
+ if (!Array.isArray(entries))
33
+ return [];
34
+ const seen = new Set();
35
+ const validated = [];
36
+ for (const entry of entries) {
37
+ if (!entry || typeof entry !== 'object')
38
+ continue;
39
+ const e = entry;
40
+ const collection = typeof e.collection === 'string' ? e.collection : '';
41
+ const name = typeof e.name === 'string' ? e.name.trim() : '';
42
+ const description = typeof e.description === 'string' ? e.description.trim() : '';
43
+ const typeLabel = typeof e.typeLabel === 'string' ? e.typeLabel.trim() : '';
44
+ // Validate required fields
45
+ if (!name || !description || !VALID_COLLECTIONS.has(collection))
46
+ continue;
47
+ // Skip single-word names (except glossary)
48
+ if (name.split(/\s+/).length < 2 && collection !== 'glossary')
49
+ continue;
50
+ // Dedup by name (case-insensitive)
51
+ const key = name.toLowerCase();
52
+ if (seen.has(key))
53
+ continue;
54
+ seen.add(key);
55
+ validated.push({
56
+ collection,
57
+ name: truncate(name, 120),
58
+ description,
59
+ typeLabel: typeLabel || collection, // fallback to collection if LLM omits
60
+ });
61
+ }
62
+ return validated.slice(0, 7);
63
+ }
64
+ /** @deprecated Use validateExtractedEntries instead — kept for backward compat during migration. */
65
+ export function extractionToEntries(extracted) {
66
+ const entries = [];
67
+ if (extracted.vision?.trim()) {
68
+ entries.push({
69
+ collection: 'strategy',
70
+ name: 'Product Vision',
71
+ description: extracted.vision,
72
+ typeLabel: "What you're building",
73
+ });
74
+ }
75
+ if (extracted.audience) {
76
+ entries.push({
77
+ collection: 'audiences',
78
+ name: firstNWords(extracted.audience, 6),
79
+ description: extracted.audience,
80
+ typeLabel: "Who it's for",
81
+ });
82
+ }
83
+ if (extracted.keyTerms?.length) {
84
+ for (const term of extracted.keyTerms) {
85
+ const alreadyAdded = entries.some((e) => e.collection === 'glossary' && e.name.toLowerCase() === term.toLowerCase());
86
+ if (!alreadyAdded) {
87
+ entries.push({
88
+ collection: 'glossary',
89
+ name: term,
90
+ description: `Core domain term: ${term}`,
91
+ typeLabel: 'A term worth remembering',
92
+ });
93
+ }
94
+ }
95
+ }
96
+ if (extracted.keyDecisions?.length) {
97
+ for (const decision of extracted.keyDecisions) {
98
+ entries.push({
99
+ collection: 'decisions',
100
+ name: truncate(decision, 120),
101
+ description: decision,
102
+ typeLabel: 'A decision you\'ve made',
103
+ });
104
+ }
105
+ }
106
+ if (extracted.tensions?.length) {
107
+ for (const tension of extracted.tensions) {
108
+ entries.push({
109
+ collection: 'tensions',
110
+ name: truncate(tension, 120),
111
+ description: tension,
112
+ typeLabel: 'A challenge you\'re facing',
113
+ });
114
+ }
115
+ }
116
+ return entries;
117
+ }
118
+ // ── Display helpers ───────────────────────────────────────────────────────
119
+ /**
120
+ * Display one entry example with schema structure.
121
+ * Shows typeLabel (from LLM), name, and description in a clean format.
122
+ */
123
+ export function displayEntryExample(entry) {
124
+ process.stdout.write(` ${cyan(entry.typeLabel)}\n`);
125
+ process.stdout.write(` ${bold(entry.name)}\n`);
126
+ if (entry.description !== entry.name) {
127
+ process.stdout.write(` ${dim(entry.description)}\n`);
128
+ }
129
+ process.stdout.write('\n');
130
+ }
131
+ // ── Batch capture ─────────────────────────────────────────────────────────
132
+ /**
133
+ * Batch-capture entries via MCP chain.createEntry.
134
+ * Returns count of captured entries and any error messages.
135
+ */
136
+ export async function batchCaptureEntries(entries) {
137
+ let capturedCount = 0;
138
+ const errors = [];
139
+ for (const entry of entries) {
140
+ try {
141
+ await kernelCallWithSession('chain.createEntry', {
142
+ collectionSlug: entry.collection,
143
+ name: entry.name,
144
+ // DEC-896 / BR-76: omit status — server resolves from governanceMode (Open→active, else draft).
145
+ data: { description: entry.description },
146
+ });
147
+ capturedCount++;
148
+ }
149
+ catch (err) {
150
+ const msg = err instanceof Error ? err.message : String(err);
151
+ errors.push(`${entry.name}: ${msg}`);
152
+ }
153
+ }
154
+ return { capturedCount, errors };
155
+ }
156
+ // ── Captured proof ────────────────────────────────────────────────────────
157
+ /**
158
+ * Show deterministic proof of what was captured — displays the entries that were just saved.
159
+ * Guaranteed to show content (no network call that can fail or return empty).
160
+ * Satisfies BR-141: "First-session flow MUST end with retrieval demonstration."
161
+ */
162
+ export function showCapturedSummary(entries, capturedCount) {
163
+ if (capturedCount === 0 || entries.length === 0)
164
+ return;
165
+ process.stdout.write(`\n ${bold('Your AI tools will now remember:')}\n\n`);
166
+ for (const entry of entries.slice(0, 5)) {
167
+ process.stdout.write(` ${dim(icons.dot)} ${entry.name}\n`);
168
+ }
169
+ if (entries.length > 5) {
170
+ process.stdout.write(` ${dim(`...and ${entries.length - 5} more`)}\n`);
171
+ }
172
+ process.stdout.write('\n');
173
+ }
174
+ //# sourceMappingURL=onboarding-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-shared.js","sourceRoot":"","sources":["../../src/lib/onboarding-shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Onboarding conversation topics — coach pattern for first-time setup.
3
+ * WP-304: Each topic has goal/behaviour/criteria. LLM judges completion,
4
+ * heuristic signals are backup. Topics auto-skip when content is already covered.
5
+ */
6
+ import type { ConversationSignals } from './conversation-phases.js';
7
+ /** A conversation topic with coaching directives and completion criteria. */
8
+ export interface OnboardingTopic {
9
+ /** Unique topic identifier. */
10
+ id: string;
11
+ /** What we're trying to learn from this topic. */
12
+ goal: string;
13
+ /** How the LLM should behave during this topic. */
14
+ behaviour: string;
15
+ /** When this topic is complete — the LLM judges this. */
16
+ criteria: string;
17
+ /** Max exchanges before forced advancement. Safety valve. */
18
+ maxExchanges: number;
19
+ /** If this signal is already true, skip this topic entirely. Null = always run. */
20
+ skipIfSignal: keyof ConversationSignals | null;
21
+ /** Heuristic backup: if this signal is true, topic is complete even if LLM disagrees. */
22
+ heuristicSignal: keyof ConversationSignals | null;
23
+ }
24
+ export declare const ONBOARDING_TOPICS: OnboardingTopic[];
25
+ /** Check if user wants to skip the conversation. */
26
+ export declare function userWantsToSkip(text: string): boolean;
27
+ //# sourceMappingURL=onboarding-topics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-topics.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-topics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IAEb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAElB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IAEjB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IAErB,mFAAmF;IACnF,YAAY,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;IAE/C,yFAAyF;IACzF,eAAe,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,iBAAiB,EAAE,eAAe,EA4C9C,CAAC;AAKF,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Onboarding conversation topics — coach pattern for first-time setup.
3
+ * WP-304: Each topic has goal/behaviour/criteria. LLM judges completion,
4
+ * heuristic signals are backup. Topics auto-skip when content is already covered.
5
+ */
6
+ export const ONBOARDING_TOPICS = [
7
+ {
8
+ id: 'why_here',
9
+ goal: 'Understand what brought this person to Product Brain. Follow wherever they go — product, problem, context, or all three.',
10
+ behaviour: `Open with: "Hey, what brings you to Product Brain?"
11
+ Then follow what's interesting. If they describe a product, get curious about it.
12
+ If they describe a problem, lean in. If they're vague, ask the one thing you'd most want to know.
13
+ Never ask more than one question. Never explain what Product Brain does — they know enough to be here.`,
14
+ criteria: `The user has said something genuine — anything beyond "I don't know" or "just checking it out."
15
+ A complete sentence about their work, their problem, or their situation meets criteria.
16
+ Criteria is NOT met if the user gave only a non-answer (one word, "not sure", "just exploring").`,
17
+ maxExchanges: 3,
18
+ skipIfSignal: null,
19
+ heuristicSignal: 'hasSubstantiveAnswer',
20
+ },
21
+ {
22
+ id: 'what_they_build',
23
+ goal: 'Understand concretely what this person is building — specific enough to explain to someone else in one sentence.',
24
+ behaviour: `Pick one concrete noun or verb from their last answer and go one level deeper.
25
+ Ask about who uses it, what it replaces, or how it works today — whichever fits what they said.
26
+ Never name the category back at them ("so an AI tool?").
27
+ Never ask them to "elaborate" or "tell me more."
28
+ One direct question only.`,
29
+ criteria: `The user has described what they're building with enough specificity that you could explain it in one sentence to someone who wasn't in this conversation.
30
+ Vague answers ("a tool", "an app", "something with AI") do NOT meet criteria.
31
+ A described function, a named user group, or a concrete workflow DOES.`,
32
+ maxExchanges: 2,
33
+ skipIfSignal: 'mentionedProduct',
34
+ heuristicSignal: 'mentionedProduct',
35
+ },
36
+ {
37
+ id: 'what_is_hard',
38
+ goal: "Understand what's actually hard or broken right now — the friction that brought them here.",
39
+ behaviour: `Pick one specific thing they mentioned building and ask what breaks, what slows them down, or what they're not happy with.
40
+ Be concrete and direct: "What breaks when X?" or "Where does the rework happen?"
41
+ Not: "What challenges do you face?" or "What's the hardest part?" (too generic).
42
+ One question only.`,
43
+ criteria: `The user has described a specific friction, pain, or failure mode in their own words.
44
+ "It's hard" or "there are problems" does NOT meet criteria.
45
+ A named workflow that breaks, a named cost, or a described workaround DOES.`,
46
+ maxExchanges: 2,
47
+ skipIfSignal: 'mentionedChallenge',
48
+ heuristicSignal: 'mentionedChallenge',
49
+ },
50
+ ];
51
+ /** User wants to skip — detected by regex on user input. */
52
+ const SKIP_PATTERNS = [/\b(?:skip|done|that'?s it|wrap up|let'?s go|finish|end)\b/i];
53
+ /** Check if user wants to skip the conversation. */
54
+ export function userWantsToSkip(text) {
55
+ return SKIP_PATTERNS.some((p) => p.test(text));
56
+ }
57
+ //# sourceMappingURL=onboarding-topics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-topics.js","sourceRoot":"","sources":["../../src/lib/onboarding-topics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,0HAA0H;QAChI,SAAS,EAAE;;;uGAGwF;QACnG,QAAQ,EAAE;;iGAEmF;QAC7F,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,sBAAsB;KACxC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,kHAAkH;QACxH,SAAS,EAAE;;;;0BAIW;QACtB,QAAQ,EAAE;;uEAEyD;QACnE,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,kBAAkB;KACpC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,4FAA4F;QAClG,SAAS,EAAE;;;mBAGI;QACf,QAAQ,EAAE;;4EAE8D;QACxE,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,oBAAoB;QAClC,eAAe,EAAE,oBAAoB;KACtC;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,17 @@
1
+ /**
2
+ * Onboarding conversation — coach-pattern LLM conversation for new workspaces.
3
+ * WP-304: Topics with goal/behaviour/criteria. LLM judges completion, heuristic backup.
4
+ *
5
+ * Uses @clack/prompts (WP-303 S1) and the MCP gateway to call the
6
+ * Convex onboardingChat action for conversation and extraction,
7
+ * then chain.createEntry for batch-capture.
8
+ */
9
+ /**
10
+ * Run the onboarding conversation: topic-by-topic coach pattern, extraction, and auto-capture.
11
+ */
12
+ export declare function runOnboardingConversation(workspaceName: string): Promise<void>;
13
+ /**
14
+ * Deterministic fallback when LLM is unavailable.
15
+ */
16
+ export declare function runFallbackOnboarding(workspaceName: string): Promise<void>;
17
+ //# sourceMappingURL=onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsTpF;AAUD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEhF"}
@@ -0,0 +1,350 @@
1
+ /**
2
+ * Onboarding conversation — coach-pattern LLM conversation for new workspaces.
3
+ * WP-304: Topics with goal/behaviour/criteria. LLM judges completion, heuristic backup.
4
+ *
5
+ * Uses @clack/prompts (WP-303 S1) and the MCP gateway to call the
6
+ * Convex onboardingChat action for conversation and extraction,
7
+ * then chain.createEntry for batch-capture.
8
+ */
9
+ import { kernelCall } from './client.js';
10
+ import { ask, confirm, select } from './prompts.js';
11
+ import { bold, dim, green, icons } from './style.js';
12
+ import { trackEvent } from './telemetry.js';
13
+ import { detectSignals, mergeSignals } from './conversation-signals.js';
14
+ import { evaluateTopic, buildTopicDirective, sanitizeResponse, shouldSkipTopic, isTooSimilar } from './conversation-engine.js';
15
+ import { ONBOARDING_TOPICS, userWantsToSkip } from './onboarding-topics.js';
16
+ import { countWords, validateExtractedEntries, displayEntryExample, showCapturedSummary, batchCaptureEntries, truncate, firstNWords, } from './onboarding-shared.js';
17
+ /** Hard cap on total exchanges across all topics. */
18
+ const MAX_TOTAL_EXCHANGES = 10;
19
+ // ── Main conversation ───────────────────────────────────────────────────────
20
+ /**
21
+ * Run the onboarding conversation: topic-by-topic coach pattern, extraction, and auto-capture.
22
+ */
23
+ export async function runOnboardingConversation(workspaceName) {
24
+ trackEvent('setup_started', { mode: 'llm' });
25
+ // Initialize conversation state
26
+ const state = {
27
+ messages: [],
28
+ userMessageCount: 0,
29
+ totalUserWords: 0,
30
+ topicExchanges: {},
31
+ completedTopics: new Set(),
32
+ currentTopicId: ONBOARDING_TOPICS[0].id,
33
+ completedQA: [],
34
+ // Legacy aliases — kept for type compat during transition
35
+ phaseExchanges: {},
36
+ completedPhases: new Set(),
37
+ currentPhaseId: ONBOARDING_TOPICS[0].id,
38
+ signals: detectSignals([]),
39
+ refusalStreak: 0,
40
+ };
41
+ let totalExchanges = 0;
42
+ let emptyAttempts = 0;
43
+ const recentAssistantMessages = [];
44
+ // Step 1: Get the LLM's opening (topic 1 generates the greeting)
45
+ const firstTopic = ONBOARDING_TOPICS[0];
46
+ const openingDirective = buildTopicDirective(firstTopic, 0, ONBOARDING_TOPICS.length, [], workspaceName);
47
+ let greeting;
48
+ try {
49
+ const result = await kernelCall('onboarding.chat', {
50
+ messages: [],
51
+ workspaceName,
52
+ phaseDirective: openingDirective,
53
+ turnNumber: 1,
54
+ totalUserWords: 0,
55
+ refusalStreak: 0,
56
+ });
57
+ if (!result?.content) {
58
+ await runFallbackOnboarding(workspaceName);
59
+ return;
60
+ }
61
+ greeting = sanitizeResponse(result.content);
62
+ }
63
+ catch {
64
+ await runFallbackOnboarding(workspaceName);
65
+ return;
66
+ }
67
+ process.stdout.write(`\n ${greeting}\n\n`);
68
+ state.messages.push({ role: 'assistant', content: greeting });
69
+ recentAssistantMessages.push(greeting);
70
+ // Step 2: Topic-by-topic conversation loop
71
+ let currentTopicIndex = 0;
72
+ while (currentTopicIndex < ONBOARDING_TOPICS.length && totalExchanges < MAX_TOTAL_EXCHANGES) {
73
+ const topic = ONBOARDING_TOPICS[currentTopicIndex];
74
+ state.currentTopicId = topic.id;
75
+ // DEBUG: trace loop state
76
+ if (process.env.PB_DEBUG) {
77
+ console.error(`[DEBUG] topic=${topic.id} idx=${currentTopicIndex} exchanges=${totalExchanges} words=${state.totalUserWords} skip=${shouldSkipTopic(topic, state.signals, state.totalUserWords)}`);
78
+ }
79
+ // Skip check: if the signal for this topic is already present AND we have enough content
80
+ if (shouldSkipTopic(topic, state.signals, state.totalUserWords)) {
81
+ state.completedTopics.add(topic.id);
82
+ currentTopicIndex++;
83
+ continue;
84
+ }
85
+ // Get user input
86
+ let userInput;
87
+ try {
88
+ userInput = await ask({
89
+ message: 'You',
90
+ placeholder: totalExchanges === 0 ? 'Tell me about your product...' : '',
91
+ });
92
+ }
93
+ catch {
94
+ process.stdout.write(`\n ${dim('No worries! Run')} ${bold('pb capture')} ${dim('anytime to add knowledge.')}\n\n`);
95
+ return;
96
+ }
97
+ if (!userInput.trim()) {
98
+ emptyAttempts++;
99
+ if (emptyAttempts >= 2) {
100
+ process.stdout.write(`\n ${dim('No worries — run')} ${bold('pb capture')} ${dim('anytime to teach your AI tools more.')}\n\n`);
101
+ return;
102
+ }
103
+ process.stdout.write(` ${dim('Just hit Enter again to skip, or type anything to continue.')}\n\n`);
104
+ continue;
105
+ }
106
+ emptyAttempts = 0;
107
+ // Check if user wants to skip
108
+ if (userWantsToSkip(userInput) && state.totalUserWords > 10) {
109
+ break;
110
+ }
111
+ // Update state
112
+ state.messages.push({ role: 'user', content: userInput });
113
+ state.userMessageCount++;
114
+ state.totalUserWords += countWords(userInput);
115
+ state.topicExchanges[topic.id] = (state.topicExchanges[topic.id] ?? 0) + 1;
116
+ totalExchanges++;
117
+ // Detect refusals (very short non-answers)
118
+ const wordCount = countWords(userInput);
119
+ if (wordCount <= 2) {
120
+ state.refusalStreak++;
121
+ }
122
+ else {
123
+ state.refusalStreak = 0;
124
+ }
125
+ // Update heuristic signals
126
+ state.signals = detectSignals(state.messages);
127
+ // Get LLM response with topic directive
128
+ const topicDirective = buildTopicDirective(topic, currentTopicIndex, ONBOARDING_TOPICS.length, state.completedQA, workspaceName);
129
+ let topicComplete = false;
130
+ try {
131
+ const result = await kernelCall('onboarding.chat', {
132
+ messages: state.messages,
133
+ workspaceName,
134
+ phaseDirective: topicDirective,
135
+ turnNumber: totalExchanges + 1,
136
+ totalUserWords: state.totalUserWords,
137
+ refusalStreak: state.refusalStreak,
138
+ });
139
+ if (result?.content) {
140
+ // Merge LLM-reported signals with heuristic signals
141
+ if (result.signals) {
142
+ state.signals = mergeSignals(state.signals, result.signals);
143
+ }
144
+ // Read LLM's topic completion judgment
145
+ topicComplete = result.topicComplete ?? false;
146
+ // Post-process response
147
+ let displayMessage = sanitizeResponse(result.content);
148
+ // Detect repetition — if too similar, bump refusal streak for next call
149
+ if (isTooSimilar(displayMessage, recentAssistantMessages)) {
150
+ state.refusalStreak++;
151
+ }
152
+ process.stdout.write(`\n ${displayMessage}\n\n`);
153
+ state.messages.push({ role: 'assistant', content: displayMessage });
154
+ recentAssistantMessages.push(displayMessage);
155
+ }
156
+ }
157
+ catch (err) {
158
+ // LLM call failed — try to continue with what we have
159
+ if (process.env.PB_DEBUG)
160
+ console.error(`[DEBUG] LLM catch, breaking. Error:`, err);
161
+ break;
162
+ }
163
+ // Evaluate topic completion: LLM judgment + heuristic backup + forced advancement
164
+ const evalResult = evaluateTopic(topic, state, topicComplete);
165
+ if (process.env.PB_DEBUG) {
166
+ console.error(`[DEBUG] eval: complete=${evalResult.complete} forced=${evalResult.forced} skip=${evalResult.skip} topicComplete=${topicComplete} topicExchanges=${state.topicExchanges[topic.id]}`);
167
+ }
168
+ if (evalResult.complete) {
169
+ // Accumulate the last Q&A for context in later topics
170
+ const lastAssistant = recentAssistantMessages[recentAssistantMessages.length - 1] ?? '';
171
+ state.completedQA.push({
172
+ topicId: topic.id,
173
+ question: lastAssistant,
174
+ answer: userInput,
175
+ });
176
+ state.completedTopics.add(topic.id);
177
+ currentTopicIndex++;
178
+ }
179
+ // else: stay in current topic, loop again
180
+ }
181
+ // Hard floor: barely any content — offer manual capture
182
+ // Threshold: 3 words means basically no real content. Previous threshold of 10
183
+ // was too aggressive — 3 short answers can be valid (e.g., "a finance app" + "me" = 4 words).
184
+ if (state.totalUserWords < 3 && state.userMessageCount > 0) {
185
+ process.stdout.write(`\n ${dim('No problem — you can add knowledge at your own pace with')} ${bold('pb capture')}\n\n`);
186
+ trackEvent('setup_completed', { capturedCount: 0, reason: 'insufficient_content' });
187
+ return;
188
+ }
189
+ trackEvent('first_capture_prompted', { mode: 'llm', exchanges: totalExchanges });
190
+ // Step 3: Extract structured data from conversation
191
+ if (state.messages.filter((m) => m.role === 'user').length === 0) {
192
+ process.stdout.write(`\n ${dim('No worries! Run')} ${bold('pb capture')} ${dim('anytime to add knowledge.')}\n\n`);
193
+ return;
194
+ }
195
+ let entriesToCapture;
196
+ try {
197
+ const result = await kernelCall('onboarding.chat', {
198
+ messages: state.messages,
199
+ workspaceName,
200
+ mode: 'extract',
201
+ });
202
+ if (!result?.entries?.length) {
203
+ process.stdout.write(`\n ${dim("Couldn't organize your answers just yet. Try")} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
204
+ return;
205
+ }
206
+ entriesToCapture = validateExtractedEntries(result.entries).slice(0, 5);
207
+ }
208
+ catch {
209
+ process.stdout.write(`\n ${dim("Couldn't organize your answers just yet. Try")} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
210
+ return;
211
+ }
212
+ if (entriesToCapture.length === 0) {
213
+ process.stdout.write(`\n ${dim('Nothing to save yet. Try')} ${bold('pb capture')} ${dim('to add knowledge manually.')}\n\n`);
214
+ return;
215
+ }
216
+ // Step 4: Show ONE example with schema, offer to browse more
217
+ const itemCount = entriesToCapture.length;
218
+ process.stdout.write(`\n From this conversation, I'd remember ${bold(String(itemCount))} item${itemCount === 1 ? '' : 's'}.\n`);
219
+ process.stdout.write(` Here's an example:\n\n`);
220
+ displayEntryExample(entriesToCapture[0]);
221
+ let exampleIndex = 1;
222
+ let shouldSave = false;
223
+ // eslint-disable-next-line no-constant-condition
224
+ while (true) {
225
+ const hasMoreExamples = exampleIndex < entriesToCapture.length;
226
+ const options = [
227
+ { value: 'save', label: 'Save all to my product brain', hint: `${itemCount} item${itemCount === 1 ? '' : 's'}` },
228
+ ];
229
+ if (hasMoreExamples) {
230
+ options.push({ value: 'another', label: 'Show another example' });
231
+ }
232
+ options.push({ value: 'skip', label: 'Not right now' });
233
+ let choice;
234
+ try {
235
+ choice = await select({
236
+ message: '',
237
+ options,
238
+ });
239
+ }
240
+ catch {
241
+ process.stdout.write(`\n ${dim('No problem — run')} ${bold('pb capture')} ${dim('anytime.')}\n\n`);
242
+ return;
243
+ }
244
+ if (choice === 'skip') {
245
+ process.stdout.write(`\n ${dim('No problem — run')} ${bold('pb capture')} ${dim('anytime to add more.')}\n\n`);
246
+ return;
247
+ }
248
+ if (choice === 'save') {
249
+ shouldSave = true;
250
+ break;
251
+ }
252
+ if (choice === 'another') {
253
+ displayEntryExample(entriesToCapture[exampleIndex]);
254
+ exampleIndex++;
255
+ }
256
+ }
257
+ if (!shouldSave)
258
+ return;
259
+ // Step 5: Batch-capture entries
260
+ const { capturedCount, errors } = await batchCaptureEntries(entriesToCapture);
261
+ // Step 6: Report results
262
+ if (capturedCount > 0) {
263
+ process.stdout.write(`\n ${green(icons.pass)} Saved ${capturedCount} item${capturedCount === 1 ? '' : 's'} to your product brain.\n`);
264
+ trackEvent('capture_completed', { mode: 'llm', count: capturedCount });
265
+ }
266
+ if (errors.length > 0) {
267
+ process.stdout.write(`\n ${dim(`${errors.length} couldn't be saved.`)}\n`);
268
+ }
269
+ // Step 7: Deterministic proof + closing
270
+ showCapturedSummary(entriesToCapture, capturedCount);
271
+ process.stdout.write(` ${dim('Run')} ${bold('pb capture')} ${dim('anytime to teach your AI tools more.')}\n\n`);
272
+ trackEvent('setup_completed', { capturedCount });
273
+ }
274
+ // ── Deterministic fallback ──────────────────────────────────────────��─────
275
+ const FALLBACK_QUESTIONS = [
276
+ { message: 'What are you building?', placeholder: 'A tool for...' },
277
+ { message: 'Who is it for?', placeholder: 'Developers, designers, teams...' },
278
+ { message: "What's the biggest challenge right now?", placeholder: 'Scaling, onboarding, pricing...' },
279
+ ];
280
+ /**
281
+ * Deterministic fallback when LLM is unavailable.
282
+ */
283
+ export async function runFallbackOnboarding(workspaceName) {
284
+ trackEvent('setup_started', { mode: 'fallback' });
285
+ process.stdout.write(`\n ${bold(`Let me learn about ${workspaceName}.`)} ${dim('(Quick — 3 questions)')}\n\n`);
286
+ const answers = [];
287
+ for (const q of FALLBACK_QUESTIONS) {
288
+ try {
289
+ const answer = await ask({ message: q.message, placeholder: q.placeholder });
290
+ if (answer.trim())
291
+ answers.push(answer.trim());
292
+ }
293
+ catch {
294
+ break;
295
+ }
296
+ }
297
+ if (answers.length === 0) {
298
+ process.stdout.write(`\n ${dim('No worries! Add knowledge anytime with')} ${bold('pb capture')}\n\n`);
299
+ return;
300
+ }
301
+ trackEvent('first_capture_prompted', { mode: 'fallback' });
302
+ const entriesToCapture = [];
303
+ if (answers[0]) {
304
+ entriesToCapture.push({
305
+ collection: 'strategy',
306
+ name: 'Product Vision',
307
+ description: answers[0],
308
+ typeLabel: "What you're building",
309
+ });
310
+ }
311
+ if (answers[1]) {
312
+ entriesToCapture.push({
313
+ collection: 'audiences',
314
+ name: firstNWords(answers[1], 6),
315
+ description: answers[1],
316
+ typeLabel: "Who it's for",
317
+ });
318
+ }
319
+ if (answers[2]) {
320
+ entriesToCapture.push({
321
+ collection: 'tensions',
322
+ name: truncate(answers[2], 120),
323
+ description: answers[2],
324
+ typeLabel: "A challenge you're facing",
325
+ });
326
+ }
327
+ // Show extraction
328
+ process.stdout.write('\n');
329
+ for (const entry of entriesToCapture) {
330
+ displayEntryExample(entry);
331
+ }
332
+ let approved;
333
+ try {
334
+ approved = await confirm({ message: 'Ready to save these to your product brain?', initialValue: true });
335
+ }
336
+ catch {
337
+ return;
338
+ }
339
+ if (!approved)
340
+ return;
341
+ const { capturedCount } = await batchCaptureEntries(entriesToCapture);
342
+ if (capturedCount > 0) {
343
+ process.stdout.write(`\n ${green(icons.pass)} Saved ${capturedCount} item${capturedCount === 1 ? '' : 's'} to your product brain.\n`);
344
+ trackEvent('capture_completed', { mode: 'fallback', count: capturedCount });
345
+ }
346
+ showCapturedSummary(entriesToCapture, capturedCount);
347
+ process.stdout.write(` ${dim('Run')} ${bold('pb capture')} ${dim('anytime to teach your AI tools more.')}\n\n`);
348
+ trackEvent('setup_completed', { mode: 'fallback', capturedCount });
349
+ }
350
+ //# sourceMappingURL=onboarding.js.map