@productbrain/cli 0.1.0-beta.18 → 0.1.0-beta.1801

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 (974) hide show
  1. package/README.md +72 -172
  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 +470 -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 +473 -40
  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 +424 -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 +950 -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 +1255 -0
  87. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  88. package/dist/__tests__/handshake.test.js +796 -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.js +292 -11
  133. package/dist/__tests__/orient.test.js.map +1 -1
  134. package/dist/__tests__/perimeter.test.d.ts +2 -0
  135. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  136. package/dist/__tests__/perimeter.test.js +165 -0
  137. package/dist/__tests__/perimeter.test.js.map +1 -0
  138. package/dist/__tests__/personal-layer.test.d.ts +11 -0
  139. package/dist/__tests__/personal-layer.test.d.ts.map +1 -0
  140. package/dist/__tests__/personal-layer.test.js +268 -0
  141. package/dist/__tests__/personal-layer.test.js.map +1 -0
  142. package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
  143. package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
  144. package/dist/__tests__/preview-key-refresh.test.js +126 -0
  145. package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
  146. package/dist/__tests__/profiles.test.d.ts +2 -0
  147. package/dist/__tests__/profiles.test.d.ts.map +1 -0
  148. package/dist/__tests__/profiles.test.js +316 -0
  149. package/dist/__tests__/profiles.test.js.map +1 -0
  150. package/dist/__tests__/promote-batch.test.d.ts +2 -0
  151. package/dist/__tests__/promote-batch.test.d.ts.map +1 -0
  152. package/dist/__tests__/promote-batch.test.js +185 -0
  153. package/dist/__tests__/promote-batch.test.js.map +1 -0
  154. package/dist/__tests__/promote.test.js +182 -37
  155. package/dist/__tests__/promote.test.js.map +1 -1
  156. package/dist/__tests__/prompts.test.d.ts +6 -0
  157. package/dist/__tests__/prompts.test.d.ts.map +1 -0
  158. package/dist/__tests__/prompts.test.js +146 -0
  159. package/dist/__tests__/prompts.test.js.map +1 -0
  160. package/dist/__tests__/proof-run.test.d.ts +2 -0
  161. package/dist/__tests__/proof-run.test.d.ts.map +1 -0
  162. package/dist/__tests__/proof-run.test.js +255 -0
  163. package/dist/__tests__/proof-run.test.js.map +1 -0
  164. package/dist/__tests__/proposals.test.js +24 -47
  165. package/dist/__tests__/proposals.test.js.map +1 -1
  166. package/dist/__tests__/relate.test.js +34 -36
  167. package/dist/__tests__/relate.test.js.map +1 -1
  168. package/dist/__tests__/repo-detect.test.js +97 -1
  169. package/dist/__tests__/repo-detect.test.js.map +1 -1
  170. package/dist/__tests__/runner.test.js +19 -15
  171. package/dist/__tests__/runner.test.js.map +1 -1
  172. package/dist/__tests__/session-close-loop.test.d.ts +2 -0
  173. package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
  174. package/dist/__tests__/session-close-loop.test.js +231 -0
  175. package/dist/__tests__/session-close-loop.test.js.map +1 -0
  176. package/dist/__tests__/session-reset.test.d.ts +2 -0
  177. package/dist/__tests__/session-reset.test.d.ts.map +1 -0
  178. package/dist/__tests__/session-reset.test.js +122 -0
  179. package/dist/__tests__/session-reset.test.js.map +1 -0
  180. package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
  181. package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
  182. package/dist/__tests__/session-resume-backstop.test.js +97 -0
  183. package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
  184. package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
  185. package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
  186. package/dist/__tests__/session-start-key-refresh.test.js +179 -0
  187. package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
  188. package/dist/__tests__/session-state-machine.test.d.ts +2 -0
  189. package/dist/__tests__/session-state-machine.test.d.ts.map +1 -0
  190. package/dist/__tests__/session-state-machine.test.js +198 -0
  191. package/dist/__tests__/session-state-machine.test.js.map +1 -0
  192. package/dist/__tests__/session-switch.test.d.ts +2 -0
  193. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  194. package/dist/__tests__/session-switch.test.js +130 -0
  195. package/dist/__tests__/session-switch.test.js.map +1 -0
  196. package/dist/__tests__/session-touch.test.js +11 -11
  197. package/dist/__tests__/session-touch.test.js.map +1 -1
  198. package/dist/__tests__/session.test.js +4 -10
  199. package/dist/__tests__/session.test.js.map +1 -1
  200. package/dist/__tests__/setup-ingest.test.d.ts +2 -0
  201. package/dist/__tests__/setup-ingest.test.d.ts.map +1 -0
  202. package/dist/__tests__/setup-ingest.test.js +71 -0
  203. package/dist/__tests__/setup-ingest.test.js.map +1 -0
  204. package/dist/__tests__/setup-resolver.test.d.ts +14 -0
  205. package/dist/__tests__/setup-resolver.test.d.ts.map +1 -0
  206. package/dist/__tests__/setup-resolver.test.js +228 -0
  207. package/dist/__tests__/setup-resolver.test.js.map +1 -0
  208. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  209. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  210. package/dist/__tests__/skill-vocabulary.test.js +192 -0
  211. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  212. package/dist/__tests__/spinner-labels.test.d.ts +2 -0
  213. package/dist/__tests__/spinner-labels.test.d.ts.map +1 -0
  214. package/dist/__tests__/spinner-labels.test.js +23 -0
  215. package/dist/__tests__/spinner-labels.test.js.map +1 -0
  216. package/dist/__tests__/state.test.d.ts +6 -0
  217. package/dist/__tests__/state.test.d.ts.map +1 -0
  218. package/dist/__tests__/state.test.js +97 -0
  219. package/dist/__tests__/state.test.js.map +1 -0
  220. package/dist/__tests__/surface-profiles.test.d.ts +2 -0
  221. package/dist/__tests__/surface-profiles.test.d.ts.map +1 -0
  222. package/dist/__tests__/surface-profiles.test.js +233 -0
  223. package/dist/__tests__/surface-profiles.test.js.map +1 -0
  224. package/dist/__tests__/surfaces.test.d.ts +2 -0
  225. package/dist/__tests__/surfaces.test.d.ts.map +1 -0
  226. package/dist/__tests__/surfaces.test.js +46 -0
  227. package/dist/__tests__/surfaces.test.js.map +1 -0
  228. package/dist/__tests__/update-check.test.d.ts +2 -0
  229. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  230. package/dist/__tests__/update-check.test.js +215 -0
  231. package/dist/__tests__/update-check.test.js.map +1 -0
  232. package/dist/__tests__/update.test.js +60 -72
  233. package/dist/__tests__/update.test.js.map +1 -1
  234. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  235. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  236. package/dist/__tests__/upgrade-runner.test.js +54 -0
  237. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  238. package/dist/__tests__/upgrade.test.d.ts +2 -0
  239. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  240. package/dist/__tests__/upgrade.test.js +56 -0
  241. package/dist/__tests__/upgrade.test.js.map +1 -0
  242. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  243. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  244. package/dist/__tests__/vocabulary-leak.test.js +534 -0
  245. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  246. package/dist/__tests__/workspace.test.d.ts +2 -0
  247. package/dist/__tests__/workspace.test.d.ts.map +1 -0
  248. package/dist/__tests__/workspace.test.js +328 -0
  249. package/dist/__tests__/workspace.test.js.map +1 -0
  250. package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
  251. package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
  252. package/dist/__tests__/workspaceNotice.test.js +338 -0
  253. package/dist/__tests__/workspaceNotice.test.js.map +1 -0
  254. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  255. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  256. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  257. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  258. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
  259. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
  260. package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
  261. package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
  262. package/dist/commands/__tests__/setup-state.test.d.ts +2 -0
  263. package/dist/commands/__tests__/setup-state.test.d.ts.map +1 -0
  264. package/dist/commands/__tests__/setup-state.test.js +194 -0
  265. package/dist/commands/__tests__/setup-state.test.js.map +1 -0
  266. package/dist/commands/accept.d.ts.map +1 -1
  267. package/dist/commands/accept.js +10 -6
  268. package/dist/commands/accept.js.map +1 -1
  269. package/dist/commands/admin/cockpit.d.ts +90 -0
  270. package/dist/commands/admin/cockpit.d.ts.map +1 -0
  271. package/dist/commands/admin/cockpit.js +618 -0
  272. package/dist/commands/admin/cockpit.js.map +1 -0
  273. package/dist/commands/admin/index.d.ts +21 -0
  274. package/dist/commands/admin/index.d.ts.map +1 -0
  275. package/dist/commands/admin/index.js +256 -0
  276. package/dist/commands/admin/index.js.map +1 -0
  277. package/dist/commands/admin/inspect.d.ts +30 -0
  278. package/dist/commands/admin/inspect.d.ts.map +1 -0
  279. package/dist/commands/admin/inspect.js +555 -0
  280. package/dist/commands/admin/inspect.js.map +1 -0
  281. package/dist/commands/admin/inspect.test.d.ts +7 -0
  282. package/dist/commands/admin/inspect.test.d.ts.map +1 -0
  283. package/dist/commands/admin/inspect.test.js +90 -0
  284. package/dist/commands/admin/inspect.test.js.map +1 -0
  285. package/dist/commands/admin/manage.d.ts +8 -0
  286. package/dist/commands/admin/manage.d.ts.map +1 -0
  287. package/dist/commands/admin/manage.js +260 -0
  288. package/dist/commands/admin/manage.js.map +1 -0
  289. package/dist/commands/admin/manage.test.d.ts +16 -0
  290. package/dist/commands/admin/manage.test.d.ts.map +1 -0
  291. package/dist/commands/admin/manage.test.js +159 -0
  292. package/dist/commands/admin/manage.test.js.map +1 -0
  293. package/dist/commands/admin/seed.d.ts +75 -0
  294. package/dist/commands/admin/seed.d.ts.map +1 -0
  295. package/dist/commands/admin/seed.js +944 -0
  296. package/dist/commands/admin/seed.js.map +1 -0
  297. package/dist/commands/admin/seed.test.d.ts +11 -0
  298. package/dist/commands/admin/seed.test.d.ts.map +1 -0
  299. package/dist/commands/admin/seed.test.js +127 -0
  300. package/dist/commands/admin/seed.test.js.map +1 -0
  301. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  302. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  303. package/dist/commands/admin/seedRegistryEntries.generated.js +144 -0
  304. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  305. package/dist/commands/admin/seedRegistryEntries.test.d.ts +11 -0
  306. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  307. package/dist/commands/admin/seedRegistryEntries.test.js +70 -0
  308. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  309. package/dist/commands/audit.d.ts.map +1 -1
  310. package/dist/commands/audit.js +42 -7
  311. package/dist/commands/audit.js.map +1 -1
  312. package/dist/commands/authority-domains.d.ts +157 -0
  313. package/dist/commands/authority-domains.d.ts.map +1 -0
  314. package/dist/commands/authority-domains.js +356 -0
  315. package/dist/commands/authority-domains.js.map +1 -0
  316. package/dist/commands/brief.d.ts.map +1 -1
  317. package/dist/commands/brief.js +10 -5
  318. package/dist/commands/brief.js.map +1 -1
  319. package/dist/commands/capture.d.ts +9 -0
  320. package/dist/commands/capture.d.ts.map +1 -1
  321. package/dist/commands/capture.js +301 -54
  322. package/dist/commands/capture.js.map +1 -1
  323. package/dist/commands/chain-walk.d.ts.map +1 -1
  324. package/dist/commands/chain-walk.js +8 -3
  325. package/dist/commands/chain-walk.js.map +1 -1
  326. package/dist/commands/changes.d.ts.map +1 -1
  327. package/dist/commands/changes.js +8 -3
  328. package/dist/commands/changes.js.map +1 -1
  329. package/dist/commands/codex-prep.d.ts +23 -0
  330. package/dist/commands/codex-prep.d.ts.map +1 -0
  331. package/dist/commands/codex-prep.js +56 -0
  332. package/dist/commands/codex-prep.js.map +1 -0
  333. package/dist/commands/collections.d.ts +22 -0
  334. package/dist/commands/collections.d.ts.map +1 -0
  335. package/dist/commands/collections.js +77 -0
  336. package/dist/commands/collections.js.map +1 -0
  337. package/dist/commands/connect-config.test.d.ts +2 -0
  338. package/dist/commands/connect-config.test.d.ts.map +1 -0
  339. package/dist/commands/connect-config.test.js +44 -0
  340. package/dist/commands/connect-config.test.js.map +1 -0
  341. package/dist/commands/connect-context.d.ts +45 -0
  342. package/dist/commands/connect-context.d.ts.map +1 -0
  343. package/dist/commands/connect-context.js +83 -0
  344. package/dist/commands/connect-context.js.map +1 -0
  345. package/dist/commands/connect-context.test.d.ts +2 -0
  346. package/dist/commands/connect-context.test.d.ts.map +1 -0
  347. package/dist/commands/connect-context.test.js +158 -0
  348. package/dist/commands/connect-context.test.js.map +1 -0
  349. package/dist/commands/connect-handoff.d.ts +51 -0
  350. package/dist/commands/connect-handoff.d.ts.map +1 -0
  351. package/dist/commands/connect-handoff.js +70 -0
  352. package/dist/commands/connect-handoff.js.map +1 -0
  353. package/dist/commands/connect-integration.test.d.ts +7 -0
  354. package/dist/commands/connect-integration.test.d.ts.map +1 -0
  355. package/dist/commands/connect-integration.test.js +219 -0
  356. package/dist/commands/connect-integration.test.js.map +1 -0
  357. package/dist/commands/connect-screens.d.ts +33 -0
  358. package/dist/commands/connect-screens.d.ts.map +1 -0
  359. package/dist/commands/connect-screens.js +124 -0
  360. package/dist/commands/connect-screens.js.map +1 -0
  361. package/dist/commands/connect.d.ts +42 -0
  362. package/dist/commands/connect.d.ts.map +1 -0
  363. package/dist/commands/connect.js +338 -0
  364. package/dist/commands/connect.js.map +1 -0
  365. package/dist/commands/connect.test.d.ts +6 -0
  366. package/dist/commands/connect.test.d.ts.map +1 -0
  367. package/dist/commands/connect.test.js +380 -0
  368. package/dist/commands/connect.test.js.map +1 -0
  369. package/dist/commands/constellation.d.ts.map +1 -1
  370. package/dist/commands/constellation.js +8 -3
  371. package/dist/commands/constellation.js.map +1 -1
  372. package/dist/commands/context.d.ts.map +1 -1
  373. package/dist/commands/context.js +8 -3
  374. package/dist/commands/context.js.map +1 -1
  375. package/dist/commands/cross-cut.js +2 -2
  376. package/dist/commands/cross-cut.js.map +1 -1
  377. package/dist/commands/doctor.d.ts +18 -0
  378. package/dist/commands/doctor.d.ts.map +1 -0
  379. package/dist/commands/doctor.js +297 -0
  380. package/dist/commands/doctor.js.map +1 -0
  381. package/dist/commands/doctor.test.d.ts +8 -0
  382. package/dist/commands/doctor.test.d.ts.map +1 -0
  383. package/dist/commands/doctor.test.js +461 -0
  384. package/dist/commands/doctor.test.js.map +1 -0
  385. package/dist/commands/fields.d.ts.map +1 -1
  386. package/dist/commands/fields.js +8 -4
  387. package/dist/commands/fields.js.map +1 -1
  388. package/dist/commands/files.d.ts +26 -0
  389. package/dist/commands/files.d.ts.map +1 -0
  390. package/dist/commands/files.js +160 -0
  391. package/dist/commands/files.js.map +1 -0
  392. package/dist/commands/files.test.d.ts +2 -0
  393. package/dist/commands/files.test.d.ts.map +1 -0
  394. package/dist/commands/files.test.js +243 -0
  395. package/dist/commands/files.test.js.map +1 -0
  396. package/dist/commands/get.d.ts.map +1 -1
  397. package/dist/commands/get.js +14 -6
  398. package/dist/commands/get.js.map +1 -1
  399. package/dist/commands/handshake.d.ts +227 -2
  400. package/dist/commands/handshake.d.ts.map +1 -1
  401. package/dist/commands/handshake.js +2332 -87
  402. package/dist/commands/handshake.js.map +1 -1
  403. package/dist/commands/ingest.d.ts.map +1 -1
  404. package/dist/commands/ingest.js +17 -9
  405. package/dist/commands/ingest.js.map +1 -1
  406. package/dist/commands/init.d.ts +14 -0
  407. package/dist/commands/init.d.ts.map +1 -0
  408. package/dist/commands/init.js +109 -0
  409. package/dist/commands/init.js.map +1 -0
  410. package/dist/commands/login.d.ts +4 -0
  411. package/dist/commands/login.d.ts.map +1 -1
  412. package/dist/commands/login.js +101 -38
  413. package/dist/commands/login.js.map +1 -1
  414. package/dist/commands/method.d.ts +99 -0
  415. package/dist/commands/method.d.ts.map +1 -0
  416. package/dist/commands/method.js +804 -0
  417. package/dist/commands/method.js.map +1 -0
  418. package/dist/commands/migrate-setup.d.ts +18 -0
  419. package/dist/commands/migrate-setup.d.ts.map +1 -0
  420. package/dist/commands/migrate-setup.js +148 -0
  421. package/dist/commands/migrate-setup.js.map +1 -0
  422. package/dist/commands/orient.d.ts +97 -2
  423. package/dist/commands/orient.d.ts.map +1 -1
  424. package/dist/commands/orient.js +127 -7
  425. package/dist/commands/orient.js.map +1 -1
  426. package/dist/commands/profile.d.ts +34 -0
  427. package/dist/commands/profile.d.ts.map +1 -0
  428. package/dist/commands/profile.js +165 -0
  429. package/dist/commands/profile.js.map +1 -0
  430. package/dist/commands/promote.d.ts +12 -1
  431. package/dist/commands/promote.d.ts.map +1 -1
  432. package/dist/commands/promote.js +198 -54
  433. package/dist/commands/promote.js.map +1 -1
  434. package/dist/commands/proof-run.d.ts +51 -0
  435. package/dist/commands/proof-run.d.ts.map +1 -0
  436. package/dist/commands/proof-run.js +209 -0
  437. package/dist/commands/proof-run.js.map +1 -0
  438. package/dist/commands/proposals.js +2 -2
  439. package/dist/commands/proposals.js.map +1 -1
  440. package/dist/commands/reject.d.ts.map +1 -1
  441. package/dist/commands/reject.js +14 -7
  442. package/dist/commands/reject.js.map +1 -1
  443. package/dist/commands/relate.d.ts.map +1 -1
  444. package/dist/commands/relate.js +55 -17
  445. package/dist/commands/relate.js.map +1 -1
  446. package/dist/commands/scoreboard.d.ts +28 -0
  447. package/dist/commands/scoreboard.d.ts.map +1 -0
  448. package/dist/commands/scoreboard.js +40 -0
  449. package/dist/commands/scoreboard.js.map +1 -0
  450. package/dist/commands/search.js +2 -2
  451. package/dist/commands/search.js.map +1 -1
  452. package/dist/commands/session.d.ts +26 -2
  453. package/dist/commands/session.d.ts.map +1 -1
  454. package/dist/commands/session.js +355 -41
  455. package/dist/commands/session.js.map +1 -1
  456. package/dist/commands/setup-audit.d.ts +59 -0
  457. package/dist/commands/setup-audit.d.ts.map +1 -0
  458. package/dist/commands/setup-audit.js +250 -0
  459. package/dist/commands/setup-audit.js.map +1 -0
  460. package/dist/commands/setup-detect-surfaces.d.ts +38 -0
  461. package/dist/commands/setup-detect-surfaces.d.ts.map +1 -0
  462. package/dist/commands/setup-detect-surfaces.js +76 -0
  463. package/dist/commands/setup-detect-surfaces.js.map +1 -0
  464. package/dist/commands/setup-ingest.d.ts +17 -0
  465. package/dist/commands/setup-ingest.d.ts.map +1 -0
  466. package/dist/commands/setup-ingest.js +174 -0
  467. package/dist/commands/setup-ingest.js.map +1 -0
  468. package/dist/commands/setup-resolver.d.ts +58 -0
  469. package/dist/commands/setup-resolver.d.ts.map +1 -0
  470. package/dist/commands/setup-resolver.js +150 -0
  471. package/dist/commands/setup-resolver.js.map +1 -0
  472. package/dist/commands/setup-state.d.ts +42 -0
  473. package/dist/commands/setup-state.d.ts.map +1 -0
  474. package/dist/commands/setup-state.js +93 -0
  475. package/dist/commands/setup-state.js.map +1 -0
  476. package/dist/commands/setup.d.ts +23 -0
  477. package/dist/commands/setup.d.ts.map +1 -0
  478. package/dist/commands/setup.js +69 -0
  479. package/dist/commands/setup.js.map +1 -0
  480. package/dist/commands/update.d.ts +9 -0
  481. package/dist/commands/update.d.ts.map +1 -1
  482. package/dist/commands/update.js +85 -44
  483. package/dist/commands/update.js.map +1 -1
  484. package/dist/commands/upgrade.d.ts +5 -0
  485. package/dist/commands/upgrade.d.ts.map +1 -0
  486. package/dist/commands/upgrade.js +110 -0
  487. package/dist/commands/upgrade.js.map +1 -0
  488. package/dist/commands/usage.d.ts +40 -0
  489. package/dist/commands/usage.d.ts.map +1 -0
  490. package/dist/commands/usage.js +232 -0
  491. package/dist/commands/usage.js.map +1 -0
  492. package/dist/commands/verify.d.ts.map +1 -1
  493. package/dist/commands/verify.js +14 -7
  494. package/dist/commands/verify.js.map +1 -1
  495. package/dist/commands/welcome.d.ts +21 -0
  496. package/dist/commands/welcome.d.ts.map +1 -0
  497. package/dist/commands/welcome.js +50 -0
  498. package/dist/commands/welcome.js.map +1 -0
  499. package/dist/commands/whoami.d.ts +12 -0
  500. package/dist/commands/whoami.d.ts.map +1 -0
  501. package/dist/commands/whoami.js +70 -0
  502. package/dist/commands/whoami.js.map +1 -0
  503. package/dist/commands/whoami.test.d.ts +2 -0
  504. package/dist/commands/whoami.test.d.ts.map +1 -0
  505. package/dist/commands/whoami.test.js +50 -0
  506. package/dist/commands/whoami.test.js.map +1 -0
  507. package/dist/commands/workspace.d.ts +113 -0
  508. package/dist/commands/workspace.d.ts.map +1 -0
  509. package/dist/commands/workspace.js +263 -0
  510. package/dist/commands/workspace.js.map +1 -0
  511. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  512. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  513. package/dist/formatters/__tests__/orient-provenance.test.js +454 -0
  514. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  515. package/dist/formatters/__tests__/session.test.d.ts +2 -0
  516. package/dist/formatters/__tests__/session.test.d.ts.map +1 -0
  517. package/dist/formatters/__tests__/session.test.js +113 -0
  518. package/dist/formatters/__tests__/session.test.js.map +1 -0
  519. package/dist/formatters/audit.d.ts +6 -0
  520. package/dist/formatters/audit.d.ts.map +1 -1
  521. package/dist/formatters/audit.js.map +1 -1
  522. package/dist/formatters/capture.d.ts +26 -3
  523. package/dist/formatters/capture.d.ts.map +1 -1
  524. package/dist/formatters/capture.js +25 -1
  525. package/dist/formatters/capture.js.map +1 -1
  526. package/dist/formatters/collections.d.ts +40 -0
  527. package/dist/formatters/collections.d.ts.map +1 -0
  528. package/dist/formatters/collections.js +93 -0
  529. package/dist/formatters/collections.js.map +1 -0
  530. package/dist/formatters/entry.d.ts +30 -4
  531. package/dist/formatters/entry.d.ts.map +1 -1
  532. package/dist/formatters/entry.js +66 -17
  533. package/dist/formatters/entry.js.map +1 -1
  534. package/dist/formatters/handshake.d.ts +45 -0
  535. package/dist/formatters/handshake.d.ts.map +1 -1
  536. package/dist/formatters/handshake.js +150 -3
  537. package/dist/formatters/handshake.js.map +1 -1
  538. package/dist/formatters/orient.d.ts +169 -4
  539. package/dist/formatters/orient.d.ts.map +1 -1
  540. package/dist/formatters/orient.js +265 -22
  541. package/dist/formatters/orient.js.map +1 -1
  542. package/dist/formatters/promote.d.ts +6 -0
  543. package/dist/formatters/promote.d.ts.map +1 -1
  544. package/dist/formatters/promote.js +8 -0
  545. package/dist/formatters/promote.js.map +1 -1
  546. package/dist/formatters/relate.d.ts +2 -0
  547. package/dist/formatters/relate.d.ts.map +1 -1
  548. package/dist/formatters/relate.js +3 -0
  549. package/dist/formatters/relate.js.map +1 -1
  550. package/dist/formatters/scoreboard.d.ts +11 -0
  551. package/dist/formatters/scoreboard.d.ts.map +1 -0
  552. package/dist/formatters/scoreboard.js +48 -0
  553. package/dist/formatters/scoreboard.js.map +1 -0
  554. package/dist/formatters/search.d.ts +0 -4
  555. package/dist/formatters/search.d.ts.map +1 -1
  556. package/dist/formatters/search.js +4 -1
  557. package/dist/formatters/search.js.map +1 -1
  558. package/dist/formatters/session.d.ts +39 -2
  559. package/dist/formatters/session.d.ts.map +1 -1
  560. package/dist/formatters/session.js +130 -9
  561. package/dist/formatters/session.js.map +1 -1
  562. package/dist/formatters/update.d.ts.map +1 -1
  563. package/dist/formatters/update.js +2 -0
  564. package/dist/formatters/update.js.map +1 -1
  565. package/dist/generators/adapters.d.ts +70 -4
  566. package/dist/generators/adapters.d.ts.map +1 -1
  567. package/dist/generators/adapters.js +211 -11
  568. package/dist/generators/adapters.js.map +1 -1
  569. package/dist/generators/archetypes.d.ts +52 -0
  570. package/dist/generators/archetypes.d.ts.map +1 -0
  571. package/dist/generators/archetypes.js +190 -0
  572. package/dist/generators/archetypes.js.map +1 -0
  573. package/dist/generators/archetypes.test.d.ts +2 -0
  574. package/dist/generators/archetypes.test.d.ts.map +1 -0
  575. package/dist/generators/archetypes.test.js +272 -0
  576. package/dist/generators/archetypes.test.js.map +1 -0
  577. package/dist/generators/boundary-manifest.d.ts +29 -0
  578. package/dist/generators/boundary-manifest.d.ts.map +1 -0
  579. package/dist/generators/boundary-manifest.js +183 -0
  580. package/dist/generators/boundary-manifest.js.map +1 -0
  581. package/dist/generators/boundary-manifest.test.d.ts +2 -0
  582. package/dist/generators/boundary-manifest.test.d.ts.map +1 -0
  583. package/dist/generators/boundary-manifest.test.js +91 -0
  584. package/dist/generators/boundary-manifest.test.js.map +1 -0
  585. package/dist/generators/chain-classifier.d.ts +63 -0
  586. package/dist/generators/chain-classifier.d.ts.map +1 -0
  587. package/dist/generators/chain-classifier.js +131 -0
  588. package/dist/generators/chain-classifier.js.map +1 -0
  589. package/dist/generators/chain-classifier.test.d.ts +2 -0
  590. package/dist/generators/chain-classifier.test.d.ts.map +1 -0
  591. package/dist/generators/chain-classifier.test.js +371 -0
  592. package/dist/generators/chain-classifier.test.js.map +1 -0
  593. package/dist/generators/chain-rules.d.ts +42 -0
  594. package/dist/generators/chain-rules.d.ts.map +1 -0
  595. package/dist/generators/chain-rules.js +152 -0
  596. package/dist/generators/chain-rules.js.map +1 -0
  597. package/dist/generators/chain-rules.test.d.ts +2 -0
  598. package/dist/generators/chain-rules.test.d.ts.map +1 -0
  599. package/dist/generators/chain-rules.test.js +211 -0
  600. package/dist/generators/chain-rules.test.js.map +1 -0
  601. package/dist/generators/context-md.d.ts +1 -1
  602. package/dist/generators/context-md.d.ts.map +1 -1
  603. package/dist/generators/context-md.js +18 -7
  604. package/dist/generators/context-md.js.map +1 -1
  605. package/dist/generators/handshake-diff.d.ts +67 -0
  606. package/dist/generators/handshake-diff.d.ts.map +1 -0
  607. package/dist/generators/handshake-diff.js +183 -0
  608. package/dist/generators/handshake-diff.js.map +1 -0
  609. package/dist/generators/handshake-diff.test.d.ts +2 -0
  610. package/dist/generators/handshake-diff.test.d.ts.map +1 -0
  611. package/dist/generators/handshake-diff.test.js +264 -0
  612. package/dist/generators/handshake-diff.test.js.map +1 -0
  613. package/dist/generators/manifest.d.ts +115 -0
  614. package/dist/generators/manifest.d.ts.map +1 -0
  615. package/dist/generators/manifest.js +277 -0
  616. package/dist/generators/manifest.js.map +1 -0
  617. package/dist/generators/portable-knowledge.d.ts +93 -10
  618. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  619. package/dist/generators/portable-knowledge.js +315 -20
  620. package/dist/generators/portable-knowledge.js.map +1 -1
  621. package/dist/generators/portable-knowledge.test.js +500 -1
  622. package/dist/generators/portable-knowledge.test.js.map +1 -1
  623. package/dist/generators/region-projections.d.ts +18 -0
  624. package/dist/generators/region-projections.d.ts.map +1 -0
  625. package/dist/generators/region-projections.js +49 -0
  626. package/dist/generators/region-projections.js.map +1 -0
  627. package/dist/generators/region-projections.test.d.ts +2 -0
  628. package/dist/generators/region-projections.test.d.ts.map +1 -0
  629. package/dist/generators/region-projections.test.js +63 -0
  630. package/dist/generators/region-projections.test.js.map +1 -0
  631. package/dist/generators/region.d.ts +24 -0
  632. package/dist/generators/region.d.ts.map +1 -0
  633. package/dist/generators/region.js +87 -0
  634. package/dist/generators/region.js.map +1 -0
  635. package/dist/generators/region.test.d.ts +2 -0
  636. package/dist/generators/region.test.d.ts.map +1 -0
  637. package/dist/generators/region.test.js +126 -0
  638. package/dist/generators/region.test.js.map +1 -0
  639. package/dist/generators/surface-profiles.d.ts +48 -0
  640. package/dist/generators/surface-profiles.d.ts.map +1 -0
  641. package/dist/generators/surface-profiles.js +98 -0
  642. package/dist/generators/surface-profiles.js.map +1 -0
  643. package/dist/index.js +810 -251
  644. package/dist/index.js.map +1 -1
  645. package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
  646. package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
  647. package/dist/lib/__tests__/parseFields.test.js +19 -0
  648. package/dist/lib/__tests__/parseFields.test.js.map +1 -0
  649. package/dist/lib/activation.d.ts +28 -0
  650. package/dist/lib/activation.d.ts.map +1 -0
  651. package/dist/lib/activation.js +57 -0
  652. package/dist/lib/activation.js.map +1 -0
  653. package/dist/lib/activation.test.d.ts +6 -0
  654. package/dist/lib/activation.test.d.ts.map +1 -0
  655. package/dist/lib/activation.test.js +121 -0
  656. package/dist/lib/activation.test.js.map +1 -0
  657. package/dist/lib/canonicalRefs.d.ts +141 -0
  658. package/dist/lib/canonicalRefs.d.ts.map +1 -0
  659. package/dist/lib/canonicalRefs.js +150 -0
  660. package/dist/lib/canonicalRefs.js.map +1 -0
  661. package/dist/lib/client.d.ts +33 -6
  662. package/dist/lib/client.d.ts.map +1 -1
  663. package/dist/lib/client.js +203 -42
  664. package/dist/lib/client.js.map +1 -1
  665. package/dist/lib/collectionRegistry.d.ts +40 -0
  666. package/dist/lib/collectionRegistry.d.ts.map +1 -0
  667. package/dist/lib/collectionRegistry.js +112 -0
  668. package/dist/lib/collectionRegistry.js.map +1 -0
  669. package/dist/lib/compose-wrapup-view.d.ts +48 -0
  670. package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
  671. package/dist/lib/compose-wrapup-view.js +37 -0
  672. package/dist/lib/compose-wrapup-view.js.map +1 -0
  673. package/dist/lib/config.d.ts +204 -4
  674. package/dist/lib/config.d.ts.map +1 -1
  675. package/dist/lib/config.js +594 -42
  676. package/dist/lib/config.js.map +1 -1
  677. package/dist/lib/connectKeyLabel.d.ts +9 -0
  678. package/dist/lib/connectKeyLabel.d.ts.map +1 -0
  679. package/dist/lib/connectKeyLabel.js +12 -0
  680. package/dist/lib/connectKeyLabel.js.map +1 -0
  681. package/dist/lib/constants.d.ts +46 -0
  682. package/dist/lib/constants.d.ts.map +1 -0
  683. package/dist/lib/constants.js +83 -0
  684. package/dist/lib/constants.js.map +1 -0
  685. package/dist/lib/conversation-engine.d.ts +45 -0
  686. package/dist/lib/conversation-engine.d.ts.map +1 -0
  687. package/dist/lib/conversation-engine.js +112 -0
  688. package/dist/lib/conversation-engine.js.map +1 -0
  689. package/dist/lib/conversation-phases.d.ts +59 -0
  690. package/dist/lib/conversation-phases.d.ts.map +1 -0
  691. package/dist/lib/conversation-phases.js +11 -0
  692. package/dist/lib/conversation-phases.js.map +1 -0
  693. package/dist/lib/conversation-signals.d.ts +30 -0
  694. package/dist/lib/conversation-signals.d.ts.map +1 -0
  695. package/dist/lib/conversation-signals.js +64 -0
  696. package/dist/lib/conversation-signals.js.map +1 -0
  697. package/dist/lib/deployment.d.ts +23 -0
  698. package/dist/lib/deployment.d.ts.map +1 -0
  699. package/dist/lib/deployment.js +78 -0
  700. package/dist/lib/deployment.js.map +1 -0
  701. package/dist/lib/deployment.test.d.ts +5 -0
  702. package/dist/lib/deployment.test.d.ts.map +1 -0
  703. package/dist/lib/deployment.test.js +54 -0
  704. package/dist/lib/deployment.test.js.map +1 -0
  705. package/dist/lib/errors.d.ts +63 -0
  706. package/dist/lib/errors.d.ts.map +1 -0
  707. package/dist/lib/errors.js +72 -0
  708. package/dist/lib/errors.js.map +1 -0
  709. package/dist/lib/experiment.d.ts +18 -0
  710. package/dist/lib/experiment.d.ts.map +1 -0
  711. package/dist/lib/experiment.js +28 -0
  712. package/dist/lib/experiment.js.map +1 -0
  713. package/dist/lib/format.d.ts +10 -0
  714. package/dist/lib/format.d.ts.map +1 -0
  715. package/dist/lib/format.js +27 -0
  716. package/dist/lib/format.js.map +1 -0
  717. package/dist/lib/frontmatter.d.ts +55 -0
  718. package/dist/lib/frontmatter.d.ts.map +1 -0
  719. package/dist/lib/frontmatter.js +92 -0
  720. package/dist/lib/frontmatter.js.map +1 -0
  721. package/dist/lib/frontmatter.test.d.ts +15 -0
  722. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  723. package/dist/lib/frontmatter.test.js +98 -0
  724. package/dist/lib/frontmatter.test.js.map +1 -0
  725. package/dist/lib/glossary.d.ts +19 -0
  726. package/dist/lib/glossary.d.ts.map +1 -0
  727. package/dist/lib/glossary.js +53 -0
  728. package/dist/lib/glossary.js.map +1 -0
  729. package/dist/lib/hook-intents.d.ts +51 -0
  730. package/dist/lib/hook-intents.d.ts.map +1 -0
  731. package/dist/lib/hook-intents.js +85 -0
  732. package/dist/lib/hook-intents.js.map +1 -0
  733. package/dist/lib/inferSourceDate.d.ts +12 -0
  734. package/dist/lib/inferSourceDate.d.ts.map +1 -0
  735. package/dist/lib/inferSourceDate.js +44 -0
  736. package/dist/lib/inferSourceDate.js.map +1 -0
  737. package/dist/lib/method-registry.d.ts +32 -0
  738. package/dist/lib/method-registry.d.ts.map +1 -0
  739. package/dist/lib/method-registry.js +53 -0
  740. package/dist/lib/method-registry.js.map +1 -0
  741. package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
  742. package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
  743. package/dist/lib/normalizeMaterializedFilename.js +56 -0
  744. package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
  745. package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
  746. package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
  747. package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
  748. package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
  749. package/dist/lib/notice-marker.d.ts +3 -0
  750. package/dist/lib/notice-marker.d.ts.map +1 -0
  751. package/dist/lib/notice-marker.js +53 -0
  752. package/dist/lib/notice-marker.js.map +1 -0
  753. package/dist/lib/onboarding-path-b.d.ts +10 -0
  754. package/dist/lib/onboarding-path-b.d.ts.map +1 -0
  755. package/dist/lib/onboarding-path-b.js +213 -0
  756. package/dist/lib/onboarding-path-b.js.map +1 -0
  757. package/dist/lib/onboarding-shared.d.ts +80 -0
  758. package/dist/lib/onboarding-shared.d.ts.map +1 -0
  759. package/dist/lib/onboarding-shared.js +174 -0
  760. package/dist/lib/onboarding-shared.js.map +1 -0
  761. package/dist/lib/onboarding-topics.d.ts +27 -0
  762. package/dist/lib/onboarding-topics.d.ts.map +1 -0
  763. package/dist/lib/onboarding-topics.js +57 -0
  764. package/dist/lib/onboarding-topics.js.map +1 -0
  765. package/dist/lib/onboarding.d.ts +17 -0
  766. package/dist/lib/onboarding.d.ts.map +1 -0
  767. package/dist/lib/onboarding.js +350 -0
  768. package/dist/lib/onboarding.js.map +1 -0
  769. package/dist/lib/parseFields.d.ts +6 -0
  770. package/dist/lib/parseFields.d.ts.map +1 -0
  771. package/dist/lib/parseFields.js +30 -0
  772. package/dist/lib/parseFields.js.map +1 -0
  773. package/dist/lib/productbrain-files.d.ts +94 -0
  774. package/dist/lib/productbrain-files.d.ts.map +1 -0
  775. package/dist/lib/productbrain-files.js +212 -0
  776. package/dist/lib/productbrain-files.js.map +1 -0
  777. package/dist/lib/productbrain-files.test.d.ts +2 -0
  778. package/dist/lib/productbrain-files.test.d.ts.map +1 -0
  779. package/dist/lib/productbrain-files.test.js +237 -0
  780. package/dist/lib/productbrain-files.test.js.map +1 -0
  781. package/dist/lib/profiles.d.ts +41 -0
  782. package/dist/lib/profiles.d.ts.map +1 -0
  783. package/dist/lib/profiles.js +188 -0
  784. package/dist/lib/profiles.js.map +1 -0
  785. package/dist/lib/prompts.d.ts +65 -0
  786. package/dist/lib/prompts.d.ts.map +1 -0
  787. package/dist/lib/prompts.js +132 -0
  788. package/dist/lib/prompts.js.map +1 -0
  789. package/dist/lib/repo-detect.d.ts +19 -0
  790. package/dist/lib/repo-detect.d.ts.map +1 -1
  791. package/dist/lib/repo-detect.js +25 -0
  792. package/dist/lib/repo-detect.js.map +1 -1
  793. package/dist/lib/runner.d.ts +10 -0
  794. package/dist/lib/runner.d.ts.map +1 -1
  795. package/dist/lib/runner.js +44 -7
  796. package/dist/lib/runner.js.map +1 -1
  797. package/dist/lib/session.d.ts +35 -0
  798. package/dist/lib/session.d.ts.map +1 -1
  799. package/dist/lib/session.js +94 -3
  800. package/dist/lib/session.js.map +1 -1
  801. package/dist/lib/spinner.d.ts +27 -0
  802. package/dist/lib/spinner.d.ts.map +1 -0
  803. package/dist/lib/spinner.js +76 -0
  804. package/dist/lib/spinner.js.map +1 -0
  805. package/dist/lib/spinner.test.d.ts +2 -0
  806. package/dist/lib/spinner.test.d.ts.map +1 -0
  807. package/dist/lib/spinner.test.js +39 -0
  808. package/dist/lib/spinner.test.js.map +1 -0
  809. package/dist/lib/startup-resolution-signals.d.ts +34 -0
  810. package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
  811. package/dist/lib/startup-resolution-signals.js +118 -0
  812. package/dist/lib/startup-resolution-signals.js.map +1 -0
  813. package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
  814. package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
  815. package/dist/lib/startup-resolution-signals.test.js +113 -0
  816. package/dist/lib/startup-resolution-signals.test.js.map +1 -0
  817. package/dist/lib/state.d.ts +51 -0
  818. package/dist/lib/state.d.ts.map +1 -0
  819. package/dist/lib/state.js +90 -0
  820. package/dist/lib/state.js.map +1 -0
  821. package/dist/lib/strip.d.ts +1 -0
  822. package/dist/lib/strip.d.ts.map +1 -1
  823. package/dist/lib/strip.js +15 -0
  824. package/dist/lib/strip.js.map +1 -1
  825. package/dist/lib/style.d.ts +96 -0
  826. package/dist/lib/style.d.ts.map +1 -0
  827. package/dist/lib/style.js +169 -0
  828. package/dist/lib/style.js.map +1 -0
  829. package/dist/lib/style.test.d.ts +7 -0
  830. package/dist/lib/style.test.d.ts.map +1 -0
  831. package/dist/lib/style.test.js +263 -0
  832. package/dist/lib/style.test.js.map +1 -0
  833. package/dist/lib/telemetry.d.ts +15 -0
  834. package/dist/lib/telemetry.d.ts.map +1 -0
  835. package/dist/lib/telemetry.js +47 -0
  836. package/dist/lib/telemetry.js.map +1 -0
  837. package/dist/lib/tokenConstants.d.ts +19 -0
  838. package/dist/lib/tokenConstants.d.ts.map +1 -0
  839. package/dist/lib/tokenConstants.js +19 -0
  840. package/dist/lib/tokenConstants.js.map +1 -0
  841. package/dist/lib/update-check.d.ts +56 -0
  842. package/dist/lib/update-check.d.ts.map +1 -0
  843. package/dist/lib/update-check.js +296 -0
  844. package/dist/lib/update-check.js.map +1 -0
  845. package/dist/lib/upgrade-runner.d.ts +22 -0
  846. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  847. package/dist/lib/upgrade-runner.js +110 -0
  848. package/dist/lib/upgrade-runner.js.map +1 -0
  849. package/dist/lib/wizard-surfaces.d.ts +47 -0
  850. package/dist/lib/wizard-surfaces.d.ts.map +1 -0
  851. package/dist/lib/wizard-surfaces.js +176 -0
  852. package/dist/lib/wizard-surfaces.js.map +1 -0
  853. package/dist/lib/wizard-surfaces.test.d.ts +2 -0
  854. package/dist/lib/wizard-surfaces.test.d.ts.map +1 -0
  855. package/dist/lib/wizard-surfaces.test.js +127 -0
  856. package/dist/lib/wizard-surfaces.test.js.map +1 -0
  857. package/dist/lib/wizard-trust.d.ts +31 -0
  858. package/dist/lib/wizard-trust.d.ts.map +1 -0
  859. package/dist/lib/wizard-trust.js +66 -0
  860. package/dist/lib/wizard-trust.js.map +1 -0
  861. package/dist/lib/wizard-trust.test.d.ts +2 -0
  862. package/dist/lib/wizard-trust.test.d.ts.map +1 -0
  863. package/dist/lib/wizard-trust.test.js +32 -0
  864. package/dist/lib/wizard-trust.test.js.map +1 -0
  865. package/dist/lib/workspace-probe.d.ts +19 -0
  866. package/dist/lib/workspace-probe.d.ts.map +1 -0
  867. package/dist/lib/workspace-probe.js +27 -0
  868. package/dist/lib/workspace-probe.js.map +1 -0
  869. package/dist/lib/workspaceNotice.d.ts +59 -0
  870. package/dist/lib/workspaceNotice.d.ts.map +1 -0
  871. package/dist/lib/workspaceNotice.js +77 -0
  872. package/dist/lib/workspaceNotice.js.map +1 -0
  873. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  874. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  875. package/dist/lib/workspaceVocabCache.js +98 -0
  876. package/dist/lib/workspaceVocabCache.js.map +1 -0
  877. package/dist/scoreboard/diagnose.d.ts +182 -0
  878. package/dist/scoreboard/diagnose.d.ts.map +1 -0
  879. package/dist/scoreboard/diagnose.js +250 -0
  880. package/dist/scoreboard/diagnose.js.map +1 -0
  881. package/dist/scoreboard/diagnose.test.d.ts +12 -0
  882. package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
  883. package/dist/scoreboard/diagnose.test.js +192 -0
  884. package/dist/scoreboard/diagnose.test.js.map +1 -0
  885. package/dist/scoreboard/localDrift.d.ts +23 -0
  886. package/dist/scoreboard/localDrift.d.ts.map +1 -0
  887. package/dist/scoreboard/localDrift.js +111 -0
  888. package/dist/scoreboard/localDrift.js.map +1 -0
  889. package/dist/scoreboard/localDrift.test.d.ts +9 -0
  890. package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
  891. package/dist/scoreboard/localDrift.test.js +82 -0
  892. package/dist/scoreboard/localDrift.test.js.map +1 -0
  893. package/dist/setup/__tests__/coach-traces.test.d.ts +2 -0
  894. package/dist/setup/__tests__/coach-traces.test.d.ts.map +1 -0
  895. package/dist/setup/__tests__/coach-traces.test.js +189 -0
  896. package/dist/setup/__tests__/coach-traces.test.js.map +1 -0
  897. package/dist/setup/__tests__/setup-commands.test.d.ts +2 -0
  898. package/dist/setup/__tests__/setup-commands.test.d.ts.map +1 -0
  899. package/dist/setup/__tests__/setup-commands.test.js +177 -0
  900. package/dist/setup/__tests__/setup-commands.test.js.map +1 -0
  901. package/dist/setup/__tests__/state-machine.test.d.ts +2 -0
  902. package/dist/setup/__tests__/state-machine.test.d.ts.map +1 -0
  903. package/dist/setup/__tests__/state-machine.test.js +341 -0
  904. package/dist/setup/__tests__/state-machine.test.js.map +1 -0
  905. package/dist/setup/detect-surfaces.d.ts +21 -0
  906. package/dist/setup/detect-surfaces.d.ts.map +1 -0
  907. package/dist/setup/detect-surfaces.js +39 -0
  908. package/dist/setup/detect-surfaces.js.map +1 -0
  909. package/dist/setup/manifest-writer.d.ts +17 -0
  910. package/dist/setup/manifest-writer.d.ts.map +1 -0
  911. package/dist/setup/manifest-writer.js +153 -0
  912. package/dist/setup/manifest-writer.js.map +1 -0
  913. package/dist/setup/perimeter.d.ts +72 -0
  914. package/dist/setup/perimeter.d.ts.map +1 -0
  915. package/dist/setup/perimeter.js +128 -0
  916. package/dist/setup/perimeter.js.map +1 -0
  917. package/dist/setup/state-machine.d.ts +67 -0
  918. package/dist/setup/state-machine.d.ts.map +1 -0
  919. package/dist/setup/state-machine.js +124 -0
  920. package/dist/setup/state-machine.js.map +1 -0
  921. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  922. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  923. package/dist/surfaces/__tests__/adapter.test.js +90 -0
  924. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  925. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +2 -0
  926. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +1 -0
  927. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +132 -0
  928. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +1 -0
  929. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  930. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  931. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  932. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  933. package/dist/surfaces/adapter.d.ts +70 -0
  934. package/dist/surfaces/adapter.d.ts.map +1 -0
  935. package/dist/surfaces/adapter.js +2 -0
  936. package/dist/surfaces/adapter.js.map +1 -0
  937. package/dist/surfaces/adapters/claude.d.ts +3 -0
  938. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  939. package/dist/surfaces/adapters/claude.js +67 -0
  940. package/dist/surfaces/adapters/claude.js.map +1 -0
  941. package/dist/surfaces/adapters/codex.d.ts +3 -0
  942. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  943. package/dist/surfaces/adapters/codex.js +61 -0
  944. package/dist/surfaces/adapters/codex.js.map +1 -0
  945. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  946. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  947. package/dist/surfaces/adapters/copilot.js +59 -0
  948. package/dist/surfaces/adapters/copilot.js.map +1 -0
  949. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  950. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  951. package/dist/surfaces/adapters/cursor.js +78 -0
  952. package/dist/surfaces/adapters/cursor.js.map +1 -0
  953. package/dist/surfaces/registry.d.ts +76 -0
  954. package/dist/surfaces/registry.d.ts.map +1 -0
  955. package/dist/surfaces/registry.js +117 -0
  956. package/dist/surfaces/registry.js.map +1 -0
  957. package/dist/surfaces/telemetry.d.ts +17 -0
  958. package/dist/surfaces/telemetry.d.ts.map +1 -0
  959. package/dist/surfaces/telemetry.js +31 -0
  960. package/dist/surfaces/telemetry.js.map +1 -0
  961. package/package.json +11 -3
  962. package/templates/archetypes/boundary.md +23 -0
  963. package/templates/archetypes/constraint.md +23 -0
  964. package/templates/archetypes/convention.md +23 -0
  965. package/templates/archetypes/policy.md +23 -0
  966. package/templates/archetypes/quality-gate.md +23 -0
  967. package/templates/archetypes/workflow.md +23 -0
  968. package/templates/general/code-integrity.md +11 -0
  969. package/templates/general/getting-started.md +12 -0
  970. package/templates/method-registry.json +16 -0
  971. package/templates/node-ts/code-integrity.md +13 -0
  972. package/templates/node-ts/testing.md +12 -0
  973. package/templates/python/code-integrity.md +13 -0
  974. package/templates/python/testing.md +12 -0
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Prompt gate — TTY-aware, cancel-safe, mode-aware.
3
+ * All interactive CLI prompts flow through this module.
4
+ * WP-303 Slice 1: replaces raw readline with @clack/prompts.
5
+ */
6
+ import * as clack from '@clack/prompts';
7
+ import { CLIError, ErrorCode } from './errors.js';
8
+ import { isJsonMode, isQuietMode } from './runner.js';
9
+ // --- Guards ---
10
+ const CANCEL = Symbol.for('cancel');
11
+ function isCancelled(value) {
12
+ return value === CANCEL || clack.isCancel(value);
13
+ }
14
+ function assertInteractive() {
15
+ if (!process.stdin.isTTY) {
16
+ throw new CLIError('Non-interactive environment detected.', {
17
+ code: ErrorCode.NON_INTERACTIVE,
18
+ category: 'config',
19
+ guidance: 'Run with explicit args or use --json mode.',
20
+ });
21
+ }
22
+ if (isJsonMode()) {
23
+ throw new CLIError('Prompt skipped in JSON mode.', {
24
+ code: ErrorCode.NON_INTERACTIVE,
25
+ category: 'config',
26
+ guidance: 'Provide values via command-line arguments instead of interactive prompts.',
27
+ });
28
+ }
29
+ if (isQuietMode()) {
30
+ throw new CLIError('Prompt skipped in quiet mode.', {
31
+ code: ErrorCode.NON_INTERACTIVE,
32
+ category: 'config',
33
+ guidance: 'Provide values via command-line arguments.',
34
+ });
35
+ }
36
+ }
37
+ function handleCancel(value) {
38
+ if (isCancelled(value)) {
39
+ process.exit(130);
40
+ }
41
+ }
42
+ // --- Exports ---
43
+ /** Returns true if the CLI is running in a context where prompts are safe. */
44
+ export function isInteractive() {
45
+ return !!process.stdin.isTTY && !isQuietMode() && !isJsonMode();
46
+ }
47
+ /** Text input — wraps clack.text(). */
48
+ export async function ask(opts) {
49
+ assertInteractive();
50
+ const result = await clack.text({
51
+ message: opts.message,
52
+ placeholder: opts.placeholder,
53
+ defaultValue: opts.defaultValue,
54
+ validate: opts.validate,
55
+ });
56
+ handleCancel(result);
57
+ return result;
58
+ }
59
+ /** Yes/no confirmation — wraps clack.confirm(). */
60
+ export async function confirm(opts) {
61
+ assertInteractive();
62
+ const result = await clack.confirm({
63
+ message: opts.message,
64
+ initialValue: opts.initialValue,
65
+ });
66
+ handleCancel(result);
67
+ return result;
68
+ }
69
+ /** Single-select menu — wraps clack.select(). */
70
+ export async function select(opts) {
71
+ assertInteractive();
72
+ // Cast needed: TypeScript can't reduce clack's conditional Option<T> for arbitrary T
73
+ const result = await clack.select({
74
+ message: opts.message,
75
+ options: opts.options,
76
+ });
77
+ handleCancel(result);
78
+ return result;
79
+ }
80
+ /** Password input (masked) — wraps clack.password(). */
81
+ export async function password(opts) {
82
+ assertInteractive();
83
+ const result = await clack.password({
84
+ message: opts.message,
85
+ validate: opts.validate,
86
+ });
87
+ handleCancel(result);
88
+ return result;
89
+ }
90
+ /** Multi-select menu — wraps clack.multiselect(). */
91
+ export async function multiselect(opts) {
92
+ assertInteractive();
93
+ // Cast needed: same conditional Option<T> issue as select()
94
+ const result = await clack.multiselect({
95
+ message: opts.message,
96
+ options: opts.options,
97
+ required: opts.required,
98
+ initialValues: opts.initialValues,
99
+ });
100
+ handleCancel(result);
101
+ return result;
102
+ }
103
+ /** Open a titled session — wraps clack.intro(). No-op in non-interactive. */
104
+ export function intro(title) {
105
+ if (!isInteractive())
106
+ return;
107
+ clack.intro(title);
108
+ }
109
+ /** Close a session — wraps clack.outro(). No-op in non-interactive. */
110
+ export function outro(message) {
111
+ if (!isInteractive())
112
+ return;
113
+ clack.outro(message);
114
+ }
115
+ /** Styled information box — wraps clack.note(). No-op in non-interactive. */
116
+ export function note(message, title) {
117
+ if (!isInteractive())
118
+ return;
119
+ clack.note(message, title);
120
+ }
121
+ /** Structured log helpers — degrade to plain stdout/stderr in non-interactive. */
122
+ export const log = {
123
+ step: (msg) => isInteractive() ? clack.log.step(msg) : void process.stdout.write(` ${msg}\n`),
124
+ success: (msg) => isInteractive() ? clack.log.success(msg) : void process.stdout.write(` ✓ ${msg}\n`),
125
+ warn: (msg) => isInteractive() ? clack.log.warn(msg) : void process.stderr.write(` ⚠ ${msg}\n`),
126
+ error: (msg) => isInteractive() ? clack.log.error(msg) : void process.stderr.write(` ✗ ${msg}\n`),
127
+ info: (msg) => isInteractive() ? clack.log.info(msg) : void process.stdout.write(` ${msg}\n`),
128
+ message: (msg) => isInteractive()
129
+ ? clack.log.message(msg)
130
+ : (msg !== undefined ? void process.stdout.write(`${msg}\n`) : undefined),
131
+ };
132
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,25 @@
2
2
  * Local repo detection — reads filesystem signals to build a RepoContext.
