@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,98 @@
1
+ /**
2
+ * 5-minute TTL cache for workspace vocabulary context (WP-436 S2).
3
+ *
4
+ * Purpose (R2 mitigation): the CLI resolves vocabulary labels on every invocation.
5
+ * Without a cache, each `pb orient` / `pb get` / `pb capture` would call
6
+ * `chain.getVocabulary` — adding a Convex round-trip overhead and risking
7
+ * handshake-time staleness. A 5-min TTL short-circuits repeat calls within
8
+ * a typical session while staying fresh enough that label changes land quickly.
9
+ *
10
+ * PAT-230: the cache holds WorkspaceVocabCtx (pure data, no Convex imports here).
11
+ * DEC-1021: only Axis 2 (collectionLabels) lives here; Axis 1 (displayNames) is untouched.
12
+ *
13
+ * S4 note: when Cortex UI builds its `vocabularyStore`, it should mirror this
14
+ * contract — a keyed map by workspaceId with an expiresAt field (Cortex has
15
+ * direct access to workspaceId; the CLI uses apiKey as a 1:1 surrogate, since
16
+ * the HTTP gateway server-side injects workspaceId from authResult per
17
+ * convex/http.ts:675).
18
+ */
19
+ const TTL_MS = 5 * 60 * 1000; // 5 minutes
20
+ const STALE_WARN_MS = 4 * 60 * 1000; // warn after 4 minutes (1 minute before expiry)
21
+ /** In-memory cache: cacheKey (CLI: apiKey; Cortex would use workspaceId) → CacheEntry. */
22
+ const cache = new Map();
23
+ /**
24
+ * Get a cached WorkspaceVocabCtx by cacheKey, or null if expired/missing.
25
+ * Prints a staleness warning when the entry is older than STALE_WARN_MS.
26
+ */
27
+ export function getCachedVocabCtx(cacheKey) {
28
+ const entry = cache.get(cacheKey);
29
+ if (!entry)
30
+ return null;
31
+ const now = Date.now();
32
+ if (now >= entry.expiresAt) {
33
+ cache.delete(cacheKey);
34
+ return null;
35
+ }
36
+ if (now - (entry.expiresAt - TTL_MS) >= STALE_WARN_MS) {
37
+ // Staleness hint: labels were fetched > 4 min ago, will refresh within 1 min.
38
+ process.stderr.write(`[pb] Workspace vocabulary context is almost stale — will refresh on next invocation.\n`);
39
+ }
40
+ return entry.ctx;
41
+ }
42
+ /**
43
+ * Store a WorkspaceVocabCtx under cacheKey with a 5-min TTL.
44
+ */
45
+ export function setCachedVocabCtx(cacheKey, ctx) {
46
+ cache.set(cacheKey, { ctx, expiresAt: Date.now() + TTL_MS });
47
+ }
48
+ /**
49
+ * Explicitly invalidate a cached vocab context by cacheKey.
50
+ * Call this when `updateCollectionLabels` mutation succeeds (e.g. after `pb handshake`).
51
+ */
52
+ export function invalidateVocabCtx(cacheKey) {
53
+ cache.delete(cacheKey);
54
+ }
55
+ /**
56
+ * Clear all cached entries (useful for testing or `pb handshake --refresh`).
57
+ */
58
+ export function clearVocabCache() {
59
+ cache.clear();
60
+ }
61
+ /**
62
+ * Get the cached vocab context, or fetch it via the provided async fetcher on cache miss.
63
+ *
64
+ * Usage pattern at CLI command sites:
65
+ * ```ts
66
+ * const vocabCtx = await getOrFetchVocabCtx(config.apiKey, async () => {
67
+ * type VocabResult = { collectionLabels?: Record<string, unknown> };
68
+ * const vocab = await kernelCall<VocabResult>('chain.getVocabulary', {});
69
+ * return vocab?.collectionLabels
70
+ * ? { collectionLabels: vocab.collectionLabels as WorkspaceVocabCtx['collectionLabels'] }
71
+ * : null;
72
+ * });
73
+ * ```
74
+ *
75
+ * - `cacheKey`: use the API key as a surrogate for cacheKey (1:1 mapping at CLI layer).
76
+ * - `fetcher`: async function that resolves the vocab ctx; returns null on failure to signal
77
+ * "don't cache, fall back to resolver literal". Fetcher errors are swallowed — vocabulary
78
+ * labels are advisory (PAT-230 / fail-open principle).
79
+ *
80
+ * Returns WorkspaceVocabCtx on cache hit or successful fetch; undefined on error/null fetcher result.
81
+ */
82
+ export async function getOrFetchVocabCtx(cacheKey, fetcher) {
83
+ const cached = getCachedVocabCtx(cacheKey);
84
+ if (cached)
85
+ return cached;
86
+ try {
87
+ const ctx = await fetcher();
88
+ if (ctx) {
89
+ setCachedVocabCtx(cacheKey, ctx);
90
+ return ctx;
91
+ }
92
+ }
93
+ catch {
94
+ // fail-open — vocabulary labels are advisory, never block the command
95
+ }
96
+ return undefined;
97
+ }
98
+ //# sourceMappingURL=workspaceVocabCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceVocabCache.js","sourceRoot":"","sources":["../../src/lib/workspaceVocabCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAC1C,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,gDAAgD;AAErF,0FAA0F;AAC1F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QACtD,8EAA8E;QAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wFAAwF,CACzF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,GAAsB;IACxE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,OAAgD;IAEhD,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * SYNCED from packages/scoreboard-core/src/index.ts — DO NOT EDIT HERE.
3
+ * Canonical SSOT for the flywheel scoreboard diagnosis (consumed by BOTH the published
4
+ * `pb` CLI and the Cortex page). The CLI cannot import the workspace package at publish time
5
+ * (tsc, no bundler), so it carries this committed copy. Edit the source, then run:
6
+ * node scripts/sync-scoreboard-core.mjs
7
+ * A content-hash drift gate (scripts/check-mcp-lib-drift.mjs) fails CI if this drifts.
8
+ */
9
+ /**
10
+ * Flywheel scoreboard — the DIAGNOSIS LAYER (spec §2d), SHARED SSOT.
11
+ *
12
+ * This is the layer that turns a raw number into the agent closing the loop. It is a PURE
13
+ * mapping (no I/O — no fs, no node, no Convex runtime) from the data-layer payload
14
+ * (M1/M2/M3/materialization, from the internal `scoreboard` action) PLUS the CLI-computed M5
15
+ * local-drift, to per-metric diagnoses: `{ status, reading, cause, nextAction }`.
16
+ *
17
+ * WHY THIS LIVES IN ITS OWN WORKSPACE PACKAGE (`@product-brain/scoreboard-core`): the diagnosis
18
+ * is consumed by BOTH the `pb` CLI (`packages/cli`, pretty + --json) AND the Cortex page
19
+ * (`src/routes/(app)/w/[slug]/scoreboard`). A shared workspace package is the repo's convention
20
+ * for framework-agnostic logic two non-Convex surfaces share (mirrors `@product-brain/doc-ast`).
21
+ * The CLI cannot import across the monorepo boundary at publish time, so it consumes this body
22
+ * through a committed copy guarded by a content-hash drift check (the same pattern mcp-server uses
23
+ * for `convex/lib/flags_core.ts` → `src/flags.ts`). The SvelteKit app imports it directly.
24
+ *
25
+ * NOTHING HERE TOUCHES fs/node/Convex — the CLI-only `computeLocalDrift` (which stats
26
+ * `.productbrain/`) stays in `packages/cli/src/scoreboard/localDrift.ts`. `diagnoseM5` itself is
27
+ * pure (it maps a LocalDriftM5 → diagnosis) and lives here; only the fs *collection* of that
28
+ * LocalDriftM5 is CLI-only.
29
+ *
30
+ * HONESTY OVER FLATTERY (spec §0, §2c). The hard rules this layer encodes:
31
+ * - NO flip threshold is pinned yet (DEC-1282). Where a flip would decide ok/degraded, we
32
+ * render `awaiting` ("threshold unpinned — pin against live distribution"), NEVER an
33
+ * invented number. The RAW reading is always shown.
34
+ * - M4 is DEFERRED (TEN-2433) and ABSENT from the data payload. It is surfaced as an explicit
35
+ * `awaiting` tile ("awaiting baseline — run EXP-19"), NEVER a fake green.
36
+ * - A STANDING `unmeasured` line for coaching/moat quality (TEN-2377): four green tiles ≠ a
37
+ * healthy moat. The board must not imply moat health.
38
+ * - Every `degraded`/`awaiting` carries a concrete `nextAction`.
39
+ *
40
+ * Pure + exported so the diagnosis unit tests assert the awaiting/unmeasured/degraded mapping
41
+ * without any network or filesystem.
42
+ */
43
+ /** A metric's diagnosis status. */
44
+ export type DiagnosisStatus = 'ok' | 'degraded' | 'awaiting' | 'unmeasured';
45
+ export interface MetricDiagnosis {
46
+ /** The metric id (M1..M5) + a short human label. */
47
+ metric: string;
48
+ label: string;
49
+ status: DiagnosisStatus;
50
+ /** The raw reading, ALWAYS shown — never replaced by a verdict. */
51
+ reading: string;
52
+ /** Named cause of a degraded/awaiting/unmeasured reading (or the steady-state note). */
53
+ cause: string;
54
+ /** The concrete next action that closes the loop (empty string when status === 'ok'). */
55
+ nextAction: string;
56
+ }
57
+ export interface M1Payload {
58
+ mix: {
59
+ audited: number;
60
+ draft: number;
61
+ noDomain: number;
62
+ total: number;
63
+ };
64
+ noDomainShare: number | null;
65
+ auditedShare: number | null;
66
+ draftShare: number | null;
67
+ windowMs: number;
68
+ servedRowCount: number;
69
+ }
70
+ export interface M2Payload {
71
+ divergentBuckets: number;
72
+ fullParity: boolean;
73
+ task: string | null;
74
+ }
75
+ export interface M3Payload {
76
+ capturedCount: number;
77
+ everRatifiedCount: number;
78
+ inSessionRatifiedCount: number;
79
+ everRatifiedRate: number | null;
80
+ inSessionRatifiedRate: number | null;
81
+ sessionWindow: number;
82
+ sessionsConsidered: number;
83
+ }
84
+ export interface MaterializationPayload {
85
+ latestMaterializedAt: number | null;
86
+ materializationAgeMs: number | null;
87
+ now: number;
88
+ }
89
+ export interface ScoreboardPayload {
90
+ workspaceId: string;
91
+ generatedAt: number;
92
+ m1: M1Payload;
93
+ m2: M2Payload;
94
+ m3: M3Payload;
95
+ materialization: MaterializationPayload;
96
+ }
97
+ /**
98
+ * The CLI-computed M5 local-pull drift (A5). Produced by computeLocalDrift() (NOT the data
99
+ * layer — DEC-1284). `null` fields mean the local `.productbrain/` projection (or the server
100
+ * materialization) was unavailable; the diagnosis fails soft to `awaiting`.
101
+ */
102
+ export interface LocalDriftM5 {
103
+ /** Newest mtime across the local `.productbrain/` projection files, ms epoch. Null = absent. */
104
+ localProjectionMtime: number | null;
105
+ /** Server-side projection generation time (materialization.latestMaterializedAt). */
106
+ serverMaterializedAt: number | null;
107
+ /** How far the local pull lags the server projection, ms (server − local). Null when undeterminable. */
108
+ localLagMs: number | null;
109
+ /** Absolute age of the local projection vs now, ms. Null when the projection is absent. */
110
+ localAgeMs: number | null;
111
+ /** Set when `.productbrain/` could not be located/stat'd — diagnosis = awaiting, not a fake ok. */
112
+ unavailableReason?: string;
113
+ }
114
+ /**
115
+ * M1 — retrieval truth-state mix. The no-domain-share flip (INS-1775 floor) is UNPINNED, so the
116
+ * status is `awaiting` whenever there is data to judge (we never invent the 50% floor). With zero
117
+ * serves it is `unmeasured` (nothing served yet). The named cause for a high no-domain share is
118
+ * "domains unratified".
119
+ */
120
+ export declare function diagnoseM1(m1: M1Payload): MetricDiagnosis;
121
+ /**
122
+ * M2 — ranking agreement (tests the unify integrity). This one HAS a clean structural signal:
123
+ * post-unify, full parity (divergentBuckets === 0) is the EXPECTED steady state — that's `ok`.
124
+ * A non-zero divergence IS the regression signal — `degraded` — and the M2-magnitude flip stays
125
+ * unpinned, but the structural ok/degraded does not need a number (0 vs non-0 is exact).
126
+ */
127
+ export declare function diagnoseM2(m2: M2Payload): MetricDiagnosis;
128
+ /**
129
+ * M3 — draft-to-SSOT rate. The in-session-ratify floor (ASM-45 rolling-20 window) is UNPINNED,
130
+ * so a judged reading is `awaiting`. Zero captures in the window → `unmeasured`.
131
+ */
132
+ export declare function diagnoseM3(m3: M3Payload): MetricDiagnosis;
133
+ /**
134
+ * M4 — first-time-good (rework proxy). DEFERRED (TEN-2433) and ABSENT from the data payload.
135
+ * ALWAYS surfaced as an explicit `awaiting` tile — never a fake green, never a number. (Pure —
136
+ * takes no input; the tile is standing.)
137
+ */
138
+ export declare function diagnoseM4(): MetricDiagnosis;
139
+ /**
140
+ * M5 — projection staleness, computed as LOCAL-PULL drift at the CLI (DEC-1284). The staleness-age
141
+ * flip is UNPINNED, so a determinable reading is `awaiting`. When the local `.productbrain/`
142
+ * projection (or the server materialization) is unavailable, the status is `unmeasured` with the
143
+ * reason — fail-soft, never a fake ok.
144
+ */
145
+ export declare function diagnoseM5(m5: LocalDriftM5): MetricDiagnosis;
146
+ /**
147
+ * M5 (server view) — the Cortex page has NO local filesystem, so it cannot compute the spec's
148
+ * local-pull drift (DEC-1284). It reads only the server-side projection-generation building block
149
+ * (`materialization.latestMaterializedAt` / age) the public action already returns — adding NO new
150
+ * truth (spec §2d). This is deliberately a DIFFERENT, HONEST framing from `diagnoseM5`: it is
151
+ * SERVER-generation age, never claimed to be the local-pull staleness the CLI measures. The
152
+ * staleness-age flip is UNPINNED → `awaiting` when there is a materialization; `unmeasured` when
153
+ * the workspace has never materialized.
154
+ */
155
+ export declare function diagnoseM5FromServer(materialization: MaterializationPayload): MetricDiagnosis;
156
+ /**
157
+ * The STANDING coaching/moat-quality `unmeasured` line (TEN-2377). It is NOT a tile with a number —
158
+ * it is a permanent honesty marker so four green tiles are never read as "the moat is healthy".
159
+ */
160
+ export declare function diagnoseCoachingMoat(): MetricDiagnosis;
161
+ /** The full diagnosis bundle the CLI renders + emits in --json. */
162
+ export interface ScoreboardDiagnosis {
163
+ m1: MetricDiagnosis;
164
+ m2: MetricDiagnosis;
165
+ m3: MetricDiagnosis;
166
+ m4: MetricDiagnosis;
167
+ m5: MetricDiagnosis;
168
+ /** Standing honesty marker — coaching/moat quality is unmeasured. */
169
+ moat: MetricDiagnosis;
170
+ }
171
+ /**
172
+ * diagnose — the whole mapping: data-layer payload + CLI-computed M5 local-drift → per-metric
173
+ * diagnoses + the standing M4-awaiting + coaching-unmeasured lines. Pure.
174
+ */
175
+ export declare function diagnose(payload: ScoreboardPayload, m5: LocalDriftM5): ScoreboardDiagnosis;
176
+ /**
177
+ * diagnoseFromServer — the Cortex-page mapping: it has the public action payload but NO local fs,
178
+ * so M5 is the server-generation-age view (`diagnoseM5FromServer`) rather than the CLI local-pull
179
+ * drift. Everything else is identical to `diagnose`. Pure, browser-safe.
180
+ */
181
+ export declare function diagnoseFromServer(payload: ScoreboardPayload): ScoreboardDiagnosis;
182
+ //# sourceMappingURL=diagnose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/scoreboard/diagnose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * SYNCED from packages/scoreboard-core/src/index.ts — DO NOT EDIT HERE.
3
+ * Canonical SSOT for the flywheel scoreboard diagnosis (consumed by BOTH the published
4
+ * `pb` CLI and the Cortex page). The CLI cannot import the workspace package at publish time
5
+ * (tsc, no bundler), so it carries this committed copy. Edit the source, then run:
6
+ * node scripts/sync-scoreboard-core.mjs
7
+ * A content-hash drift gate (scripts/check-mcp-lib-drift.mjs) fails CI if this drifts.
8
+ */
9
+ // User-facing copy carries NO raw Chain IDs (chain-id-leak guard): the CLI prints `cause` /
10
+ // `nextAction` / `reading` verbatim to any workspace's terminal, so an ID here would leak our
11
+ // internal governance refs cross-tenant. The governing entry (the no-flip-threshold decision) is
12
+ // cited in code comments only, never in these strings.
13
+ const UNPINNED = 'threshold unpinned — pin against the live distribution';
14
+ function pct(n) {
15
+ return n === null ? 'n/a' : `${(n * 100).toFixed(0)}%`;
16
+ }
17
+ function ms(n) {
18
+ if (n === null)
19
+ return 'n/a';
20
+ const h = n / (1000 * 60 * 60);
21
+ if (h < 1)
22
+ return `${(n / (1000 * 60)).toFixed(0)}m`;
23
+ if (h < 48)
24
+ return `${h.toFixed(1)}h`;
25
+ return `${(h / 24).toFixed(1)}d`;
26
+ }
27
+ /**
28
+ * M1 — retrieval truth-state mix. The no-domain-share flip (INS-1775 floor) is UNPINNED, so the
29
+ * status is `awaiting` whenever there is data to judge (we never invent the 50% floor). With zero
30
+ * serves it is `unmeasured` (nothing served yet). The named cause for a high no-domain share is
31
+ * "domains unratified".
32
+ */
33
+ export function diagnoseM1(m1) {
34
+ const reading = `served=${m1.mix.total} · audited=${pct(m1.auditedShare)} · draft=${pct(m1.draftShare)} · ` +
35
+ `no-domain=${pct(m1.noDomainShare)} (window ${ms(m1.windowMs)})`;
36
+ if (m1.mix.total === 0) {
37
+ return {
38
+ metric: 'M1',
39
+ label: 'Retrieval truth-state mix',
40
+ status: 'unmeasured',
41
+ reading,
42
+ cause: 'no governance served in the window yet — nothing to classify',
43
+ nextAction: 'drive an orient/start_pb serve, then re-read',
44
+ };
45
+ }
46
+ return {
47
+ metric: 'M1',
48
+ label: 'Retrieval truth-state mix',
49
+ status: 'awaiting',
50
+ reading,
51
+ cause: `no-domain-share floor ${UNPINNED}`,
52
+ // INS-1775 records the ≈57% no-domain baseline — cited here in a comment, not the user string.
53
+ nextAction: 'pin the no-domain floor (≈57% measured baseline); if no-domain stays high, domains are unratified → ratify the inferred-domain binding entries',
54
+ };
55
+ }
56
+ /**
57
+ * M2 — ranking agreement (tests the unify integrity). This one HAS a clean structural signal:
58
+ * post-unify, full parity (divergentBuckets === 0) is the EXPECTED steady state — that's `ok`.
59
+ * A non-zero divergence IS the regression signal — `degraded` — and the M2-magnitude flip stays
60
+ * unpinned, but the structural ok/degraded does not need a number (0 vs non-0 is exact).
61
+ */
62
+ export function diagnoseM2(m2) {
63
+ const reading = `divergentBuckets=${m2.divergentBuckets} · fullParity=${m2.fullParity}${m2.task ? ` · task="${m2.task}"` : ''}`;
64
+ if (m2.fullParity && m2.divergentBuckets === 0) {
65
+ return {
66
+ metric: 'M2',
67
+ label: 'Ranking agreement (unify integrity)',
68
+ status: 'ok',
69
+ reading,
70
+ cause: 'orient ↔ start_pb render identical set+order+tier — the unify holds',
71
+ nextAction: '',
72
+ };
73
+ }
74
+ return {
75
+ metric: 'M2',
76
+ label: 'Ranking agreement (unify integrity)',
77
+ status: 'degraded',
78
+ reading,
79
+ cause: 'the two surfaces re-forked — one is selecting/ordering governance outside the shared ranker',
80
+ // The ranking-unify tension is TEN-2431 — cited in the comment, kept out of the user string.
81
+ nextAction: 'diff getOrientEntries vs getBindingGovernanceView; restore the shared ranker as the single source',
82
+ };
83
+ }
84
+ /**
85
+ * M3 — draft-to-SSOT rate. The in-session-ratify floor (ASM-45 rolling-20 window) is UNPINNED,
86
+ * so a judged reading is `awaiting`. Zero captures in the window → `unmeasured`.
87
+ */
88
+ export function diagnoseM3(m3) {
89
+ const reading = `captured=${m3.capturedCount} · in-session=${pct(m3.inSessionRatifiedRate)} · ` +
90
+ `ever=${pct(m3.everRatifiedRate)} (over ${m3.sessionsConsidered}/${m3.sessionWindow} sessions)`;
91
+ if (m3.capturedCount === 0) {
92
+ return {
93
+ metric: 'M3',
94
+ label: 'Draft-to-SSOT rate',
95
+ status: 'unmeasured',
96
+ reading,
97
+ cause: 'no captures in the rolling session window — nothing to rate',
98
+ nextAction: 'capture in-session (pb capture), then re-read after the human accepts in Cortex',
99
+ };
100
+ }
101
+ return {
102
+ metric: 'M3',
103
+ label: 'Draft-to-SSOT rate',
104
+ status: 'awaiting',
105
+ reading,
106
+ // ASM-45 (the draft-graveyard hypothesis + rolling-20-session design) governs this metric —
107
+ // cited in comments; the user strings stay ID-free.
108
+ cause: `in-session ratify floor ${UNPINNED} (rolling-20-session design)`,
109
+ nextAction: 'pin the in-session floor (X); if rate is below it, the draft-graveyard is confirmed → accept/promote captures in Cortex',
110
+ };
111
+ }
112
+ /**
113
+ * M4 — first-time-good (rework proxy). DEFERRED (TEN-2433) and ABSENT from the data payload.
114
+ * ALWAYS surfaced as an explicit `awaiting` tile — never a fake green, never a number. (Pure —
115
+ * takes no input; the tile is standing.)
116
+ */
117
+ export function diagnoseM4() {
118
+ return {
119
+ metric: 'M4',
120
+ // The baseline-arm evidence sprint is EXP-19 (kept out of the user-facing label per the
121
+ // chain-id-leak guard; the entry id still rides nextAction, which is not a user-facing sink).
122
+ label: 'First-time-good (value)',
123
+ status: 'awaiting',
124
+ reading: 'no baseline arm yet — renders only as a PB-vs-baseline delta, never a lone number',
125
+ // The served↔rework git/CI join is deferred (TEN-2433); the baseline arm comes from the
126
+ // paired blind-judged A/B sprint (EXP-19). Both cited in comments, kept out of the user copy.
127
+ cause: 'awaiting baseline — the served↔rework join is not built; deferred from the data layer',
128
+ nextAction: 'run the paired blind-judged A/B sprint to populate the baseline arm',
129
+ };
130
+ }
131
+ /**
132
+ * M5 — projection staleness, computed as LOCAL-PULL drift at the CLI (DEC-1284). The staleness-age
133
+ * flip is UNPINNED, so a determinable reading is `awaiting`. When the local `.productbrain/`
134
+ * projection (or the server materialization) is unavailable, the status is `unmeasured` with the
135
+ * reason — fail-soft, never a fake ok.
136
+ */
137
+ export function diagnoseM5(m5) {
138
+ if (m5.unavailableReason || m5.localProjectionMtime === null) {
139
+ return {
140
+ metric: 'M5',
141
+ label: 'Projection staleness (local-pull drift)',
142
+ status: 'unmeasured',
143
+ reading: m5.unavailableReason ?? 'local .productbrain/ projection not found',
144
+ cause: 'cannot stat the local projection — local-pull drift is undeterminable here',
145
+ nextAction: 'run from a worktree with a materialized .productbrain/ (pb handshake), then re-read',
146
+ };
147
+ }
148
+ // The local projection exists, but with NO server materialization (e.g. missing/expired
149
+ // setup_receipt) there is no reference to diff against — the local-pull DRIFT (server−local,
150
+ // this metric's whole definition) is undeterminable. Report `unmeasured` (honesty over flattery)
151
+ // rather than `awaiting` with a `local-lag=n/a` that implies the drift is merely awaiting a
152
+ // threshold. local-age is still surfaced as the one signal we can honestly read.
153
+ if (m5.serverMaterializedAt === null || m5.localLagMs === null) {
154
+ return {
155
+ metric: 'M5',
156
+ label: 'Projection staleness (local-pull drift)',
157
+ status: 'unmeasured',
158
+ reading: `local-age=${ms(m5.localAgeMs)} · server materialization: none (drift undeterminable)`,
159
+ cause: 'no server materialization to diff against — local-pull drift (server−local) cannot be computed',
160
+ nextAction: 'materialize the projection server-side (pb handshake), then re-read to measure drift',
161
+ };
162
+ }
163
+ const lag = m5.localLagMs;
164
+ const age = m5.localAgeMs;
165
+ const reading = `local-lag=${ms(lag)} (server−local) · local-age=${ms(age)}`;
166
+ return {
167
+ metric: 'M5',
168
+ label: 'Projection staleness (local-pull drift)',
169
+ status: 'awaiting',
170
+ reading,
171
+ cause: `staleness-age threshold ${UNPINNED}; this is the one metric where PB can be staler than the never-drifting CLAUDE.md file`,
172
+ nextAction: 're-run pb handshake to re-pull the projection if the lag/age looks high',
173
+ };
174
+ }
175
+ /**
176
+ * M5 (server view) — the Cortex page has NO local filesystem, so it cannot compute the spec's
177
+ * local-pull drift (DEC-1284). It reads only the server-side projection-generation building block
178
+ * (`materialization.latestMaterializedAt` / age) the public action already returns — adding NO new
179
+ * truth (spec §2d). This is deliberately a DIFFERENT, HONEST framing from `diagnoseM5`: it is
180
+ * SERVER-generation age, never claimed to be the local-pull staleness the CLI measures. The
181
+ * staleness-age flip is UNPINNED → `awaiting` when there is a materialization; `unmeasured` when
182
+ * the workspace has never materialized.
183
+ */
184
+ export function diagnoseM5FromServer(materialization) {
185
+ if (materialization.latestMaterializedAt === null) {
186
+ return {
187
+ metric: 'M5',
188
+ label: 'Projection staleness (server generation age)',
189
+ status: 'unmeasured',
190
+ reading: 'no materialization receipt yet — the projection has never been generated server-side',
191
+ cause: 'nothing to age — the workspace has not materialized its projection',
192
+ nextAction: 'run pb handshake to materialize the projection, then re-read',
193
+ };
194
+ }
195
+ const age = materialization.materializationAgeMs;
196
+ return {
197
+ metric: 'M5',
198
+ label: 'Projection staleness (server generation age)',
199
+ status: 'awaiting',
200
+ reading: `server-generation age=${ms(age)} (browser view: local-pull drift is CLI-only)`,
201
+ cause: `staleness-age threshold ${UNPINNED}; this is the one metric where PB can be staler than the never-drifting CLAUDE.md file`,
202
+ nextAction: 're-run pb handshake to re-generate the projection if the age looks high',
203
+ };
204
+ }
205
+ /**
206
+ * The STANDING coaching/moat-quality `unmeasured` line (TEN-2377). It is NOT a tile with a number —
207
+ * it is a permanent honesty marker so four green tiles are never read as "the moat is healthy".
208
+ */
209
+ export function diagnoseCoachingMoat() {
210
+ return {
211
+ metric: 'MOAT',
212
+ label: 'Coaching / moat quality',
213
+ status: 'unmeasured',
214
+ // The standing-unmeasured tension is TEN-2377; the real instrument is ASM-46's
215
+ // blind-padding-rate test. Both cited in comments, kept out of the user-facing strings.
216
+ reading: 'structurally unmeasured',
217
+ cause: 'the coach skips decision/standard/business-rule (the WHY-moat types) — a counter would flatter the board',
218
+ nextAction: 'do NOT read four green tiles as a healthy moat; the real instrument is the blind-padding-rate test',
219
+ };
220
+ }
221
+ /**
222
+ * diagnose — the whole mapping: data-layer payload + CLI-computed M5 local-drift → per-metric
223
+ * diagnoses + the standing M4-awaiting + coaching-unmeasured lines. Pure.
224
+ */
225
+ export function diagnose(payload, m5) {
226
+ return {
227
+ m1: diagnoseM1(payload.m1),
228
+ m2: diagnoseM2(payload.m2),
229
+ m3: diagnoseM3(payload.m3),
230
+ m4: diagnoseM4(),
231
+ m5: diagnoseM5(m5),
232
+ moat: diagnoseCoachingMoat(),
233
+ };
234
+ }
235
+ /**
236
+ * diagnoseFromServer — the Cortex-page mapping: it has the public action payload but NO local fs,
237
+ * so M5 is the server-generation-age view (`diagnoseM5FromServer`) rather than the CLI local-pull
238
+ * drift. Everything else is identical to `diagnose`. Pure, browser-safe.
239
+ */
240
+ export function diagnoseFromServer(payload) {
241
+ return {
242
+ m1: diagnoseM1(payload.m1),
243
+ m2: diagnoseM2(payload.m2),
244
+ m3: diagnoseM3(payload.m3),
245
+ m4: diagnoseM4(),
246
+ m5: diagnoseM5FromServer(payload.materialization),
247
+ moat: diagnoseCoachingMoat(),
248
+ };
249
+ }
250
+ //# sourceMappingURL=diagnose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/scoreboard/diagnose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Diagnosis-layer unit tests (spec §2d, A4).
3
+ *
4
+ * Asserts the pure metric→{status,reading,cause,nextAction} mapping, with explicit coverage of
5
+ * the awaiting / unmeasured / degraded / ok states and the honesty invariants:
6
+ * - No flip threshold is pinned (DEC-1282) → judged readings are `awaiting`, never an invented
7
+ * number, and the raw reading is always present.
8
+ * - M4 is a standing `awaiting` tile (deferred, TEN-2433) — never a fake green.
9
+ * - Coaching/moat quality is a standing `unmeasured` line (TEN-2377).
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=diagnose.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose.test.d.ts","sourceRoot":"","sources":["../../src/scoreboard/diagnose.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}