3
3
  * No API calls. Pure filesystem inspection.
4
4
  */
5
+ /**
6
+ * Workspace maturity profile derived from the Chain's workspaceReadiness signal.
7
+ * Used by handshake to tailor generated context files (BET-170, DEC-291).
8
+ */
9
+ export interface WorkspaceProfile {
10
+ stage: string;
11
+ totalEntries: number;
12
+ totalRelations: number;
13
+ collectionCount: number;
14
+ activeCount: number;
15
+ draftCount: number;
16
+ orphanedCount: number;
17
+ governanceMode: string;
18
+ }
19
+ /**
20
+ * Extract a WorkspaceProfile from the raw workspaceReadiness API response.
21
+ * Returns null on any failure — callers must handle null (fail-open pattern).
22
+ */
23
+ export declare function extractWorkspaceProfile(response: unknown): WorkspaceProfile | null;
5
24
  export interface RepoContext {
6
25
  name: string | null;
7
26
  description: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"repo-detect.d.ts","sourceRoot":"","sources":["../../src/lib/repo-detect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAgB,GAAG,WAAW,CAiD3D"}
1
+ {"version":3,"file":"repo-detect.d.ts","sourceRoot":"","sources":["../../src/lib/repo-detect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAsBlF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAgB,GAAG,WAAW,CAiD3D"}
@@ -5,6 +5,31 @@
5
5
  import { existsSync, readFileSync } from 'fs';
6
6
  import { resolve, basename } from 'path';
7
7
  import { execSync } from 'child_process';
8
+ /**
9
+ * Extract a WorkspaceProfile from the raw workspaceReadiness API response.
10
+ * Returns null on any failure — callers must handle null (fail-open pattern).
11
+ */
12
+ export function extractWorkspaceProfile(response) {
13
+ if (!response || typeof response !== 'object')
14
+ return null;
15
+ const r = response;
16
+ const stage = typeof r['stage'] === 'string' ? r['stage'] : null;
17
+ const governanceMode = typeof r['governanceMode'] === 'string' ? r['governanceMode'] : null;
18
+ if (!stage || !governanceMode)
19
+ return null;
20
+ const stats = r['stats'] && typeof r['stats'] === 'object' ? r['stats'] : {};
21
+ const toNum = (v) => (typeof v === 'number' ? v : 0);
22
+ return {
23
+ stage,
24
+ totalEntries: toNum(stats['totalEntries']),
25
+ totalRelations: toNum(stats['totalRelations']),
26
+ collectionCount: toNum(stats['collectionCount']),
27
+ activeCount: toNum(stats['activeCount']),
28
+ draftCount: toNum(stats['draftCount']),
29
+ orphanedCount: toNum(stats['orphanedCount']),
30
+ governanceMode,
31
+ };
32
+ }
8
33
  export function detectRepo(cwd = process.cwd()) {
9
34
  const ctx = {
10
35
  name: null,
@@ -1 +1 @@
1
- {"version":3,"file":"repo-detect.js","sourceRoot":"","sources":["../../src/lib/repo-detect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWzC,MAAM,UAAU,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC5C,MAAM,GAAG,GAAgB;QACvB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,KAAK;KAClB,CAAC;IAEF,eAAe;IACf,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;YACtD,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC;YAC1C,IAAI,GAAG,CAAC,UAAU;gBAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;IACb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxH,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;QACvB,2CAA2C;QAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC1D,IAAI,CAAC;YAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAE7C,kBAAkB;IAClB,MAAM,MAAM,GAA8B;QACxC,CAAC,WAAW,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACvD,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QACnE,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC9C,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KAC1C,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAExC,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"repo-detect.js","sourceRoot":"","sources":["../../src/lib/repo-detect.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,16 @@ export declare function setOutputMode(mode: 'auto' | 'json' | 'pretty'): void;
14
14
  export declare function getOutputMode(): 'auto' | 'json' | 'pretty';
15
15
  /** Returns true if the current output mode resolves to JSON. */
16
16
  export declare function isJsonMode(): boolean;
17
+ export declare function setQuietMode(quiet: boolean): void;
18
+ /**
19
+ * The RAW quiet flag, independent of JSON mode. isQuietMode() conflates JSON mode,
20
+ * so read this when you need the literal quiet state (e.g. to assert that a window
21
+ * left quiet — and therefore the interactive-prompt gate — untouched).
22
+ */
23
+ export declare function getQuietMode(): boolean;
24
+ export declare function isQuietMode(): boolean;
25
+ export declare function setSpinnersSilenced(silenced: boolean): void;
26
+ export declare function areSpinnersSilenced(): boolean;
17
27
  export interface RunCliCommandOptions<T> {
18
28
  /** The async function that performs the MCP call and returns data. */
19
29
  fn: () => Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEpE;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ,CAE1D;AAED,gEAAgE;AAChE,wBAAgB,UAAU,IAAI,OAAO,CAKpC;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,sEAAsE;IACtE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,kDAAkD;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEpE;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,MAAM,GAAG,QAAQ,CAE1D;AAED,gEAAgE;AAChE,wBAAgB,UAAU,IAAI,OAAO,CAKpC;AASD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,WAAW,IAAI,OAAO,CAIrC;AAYD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,sEAAsE;IACtE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,kDAAkD;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtF"}
@@ -11,6 +11,7 @@
11
11
  * Chain: DEC-299 (JSON-default), STD-65 (agent responses: structured, parseable, minimal)
12
12
  */
13
13
  import { stripConvexInternals } from './strip.js';
14
+ import { CLIError } from './errors.js';
14
15
  /**
15
16
  * Global output mode — set by the CLI entry point when --json or --pretty flags are parsed.
16
17
  * 'auto' = detect via TTY; 'json' = force JSON; 'pretty' = force human.
@@ -31,6 +32,44 @@ export function isJsonMode() {
31
32
  // auto: non-TTY (piped) → JSON, TTY → human
32
33
  return !process.stdout.isTTY;
33
34
  }
35
+ /**
36
+ * Quiet mode — suppresses non-essential output (banners, hints, progress).
37
+ * Only the essential result (data line or error) is shown.
38
+ * WP-302 Slice 1.
39
+ */
40
+ let quietMode = false;
41
+ export function setQuietMode(quiet) {
42
+ quietMode = quiet;
43
+ }
44
+ /**
45
+ * The RAW quiet flag, independent of JSON mode. isQuietMode() conflates JSON mode,
46
+ * so read this when you need the literal quiet state (e.g. to assert that a window
47
+ * left quiet — and therefore the interactive-prompt gate — untouched).
48
+ */
49
+ export function getQuietMode() {
50
+ return quietMode;
51
+ }
52
+ export function isQuietMode() {
53
+ // JSON mode is inherently quiet — no decorative output needed
54
+ if (isJsonMode())
55
+ return true;
56
+ return quietMode;
57
+ }
58
+ /**
59
+ * Spinner suppression — independent of quiet/json mode. Silences withSpinner()
60
+ * output WITHOUT making the CLI "quiet" (quiet also gates interactive prompts via
61
+ * prompts.ts/assertInteractive). `pb connect` flips this to hide the raw per-kernelCall
62
+ * spinner labels ("Loading chain getVocabulary", …) while still letting the handshake's
63
+ * adopt/revert prompts for PB-managed tampered files run (TEN-2561 / WP-2: legible
64
+ * output must never silence a prompt the user needs to answer).
65
+ */
66
+ let spinnersSilenced = false;
67
+ export function setSpinnersSilenced(silenced) {
68
+ spinnersSilenced = silenced;
69
+ }
70
+ export function areSpinnersSilenced() {
71
+ return spinnersSilenced;
72
+ }
34
73
  /**
35
74
  * Execute a CLI command with unified output handling.
36
75
  *
@@ -52,14 +91,12 @@ export async function runCliCommand(options) {
52
91
  }
53
92
  }
54
93
  catch (err) {
55
- const message = err instanceof Error ? err.message : String(err);
56
- if (json) {
57
- process.stderr.write(JSON.stringify({ error: message }) + '\n');
58
- }
59
- else {
60
- process.stderr.write(message + '\n');
94
+ // Re-throw to the central handleError() in index.ts for formatting and exit.
95
+ // CLIErrors pass through directly; unknown errors are wrapped.
96
+ if (err instanceof CLIError) {
97
+ throw err;
61
98
  }
62
- process.exit(1);
99
+ throw new CLIError(err instanceof Error ? err.message : String(err), { code: 'INTERNAL', category: 'internal' });
63
100
  }
64
101
  }
65
102
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,IAAI,UAAU,GAA+B,MAAM,CAAC;AAEpD,MAAM,UAAU,aAAa,CAAC,IAAgC;IAC5D,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU;IACxB,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,4CAA4C;IAC5C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,CAAC;AASD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,OAAgC;IACrE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC;QAEhC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjE,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,IAAI,UAAU,GAA+B,MAAM,CAAC;AAEpD,MAAM,UAAU,aAAa,CAAC,IAAgC;IAC5D,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU;IACxB,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,4CAA4C;IAC5C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,8DAA8D;IAC9D,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,gBAAgB,GAAG,QAAQ,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AASD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,OAAgC;IACrE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC;QAEhC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,6EAA6E;QAC7E,+DAA+D;QAC/D,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,QAAQ,CAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAC3C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -2,6 +2,9 @@
2
2
  * Session state — persists active session ID between CLI invocations.
3
3
  * Stored at .productbrain/session.json in the project root.
4
4
  * Solves TEN-264 (option 1: explicit session token).
5
+ *
6
+ * WP-322 S2: session.json also serves as a closed marker (closedAt present)
7
+ * for auto-resume logic when the last session closed <2h ago.
5
8
  */
6
9
  export interface SessionState {
7
10
  sessionId: string;
@@ -9,9 +12,41 @@ export interface SessionState {
9
12
  workspaceName: string;
10
13
  startedAt: string;
11
14
  entriesCaptured: string[];
15
+ /** Optional: set when session is closed. Presence indicates a closed-marker state. */
16
+ closedAt?: string;
17
+ /** Effective profile name at session start — backstop for detecting a profile switch. */
18
+ profile?: string;
19
+ }
20
+ /** Shape returned by readClosedMarker when a closed marker is present. */
21
+ export interface ClosedMarker {
22
+ sessionId: string;
23
+ closedAt: string;
24
+ workspaceId: string;
25
+ workspaceName: string;
12
26
  }
13
27
  export declare function readSession(): SessionState | null;
14
28
  export declare function writeSession(state: SessionState): void;
29
+ /**
30
+ * Writes a closed marker instead of deleting the file.
31
+ * If the file is already a closed marker (closedAt present), deletes it outright
32
+ * to prevent a stale-marker reset loop (F2: Domain Fit review finding).
33
+ * Uses atomic write (tmp → rename) to prevent partial writes on active sessions.
34
+ * WP-322 S2 — enables auto-resume within 2h window.
35
+ */
15
36
  export declare function clearSession(): void;
37
+ /**
38
+ * Delete session.json outright — NO closed marker. Use on a workspace change
39
+ * (profile switch / connect redirect) so the 2h auto-resume can't re-pin the old
40
+ * workspace. (clearSession writes a resume marker; that is only correct for session close.)
41
+ */
42
+ export declare function discardSession(): void;
43
+ /** True if a session.json file exists at all — active session OR closed marker. */
44
+ export declare function sessionFileExists(): boolean;
45
+ /**
46
+ * Reads the closed marker from session.json.
47
+ * Returns the marker if closedAt is present, otherwise null.
48
+ * WP-322 S2 — used by runSessionStart to detect recent closed sessions.
49
+ */
50
+ export declare function readClosedMarker(): ClosedMarker | null;
16
51
  export declare function addCapturedEntry(entryId: string): void;
17
52
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAUD,wBAAgB,WAAW,IAAI,YAAY,GAAG,IAAI,CAQjD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAItD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKtD"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAwBD,wBAAgB,WAAW,IAAI,YAAY,GAAG,IAAI,CAWjD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAItD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,IAAI,CA0BnC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAetD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKtD"}
@@ -2,21 +2,42 @@
2
2
  * Session state — persists active session ID between CLI invocations.
3
3
  * Stored at .productbrain/session.json in the project root.
4
4
  * Solves TEN-264 (option 1: explicit session token).
5
+ *
6
+ * WP-322 S2: session.json also serves as a closed marker (closedAt present)
7
+ * for auto-resume logic when the last session closed <2h ago.
5
8
  */
6
- import { existsSync, readFileSync, writeFileSync, unlinkSync, mkdirSync } from 'fs';
9
+ import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync, unlinkSync } from 'fs';
7
10
  import { join } from 'path';
11
+ import { findProjectRoot } from './config.js';
12
+ /**
13
+ * Resolve the `.productbrain/` session directory off the CLI project root — the SAME
14
+ * walked-up root config.ts resolves credentials against (findProjectRoot), which is also the
15
+ * repo-root that scripts/pb-binding.mjs targets. Anchoring all three to one root means the
16
+ * binding-flip guard (hasActiveSession in pb-binding.mjs) inspects the exact session.json the
17
+ * CLI writes, even when a command runs from a subdirectory such as packages/cli — a cwd-relative
18
+ * dir would put the session under packages/cli/.productbrain and the guard would miss it
19
+ * (codex PR #145 review). Falls back to cwd when no config-bearing root is found (fresh worktree
20
+ * before any config has landed).
21
+ */
8
22
  function getSessionDir() {
9
- return join(process.cwd(), '.productbrain');
23
+ return join(findProjectRoot(process.cwd()) ?? process.cwd(), '.productbrain');
10
24
  }
11
25
  function getSessionPath() {
12
26
  return join(getSessionDir(), 'session.json');
13
27
  }
28
+ function getTmpSessionPath() {
29
+ return join(getSessionDir(), 'session.json.tmp');
30
+ }
14
31
  export function readSession() {
15
32
  const p = getSessionPath();
16
33
  if (!existsSync(p))
17
34
  return null;
18
35
  try {
19
- return JSON.parse(readFileSync(p, 'utf8'));
36
+ const raw = JSON.parse(readFileSync(p, 'utf8'));
37
+ // If closedAt is present it's a closed marker, not an active session
38
+ if (raw.closedAt)
39
+ return null;
40
+ return raw;
20
41
  }
21
42
  catch {
22
43
  return null;
@@ -28,11 +49,81 @@ export function writeSession(state) {
28
49
  mkdirSync(dir, { recursive: true });
29
50
  writeFileSync(getSessionPath(), JSON.stringify(state, null, 2));
30
51
  }
52
+ /**
53
+ * Writes a closed marker instead of deleting the file.
54
+ * If the file is already a closed marker (closedAt present), deletes it outright
55
+ * to prevent a stale-marker reset loop (F2: Domain Fit review finding).
56
+ * Uses atomic write (tmp → rename) to prevent partial writes on active sessions.
57
+ * WP-322 S2 — enables auto-resume within 2h window.
58
+ */
31
59
  export function clearSession() {
60
+ const p = getSessionPath();
61
+ if (!existsSync(p))
62
+ return;
63
+ try {
64
+ const existing = JSON.parse(readFileSync(p, 'utf8'));
65
+ // If already a marker, delete outright — don't refresh the timestamp
66
+ if (existing.closedAt) {
67
+ unlinkSync(p);
68
+ return;
69
+ }
70
+ const marker = {
71
+ sessionId: existing.sessionId,
72
+ workspaceId: existing.workspaceId,
73
+ workspaceName: existing.workspaceName,
74
+ startedAt: existing.startedAt,
75
+ entriesCaptured: [],
76
+ closedAt: new Date().toISOString(),
77
+ };
78
+ const dir = getSessionDir();
79
+ if (!existsSync(dir))
80
+ mkdirSync(dir, { recursive: true });
81
+ const tmp = getTmpSessionPath();
82
+ writeFileSync(tmp, JSON.stringify(marker, null, 2));
83
+ renameSync(tmp, p);
84
+ }
85
+ catch {
86
+ // If we can't write the marker, the file stays as-is (non-blocking).
87
+ }
88
+ }
89
+ /**
90
+ * Delete session.json outright — NO closed marker. Use on a workspace change
91
+ * (profile switch / connect redirect) so the 2h auto-resume can't re-pin the old
92
+ * workspace. (clearSession writes a resume marker; that is only correct for session close.)
93
+ */
94
+ export function discardSession() {
32
95
  const p = getSessionPath();
33
96
  if (existsSync(p))
34
97
  unlinkSync(p);
35
98
  }
99
+ /** True if a session.json file exists at all — active session OR closed marker. */
100
+ export function sessionFileExists() {
101
+ return existsSync(getSessionPath());
102
+ }
103
+ /**
104
+ * Reads the closed marker from session.json.
105
+ * Returns the marker if closedAt is present, otherwise null.
106
+ * WP-322 S2 — used by runSessionStart to detect recent closed sessions.
107
+ */
108
+ export function readClosedMarker() {
109
+ const p = getSessionPath();
110
+ if (!existsSync(p))
111
+ return null;
112
+ try {
113
+ const raw = JSON.parse(readFileSync(p, 'utf8'));
114
+ if (!raw.closedAt)
115
+ return null;
116
+ return {
117
+ sessionId: raw.sessionId,
118
+ closedAt: raw.closedAt,
119
+ workspaceId: raw.workspaceId,
120
+ workspaceName: raw.workspaceName,
121
+ };
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ }
36
127
  export function addCapturedEntry(entryId) {
37
128
  const session = readSession();
38
129
  if (!session)
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAU5B,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAiB,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAmB;IAC9C,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Contextual spinner for async operations.
3
+ * WP-303 Slice 2: Ambient Feedback (Spinners).
4
+ *
5
+ * - TTY: shows animated spinner with 200ms delayed start
6
+ * - Non-TTY / quiet / json: silent (no output)
7
+ * - On success: replaces spinner with success message
8
+ * - On failure: replaces spinner with failure message, rethrows
9
+ *
10
+ * Uses raw ANSI escape codes to stay consistent with style.ts (no @clack dependency).
11
+ */
12
+ /**
13
+ * Run an async function with a contextual spinner.
14
+ *
15
+ * In interactive TTY mode, a spinner appears after 200ms (avoids flicker for
16
+ * fast operations). In non-TTY / quiet / JSON mode, the function runs silently.
17
+ *
18
+ * @param label - Text shown next to the spinner (e.g. "Loading orient data")
19
+ * @param fn - The async operation to run
20
+ * @param options.successMessage - Optional override for the completion message
21
+ * @returns The result of fn()
22
+ * @throws Rethrows any error from fn() after displaying failure
23
+ */
24
+ export declare function withSpinner<T>(label: string, fn: () => Promise<T>, options?: {
25
+ successMessage?: string;
26
+ }): Promise<T>;
27
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,CAAC,CAAC,CA4CZ"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Contextual spinner for async operations.
3
+ * WP-303 Slice 2: Ambient Feedback (Spinners).
4
+ *
5
+ * - TTY: shows animated spinner with 200ms delayed start
6
+ * - Non-TTY / quiet / json: silent (no output)
7
+ * - On success: replaces spinner with success message
8
+ * - On failure: replaces spinner with failure message, rethrows
9
+ *
10
+ * Uses raw ANSI escape codes to stay consistent with style.ts (no @clack dependency).
11
+ */
12
+ import { isQuietMode, isJsonMode, areSpinnersSilenced } from './runner.js';
13
+ import { green, red, icons } from './style.js';
14
+ const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
15
+ const FRAME_INTERVAL_MS = 80;
16
+ const DELAYED_START_MS = 200;
17
+ /** Returns true if spinner output should be suppressed. */
18
+ function isSilent() {
19
+ return !process.stdout.isTTY || isQuietMode() || isJsonMode() || areSpinnersSilenced();
20
+ }
21
+ /**
22
+ * Run an async function with a contextual spinner.
23
+ *
24
+ * In interactive TTY mode, a spinner appears after 200ms (avoids flicker for
25
+ * fast operations). In non-TTY / quiet / JSON mode, the function runs silently.
26
+ *
27
+ * @param label - Text shown next to the spinner (e.g. "Loading orient data")
28
+ * @param fn - The async operation to run
29
+ * @param options.successMessage - Optional override for the completion message
30
+ * @returns The result of fn()
31
+ * @throws Rethrows any error from fn() after displaying failure
32
+ */
33
+ export async function withSpinner(label, fn, options) {
34
+ // Non-interactive: just run the function
35
+ if (isSilent()) {
36
+ return fn();
37
+ }
38
+ let frameIndex = 0;
39
+ let spinnerInterval;
40
+ let started = false;
41
+ const write = (text) => {
42
+ // Clear line and write
43
+ process.stderr.write(`\r\x1b[K${text}`);
44
+ };
45
+ const startSpinner = () => {
46
+ started = true;
47
+ spinnerInterval = setInterval(() => {
48
+ const frame = SPINNER_FRAMES[frameIndex % SPINNER_FRAMES.length];
49
+ write(`${frame} ${label}`);
50
+ frameIndex++;
51
+ }, FRAME_INTERVAL_MS);
52
+ };
53
+ // Delayed start — avoids spinner flash for fast operations
54
+ const delayTimer = setTimeout(startSpinner, DELAYED_START_MS);
55
+ try {
56
+ const result = await fn();
57
+ clearTimeout(delayTimer);
58
+ if (spinnerInterval)
59
+ clearInterval(spinnerInterval);
60
+ if (started) {
61
+ const msg = options?.successMessage || label;
62
+ write(`${green(icons.pass)} ${msg}\n`);
63
+ }
64
+ return result;
65
+ }
66
+ catch (err) {
67
+ clearTimeout(delayTimer);
68
+ if (spinnerInterval)
69
+ clearInterval(spinnerInterval);
70
+ if (started) {
71
+ write(`${red(icons.fail)} ${label} \u2014 failed\n`);
72
+ }
73
+ throw err;
74
+ }
75
+ }
76
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1E,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,2DAA2D;AAC3D,SAAS,QAAQ;IACf,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,WAAW,EAAE,IAAI,UAAU,EAAE,IAAI,mBAAmB,EAAE,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,EAAoB,EACpB,OAAqC;IAErC,yCAAyC;IACzC,IAAI,QAAQ,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,eAA2D,CAAC;IAChE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;QAC7B,uBAAuB;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,GAAG,IAAI,CAAC;QACf,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACjE,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;YAC3B,UAAU,EAAE,CAAC;QACf,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,2DAA2D;IAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,YAAY,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,eAAe;YAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,OAAO,EAAE,cAAc,IAAI,KAAK,CAAC;YAC7C,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,eAAe;YAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=spinner.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.test.d.ts","sourceRoot":"","sources":["../../src/lib/spinner.test.ts"],"names":[],"mappings":""}