@productbrain/cli 0.1.0-beta.107 → 0.1.0-beta.1070

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 (404) hide show
  1. package/dist/__tests__/audit.test.js +5 -0
  2. package/dist/__tests__/audit.test.js.map +1 -1
  3. package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
  4. package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
  5. package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
  6. package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
  7. package/dist/__tests__/config.test.js +272 -2
  8. package/dist/__tests__/config.test.js.map +1 -1
  9. package/dist/__tests__/constants.test.js +6 -1
  10. package/dist/__tests__/constants.test.js.map +1 -1
  11. package/dist/__tests__/envelope-contract.test.js +29 -3
  12. package/dist/__tests__/envelope-contract.test.js.map +1 -1
  13. package/dist/__tests__/errors.test.js +1 -0
  14. package/dist/__tests__/errors.test.js.map +1 -1
  15. package/dist/__tests__/handshake-augment.test.d.ts +2 -0
  16. package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
  17. package/dist/__tests__/handshake-augment.test.js +423 -0
  18. package/dist/__tests__/handshake-augment.test.js.map +1 -0
  19. package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
  20. package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
  21. package/dist/__tests__/handshake-dormancy.test.js +207 -0
  22. package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
  23. package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
  24. package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
  25. package/dist/__tests__/handshake-formatter.test.js +67 -0
  26. package/dist/__tests__/handshake-formatter.test.js.map +1 -0
  27. package/dist/__tests__/handshake-preview.test.js +566 -4
  28. package/dist/__tests__/handshake-preview.test.js.map +1 -1
  29. package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
  30. package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
  31. package/dist/__tests__/handshake.e2e.test.js +1252 -0
  32. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  33. package/dist/__tests__/handshake.test.js +255 -5
  34. package/dist/__tests__/handshake.test.js.map +1 -1
  35. package/dist/__tests__/manifest.test.js +118 -1
  36. package/dist/__tests__/manifest.test.js.map +1 -1
  37. package/dist/__tests__/notice-marker.test.d.ts +2 -0
  38. package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
  39. package/dist/__tests__/notice-marker.test.js +41 -0
  40. package/dist/__tests__/notice-marker.test.js.map +1 -0
  41. package/dist/__tests__/onboarding-path-b.test.js +4 -4
  42. package/dist/__tests__/onboarding-path-b.test.js.map +1 -1
  43. package/dist/__tests__/orient.test.js +117 -26
  44. package/dist/__tests__/orient.test.js.map +1 -1
  45. package/dist/__tests__/perimeter.test.d.ts +2 -0
  46. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  47. package/dist/__tests__/perimeter.test.js +165 -0
  48. package/dist/__tests__/perimeter.test.js.map +1 -0
  49. package/dist/__tests__/profiles.test.js +106 -2
  50. package/dist/__tests__/profiles.test.js.map +1 -1
  51. package/dist/__tests__/promote.test.js +2 -2
  52. package/dist/__tests__/promote.test.js.map +1 -1
  53. package/dist/__tests__/session-reset.test.d.ts +2 -0
  54. package/dist/__tests__/session-reset.test.d.ts.map +1 -0
  55. package/dist/__tests__/session-reset.test.js +122 -0
  56. package/dist/__tests__/session-reset.test.js.map +1 -0
  57. package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
  58. package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
  59. package/dist/__tests__/session-resume-backstop.test.js +97 -0
  60. package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
  61. package/dist/__tests__/session-state-machine.test.js +45 -1
  62. package/dist/__tests__/session-state-machine.test.js.map +1 -1
  63. package/dist/__tests__/session-switch.test.d.ts +2 -0
  64. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  65. package/dist/__tests__/session-switch.test.js +129 -0
  66. package/dist/__tests__/session-switch.test.js.map +1 -0
  67. package/dist/__tests__/setup-ingest.test.js +16 -0
  68. package/dist/__tests__/setup-ingest.test.js.map +1 -1
  69. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  70. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  71. package/dist/__tests__/skill-vocabulary.test.js +187 -0
  72. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  73. package/dist/__tests__/update-check.test.d.ts +2 -0
  74. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  75. package/dist/__tests__/update-check.test.js +215 -0
  76. package/dist/__tests__/update-check.test.js.map +1 -0
  77. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  78. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  79. package/dist/__tests__/upgrade-runner.test.js +54 -0
  80. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  81. package/dist/__tests__/upgrade.test.d.ts +2 -0
  82. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  83. package/dist/__tests__/upgrade.test.js +56 -0
  84. package/dist/__tests__/upgrade.test.js.map +1 -0
  85. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  86. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  87. package/dist/__tests__/vocabulary-leak.test.js +534 -0
  88. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  89. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  90. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  91. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  92. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  93. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
  94. package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
  95. package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
  96. package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
  97. package/dist/commands/__tests__/setup-state.test.d.ts +2 -0
  98. package/dist/commands/__tests__/setup-state.test.d.ts.map +1 -0
  99. package/dist/commands/__tests__/setup-state.test.js +194 -0
  100. package/dist/commands/__tests__/setup-state.test.js.map +1 -0
  101. package/dist/commands/admin/seed.d.ts +32 -2
  102. package/dist/commands/admin/seed.d.ts.map +1 -1
  103. package/dist/commands/admin/seed.js +279 -33
  104. package/dist/commands/admin/seed.js.map +1 -1
  105. package/dist/commands/admin/seed.test.js +7 -0
  106. package/dist/commands/admin/seed.test.js.map +1 -1
  107. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  108. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  109. package/dist/commands/admin/seedRegistryEntries.generated.js +117 -0
  110. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  111. package/dist/commands/admin/seedRegistryEntries.test.d.ts +11 -0
  112. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  113. package/dist/commands/admin/seedRegistryEntries.test.js +67 -0
  114. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  115. package/dist/commands/audit.d.ts.map +1 -1
  116. package/dist/commands/audit.js +30 -3
  117. package/dist/commands/audit.js.map +1 -1
  118. package/dist/commands/authority-domains.d.ts +7 -1
  119. package/dist/commands/authority-domains.d.ts.map +1 -1
  120. package/dist/commands/authority-domains.js +19 -4
  121. package/dist/commands/authority-domains.js.map +1 -1
  122. package/dist/commands/capture.d.ts +2 -0
  123. package/dist/commands/capture.d.ts.map +1 -1
  124. package/dist/commands/capture.js +8 -3
  125. package/dist/commands/capture.js.map +1 -1
  126. package/dist/commands/codex-prep.js +6 -6
  127. package/dist/commands/codex-prep.js.map +1 -1
  128. package/dist/commands/connect-config.test.d.ts +2 -0
  129. package/dist/commands/connect-config.test.d.ts.map +1 -0
  130. package/dist/commands/connect-config.test.js +44 -0
  131. package/dist/commands/connect-config.test.js.map +1 -0
  132. package/dist/commands/connect-context.d.ts +45 -0
  133. package/dist/commands/connect-context.d.ts.map +1 -0
  134. package/dist/commands/connect-context.js +64 -0
  135. package/dist/commands/connect-context.js.map +1 -0
  136. package/dist/commands/connect-context.test.d.ts +2 -0
  137. package/dist/commands/connect-context.test.d.ts.map +1 -0
  138. package/dist/commands/connect-context.test.js +110 -0
  139. package/dist/commands/connect-context.test.js.map +1 -0
  140. package/dist/commands/connect-handoff.d.ts +51 -0
  141. package/dist/commands/connect-handoff.d.ts.map +1 -0
  142. package/dist/commands/connect-handoff.js +70 -0
  143. package/dist/commands/connect-handoff.js.map +1 -0
  144. package/dist/commands/connect-integration.test.js +13 -12
  145. package/dist/commands/connect-integration.test.js.map +1 -1
  146. package/dist/commands/connect-screens.d.ts +7 -8
  147. package/dist/commands/connect-screens.d.ts.map +1 -1
  148. package/dist/commands/connect-screens.js +30 -37
  149. package/dist/commands/connect-screens.js.map +1 -1
  150. package/dist/commands/connect.d.ts +19 -6
  151. package/dist/commands/connect.d.ts.map +1 -1
  152. package/dist/commands/connect.js +31 -56
  153. package/dist/commands/connect.js.map +1 -1
  154. package/dist/commands/doctor.d.ts.map +1 -1
  155. package/dist/commands/doctor.js +67 -2
  156. package/dist/commands/doctor.js.map +1 -1
  157. package/dist/commands/doctor.test.js +150 -0
  158. package/dist/commands/doctor.test.js.map +1 -1
  159. package/dist/commands/handshake.d.ts +84 -4
  160. package/dist/commands/handshake.d.ts.map +1 -1
  161. package/dist/commands/handshake.js +1169 -97
  162. package/dist/commands/handshake.js.map +1 -1
  163. package/dist/commands/method.d.ts.map +1 -1
  164. package/dist/commands/method.js +5 -1
  165. package/dist/commands/method.js.map +1 -1
  166. package/dist/commands/orient.d.ts +52 -2
  167. package/dist/commands/orient.d.ts.map +1 -1
  168. package/dist/commands/orient.js +41 -7
  169. package/dist/commands/orient.js.map +1 -1
  170. package/dist/commands/profile.d.ts +1 -14
  171. package/dist/commands/profile.d.ts.map +1 -1
  172. package/dist/commands/profile.js +89 -72
  173. package/dist/commands/profile.js.map +1 -1
  174. package/dist/commands/reject.d.ts.map +1 -1
  175. package/dist/commands/reject.js +2 -1
  176. package/dist/commands/reject.js.map +1 -1
  177. package/dist/commands/relate.d.ts.map +1 -1
  178. package/dist/commands/relate.js +4 -2
  179. package/dist/commands/relate.js.map +1 -1
  180. package/dist/commands/session.d.ts +22 -0
  181. package/dist/commands/session.d.ts.map +1 -1
  182. package/dist/commands/session.js +112 -14
  183. package/dist/commands/session.js.map +1 -1
  184. package/dist/commands/setup-audit.d.ts +59 -0
  185. package/dist/commands/setup-audit.d.ts.map +1 -0
  186. package/dist/commands/setup-audit.js +250 -0
  187. package/dist/commands/setup-audit.js.map +1 -0
  188. package/dist/commands/setup-detect-surfaces.d.ts +38 -0
  189. package/dist/commands/setup-detect-surfaces.d.ts.map +1 -0
  190. package/dist/commands/setup-detect-surfaces.js +76 -0
  191. package/dist/commands/setup-detect-surfaces.js.map +1 -0
  192. package/dist/commands/setup-ingest.d.ts.map +1 -1
  193. package/dist/commands/setup-ingest.js +4 -2
  194. package/dist/commands/setup-ingest.js.map +1 -1
  195. package/dist/commands/setup-state.d.ts +42 -0
  196. package/dist/commands/setup-state.d.ts.map +1 -0
  197. package/dist/commands/setup-state.js +93 -0
  198. package/dist/commands/setup-state.js.map +1 -0
  199. package/dist/commands/setup.d.ts +17 -9
  200. package/dist/commands/setup.d.ts.map +1 -1
  201. package/dist/commands/setup.js +52 -131
  202. package/dist/commands/setup.js.map +1 -1
  203. package/dist/commands/update.d.ts.map +1 -1
  204. package/dist/commands/update.js +2 -1
  205. package/dist/commands/update.js.map +1 -1
  206. package/dist/commands/upgrade.d.ts +5 -0
  207. package/dist/commands/upgrade.d.ts.map +1 -0
  208. package/dist/commands/upgrade.js +110 -0
  209. package/dist/commands/upgrade.js.map +1 -0
  210. package/dist/commands/verify.d.ts.map +1 -1
  211. package/dist/commands/verify.js +2 -1
  212. package/dist/commands/verify.js.map +1 -1
  213. package/dist/commands/whoami.d.ts +12 -0
  214. package/dist/commands/whoami.d.ts.map +1 -0
  215. package/dist/commands/whoami.js +70 -0
  216. package/dist/commands/whoami.js.map +1 -0
  217. package/dist/commands/whoami.test.d.ts +2 -0
  218. package/dist/commands/whoami.test.d.ts.map +1 -0
  219. package/dist/commands/whoami.test.js +50 -0
  220. package/dist/commands/whoami.test.js.map +1 -0
  221. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  222. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  223. package/dist/formatters/__tests__/orient-provenance.test.js +454 -0
  224. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  225. package/dist/formatters/audit.d.ts +6 -0
  226. package/dist/formatters/audit.d.ts.map +1 -1
  227. package/dist/formatters/audit.js.map +1 -1
  228. package/dist/formatters/entry.d.ts +21 -0
  229. package/dist/formatters/entry.d.ts.map +1 -1
  230. package/dist/formatters/entry.js +46 -5
  231. package/dist/formatters/entry.js.map +1 -1
  232. package/dist/formatters/handshake.d.ts +19 -3
  233. package/dist/formatters/handshake.d.ts.map +1 -1
  234. package/dist/formatters/handshake.js +47 -12
  235. package/dist/formatters/handshake.js.map +1 -1
  236. package/dist/formatters/orient.d.ts +64 -4
  237. package/dist/formatters/orient.d.ts.map +1 -1
  238. package/dist/formatters/orient.js +103 -18
  239. package/dist/formatters/orient.js.map +1 -1
  240. package/dist/generators/adapters.js +4 -4
  241. package/dist/generators/context-md.js +6 -6
  242. package/dist/generators/context-md.js.map +1 -1
  243. package/dist/generators/manifest.d.ts +76 -0
  244. package/dist/generators/manifest.d.ts.map +1 -1
  245. package/dist/generators/manifest.js +125 -14
  246. package/dist/generators/manifest.js.map +1 -1
  247. package/dist/generators/portable-knowledge.d.ts +2 -2
  248. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  249. package/dist/generators/region-projections.d.ts +18 -0
  250. package/dist/generators/region-projections.d.ts.map +1 -0
  251. package/dist/generators/region-projections.js +49 -0
  252. package/dist/generators/region-projections.js.map +1 -0
  253. package/dist/generators/region-projections.test.d.ts +2 -0
  254. package/dist/generators/region-projections.test.d.ts.map +1 -0
  255. package/dist/generators/region-projections.test.js +63 -0
  256. package/dist/generators/region-projections.test.js.map +1 -0
  257. package/dist/generators/region.d.ts +24 -0
  258. package/dist/generators/region.d.ts.map +1 -0
  259. package/dist/generators/region.js +87 -0
  260. package/dist/generators/region.js.map +1 -0
  261. package/dist/generators/region.test.d.ts +2 -0
  262. package/dist/generators/region.test.d.ts.map +1 -0
  263. package/dist/generators/region.test.js +126 -0
  264. package/dist/generators/region.test.js.map +1 -0
  265. package/dist/generators/surface-profiles.d.ts +1 -2
  266. package/dist/generators/surface-profiles.d.ts.map +1 -1
  267. package/dist/generators/surface-profiles.js.map +1 -1
  268. package/dist/index.js +144 -25
  269. package/dist/index.js.map +1 -1
  270. package/dist/lib/activation.js +2 -2
  271. package/dist/lib/activation.js.map +1 -1
  272. package/dist/lib/activation.test.js +3 -3
  273. package/dist/lib/activation.test.js.map +1 -1
  274. package/dist/lib/canonicalRefs.d.ts +72 -0
  275. package/dist/lib/canonicalRefs.d.ts.map +1 -1
  276. package/dist/lib/canonicalRefs.js +67 -0
  277. package/dist/lib/canonicalRefs.js.map +1 -1
  278. package/dist/lib/client.d.ts.map +1 -1
  279. package/dist/lib/client.js +13 -3
  280. package/dist/lib/client.js.map +1 -1
  281. package/dist/lib/config.d.ts +70 -4
  282. package/dist/lib/config.d.ts.map +1 -1
  283. package/dist/lib/config.js +151 -11
  284. package/dist/lib/config.js.map +1 -1
  285. package/dist/lib/constants.d.ts +2 -0
  286. package/dist/lib/constants.d.ts.map +1 -1
  287. package/dist/lib/constants.js +2 -0
  288. package/dist/lib/constants.js.map +1 -1
  289. package/dist/lib/errors.d.ts +1 -0
  290. package/dist/lib/errors.d.ts.map +1 -1
  291. package/dist/lib/errors.js +1 -0
  292. package/dist/lib/errors.js.map +1 -1
  293. package/dist/lib/notice-marker.d.ts +3 -0
  294. package/dist/lib/notice-marker.d.ts.map +1 -0
  295. package/dist/lib/notice-marker.js +53 -0
  296. package/dist/lib/notice-marker.js.map +1 -0
  297. package/dist/lib/onboarding-path-b.d.ts.map +1 -1
  298. package/dist/lib/onboarding-path-b.js +0 -1
  299. package/dist/lib/onboarding-path-b.js.map +1 -1
  300. package/dist/lib/onboarding-shared.d.ts +0 -1
  301. package/dist/lib/onboarding-shared.d.ts.map +1 -1
  302. package/dist/lib/onboarding-shared.js +1 -17
  303. package/dist/lib/onboarding-shared.js.map +1 -1
  304. package/dist/lib/profiles.d.ts +3 -1
  305. package/dist/lib/profiles.d.ts.map +1 -1
  306. package/dist/lib/profiles.js +9 -6
  307. package/dist/lib/profiles.js.map +1 -1
  308. package/dist/lib/session.d.ts +10 -0
  309. package/dist/lib/session.d.ts.map +1 -1
  310. package/dist/lib/session.js +26 -1
  311. package/dist/lib/session.js.map +1 -1
  312. package/dist/lib/update-check.d.ts +42 -7
  313. package/dist/lib/update-check.d.ts.map +1 -1
  314. package/dist/lib/update-check.js +213 -62
  315. package/dist/lib/update-check.js.map +1 -1
  316. package/dist/lib/upgrade-runner.d.ts +22 -0
  317. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  318. package/dist/lib/upgrade-runner.js +110 -0
  319. package/dist/lib/upgrade-runner.js.map +1 -0
  320. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  321. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  322. package/dist/lib/workspaceVocabCache.js +98 -0
  323. package/dist/lib/workspaceVocabCache.js.map +1 -0
  324. package/dist/setup/__tests__/coach-traces.test.d.ts +2 -0
  325. package/dist/setup/__tests__/coach-traces.test.d.ts.map +1 -0
  326. package/dist/setup/__tests__/coach-traces.test.js +189 -0
  327. package/dist/setup/__tests__/coach-traces.test.js.map +1 -0
  328. package/dist/setup/__tests__/setup-commands.test.d.ts +2 -0
  329. package/dist/setup/__tests__/setup-commands.test.d.ts.map +1 -0
  330. package/dist/setup/__tests__/setup-commands.test.js +177 -0
  331. package/dist/setup/__tests__/setup-commands.test.js.map +1 -0
  332. package/dist/setup/__tests__/state-machine.test.d.ts +2 -0
  333. package/dist/setup/__tests__/state-machine.test.d.ts.map +1 -0
  334. package/dist/setup/__tests__/state-machine.test.js +341 -0
  335. package/dist/setup/__tests__/state-machine.test.js.map +1 -0
  336. package/dist/setup/detect-surfaces.d.ts +21 -0
  337. package/dist/setup/detect-surfaces.d.ts.map +1 -0
  338. package/dist/setup/detect-surfaces.js +39 -0
  339. package/dist/setup/detect-surfaces.js.map +1 -0
  340. package/dist/setup/manifest-writer.d.ts +17 -0
  341. package/dist/setup/manifest-writer.d.ts.map +1 -0
  342. package/dist/setup/manifest-writer.js +153 -0
  343. package/dist/setup/manifest-writer.js.map +1 -0
  344. package/dist/setup/perimeter.d.ts +72 -0
  345. package/dist/setup/perimeter.d.ts.map +1 -0
  346. package/dist/setup/perimeter.js +128 -0
  347. package/dist/setup/perimeter.js.map +1 -0
  348. package/dist/setup/state-machine.d.ts +67 -0
  349. package/dist/setup/state-machine.d.ts.map +1 -0
  350. package/dist/setup/state-machine.js +124 -0
  351. package/dist/setup/state-machine.js.map +1 -0
  352. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  353. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  354. package/dist/surfaces/__tests__/adapter.test.js +90 -0
  355. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  356. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts +2 -0
  357. package/dist/surfaces/__tests__/pb-setup-passthrough.test.d.ts.map +1 -0
  358. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js +132 -0
  359. package/dist/surfaces/__tests__/pb-setup-passthrough.test.js.map +1 -0
  360. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  361. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  362. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  363. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  364. package/dist/surfaces/adapter.d.ts +70 -0
  365. package/dist/surfaces/adapter.d.ts.map +1 -0
  366. package/dist/surfaces/adapter.js +2 -0
  367. package/dist/surfaces/adapter.js.map +1 -0
  368. package/dist/surfaces/adapters/claude.d.ts +3 -0
  369. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  370. package/dist/surfaces/adapters/claude.js +67 -0
  371. package/dist/surfaces/adapters/claude.js.map +1 -0
  372. package/dist/surfaces/adapters/codex.d.ts +3 -0
  373. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  374. package/dist/surfaces/adapters/codex.js +61 -0
  375. package/dist/surfaces/adapters/codex.js.map +1 -0
  376. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  377. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  378. package/dist/surfaces/adapters/copilot.js +59 -0
  379. package/dist/surfaces/adapters/copilot.js.map +1 -0
  380. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  381. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  382. package/dist/surfaces/adapters/cursor.js +78 -0
  383. package/dist/surfaces/adapters/cursor.js.map +1 -0
  384. package/dist/surfaces/registry.d.ts +58 -2
  385. package/dist/surfaces/registry.d.ts.map +1 -1
  386. package/dist/surfaces/registry.js +82 -7
  387. package/dist/surfaces/registry.js.map +1 -1
  388. package/dist/surfaces/telemetry.d.ts +17 -0
  389. package/dist/surfaces/telemetry.d.ts.map +1 -0
  390. package/dist/surfaces/telemetry.js +31 -0
  391. package/dist/surfaces/telemetry.js.map +1 -0
  392. package/package.json +3 -1
  393. package/dist/__tests__/setup.test.d.ts +0 -2
  394. package/dist/__tests__/setup.test.d.ts.map +0 -1
  395. package/dist/__tests__/setup.test.js +0 -141
  396. package/dist/__tests__/setup.test.js.map +0 -1
  397. package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
  398. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
  399. package/dist/generators/__tests__/surface-profiles.test.js +0 -89
  400. package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
  401. package/dist/lib/onboarding-phases.d.ts +0 -9
  402. package/dist/lib/onboarding-phases.d.ts.map +0 -1
  403. package/dist/lib/onboarding-phases.js +0 -120
  404. package/dist/lib/onboarding-phases.js.map +0 -1
@@ -14,6 +14,28 @@ export declare function runSessionStart(options?: {
14
14
  * Resolves TEN-707. Zero network call — reads local session.json only.
15
15
  */
16
16
  export declare function runSessionId(): void;
17
+ /**
18
+ * pb session reset — hard-reset the worktree-local pb SESSION state. TEN-2189 / WP-456 E2.
19
+ *
20
+ * Discards session.json outright (via discardSession — NO resume marker, unlike
21
+ * `pb session close`). Purely local: no network call, no key needed — this is the recovery
22
+ * path when a session is stranded pinned to the wrong workspace (e.g. left over after a
23
+ * pb:preview/pb:real binding flip), so it must work even when the current binding is broken.
24
+ *
25
+ * Scope: SESSION state only. The preview *binding* (config.local.json keys + the
26
+ * .productbrain/PREVIEW_MODE marker) is owned end-to-end by `npm run pb:preview` /
27
+ * `npm run pb:real` — reset never touches it, so the marker can never disagree with the keys
28
+ * that actually route writes (codex PR #145 review: clearing the marker without the keys left
29
+ * the worktree silently still preview-bound). To return a preview-bound worktree to the real
30
+ * Chain: `pb session reset` (clear the session) then `npm run pb:real` (clear the binding).
31
+ *
32
+ * Guard (R4): if there IS an active session, confirm before discarding so in-flight captures
33
+ * aren't silently stranded. `--force` skips the prompt. In a non-interactive context the prompt
34
+ * can't run, so `--force` is required there.
35
+ */
36
+ export declare function runSessionReset(options?: {
37
+ force?: boolean;
38
+ }): Promise<void>;
17
39
  export declare function runSessionClose(options?: {
18
40
  force?: boolean;
19
41
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuCH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAC7C,wFAAwF;IACxF,IAAI,CAAC,EAAE,OAAO,CAAA;CACV,GAAG,OAAO,CAAC,IAAI,CAAC,CA6HrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDtF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwCH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAC7C,wFAAwF;IACxF,IAAI,CAAC,EAAE,OAAO,CAAA;CACV,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCtF;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFtF"}
@@ -7,13 +7,14 @@
7
7
  */
8
8
  import { getConfigOrGuide } from '../lib/config.js';
9
9
  import { kernelCall } from '../lib/client.js';
10
- import { readSession, writeSession, clearSession, readClosedMarker } from '../lib/session.js';
10
+ import { readSession, writeSession, clearSession, discardSession, sessionFileExists, readClosedMarker } from '../lib/session.js';
11
11
  import { isJsonMode } from '../lib/runner.js';
12
+ import { confirm, isInteractive } from '../lib/prompts.js';
12
13
  import { formatSessionStart, formatSessionClose } from '../formatters/session.js';
13
14
  import { runHandshake } from './handshake.js';
14
15
  import { CLIError, ErrorCode } from '../lib/errors.js';
15
16
  import { getActiveProfile } from '../lib/profiles.js';
16
- import { readLocalProjectConfig } from '../lib/config.js';
17
+ import { readLocalProjectConfig, resolveEffectiveProfile } from '../lib/config.js';
17
18
  /** 2-hour window for auto-resume (WP-322 E1). */
18
19
  const RESUME_WINDOW_MS = 2 * 60 * 60 * 1000;
19
20
  export async function runSessionStart(options = {}) {
@@ -22,10 +23,21 @@ export async function runSessionStart(options = {}) {
22
23
  return;
23
24
  // Support both legacy --json flag and global output mode (DEC-299, backward compat)
24
25
  const json = isJsonMode() || options.json === true;
26
+ // Effective profile for this start — used both for the switch-backstop decision and to
27
+ // stamp the session (one read, one value, so they can't disagree mid-start).
28
+ const effectiveProfile = resolveEffectiveProfile().profile;
25
29
  // Check for existing session
26
30
  const existing = readSession();
27
31
  if (existing) {
28
- if (json) {
32
+ // Backstop (TEN-2163): if the effective profile changed since this session started,
33
+ // it's pinned to the old workspace — discard it and start fresh. Local, offline-safe.
34
+ const currentProfile = effectiveProfile;
35
+ const switched = existing.profile && currentProfile && existing.profile !== currentProfile;
36
+ if (switched) {
37
+ discardSession();
38
+ // fall through to the fresh-start path below
39
+ }
40
+ else if (json) {
29
41
  process.stdout.write(JSON.stringify({
30
42
  sessionId: existing.sessionId,
31
43
  workspaceName: existing.workspaceName,
@@ -35,12 +47,14 @@ export async function runSessionStart(options = {}) {
35
47
  }) + '\n');
36
48
  return;
37
49
  }
38
- process.stdout.write(`Session already active: ${existing.sessionId}\n`);
39
- process.stdout.write(`Started: ${existing.startedAt}\n`);
40
- process.stdout.write(`Entries captured: ${existing.entriesCaptured.length}\n`);
41
- process.stdout.write('\n');
42
- process.stdout.write('Run `pb session close` to end it, or `pb session close --force` to force-close.\n');
43
- return;
50
+ else {
51
+ process.stdout.write(`Session already active: ${existing.sessionId}\n`);
52
+ process.stdout.write(`Started: ${existing.startedAt}\n`);
53
+ process.stdout.write(`Entries captured: ${existing.entriesCaptured.length}\n`);
54
+ process.stdout.write('\n');
55
+ process.stdout.write('Run `pb session close` to end it, or `pb session close --force` to force-close.\n');
56
+ return;
57
+ }
44
58
  }
45
59
  // WP-322 E1: Check for a recent closed session — auto-resume within 2h window
46
60
  const closedMarker = readClosedMarker();
@@ -49,7 +63,17 @@ export async function runSessionStart(options = {}) {
49
63
  if (elapsed < RESUME_WINDOW_MS) {
50
64
  // Resolve workspace to get keyId (needed for resumeSession)
51
65
  const wsForResume = await kernelCall('resolveWorkspace', {});
52
- if (wsForResume?.keyId) {
66
+ // Backstop (TEN-2189): the closed marker is pinned to a workspace. If the current binding
67
+ // now resolves to a DIFFERENT workspace (a pb:preview/pb:real flip or profile switch since
68
+ // close), resuming would call agent.resumeSession with a foreign session id and the
69
+ // deployment rejects the cross-workspace resume. Discard the stale marker and fall through
70
+ // to a fresh start instead. This mirrors the active-session profile backstop above, keyed
71
+ // on workspaceId — the resume path previously had no such guard, which is the gap E2 closes.
72
+ if (wsForResume?._id && closedMarker.workspaceId !== wsForResume._id) {
73
+ discardSession();
74
+ // fall through to the fresh-start path below
75
+ }
76
+ else if (wsForResume?.keyId) {
53
77
  if (!json)
54
78
  process.stdout.write('Resuming session...\n');
55
79
  const resumed = await kernelCall('agent.resumeSession', {
@@ -65,6 +89,7 @@ export async function runSessionStart(options = {}) {
65
89
  workspaceName: resumed.workspaceName,
66
90
  startedAt: new Date().toISOString(),
67
91
  entriesCaptured: [],
92
+ profile: effectiveProfile ?? undefined,
68
93
  };
69
94
  writeSession(state);
70
95
  if (json) {
@@ -119,6 +144,7 @@ export async function runSessionStart(options = {}) {
119
144
  workspaceName: result.workspaceName,
120
145
  startedAt: new Date().toISOString(),
121
146
  entriesCaptured: [],
147
+ profile: effectiveProfile ?? undefined,
122
148
  };
123
149
  writeSession(state);
124
150
  if (json) {
@@ -152,6 +178,56 @@ export function runSessionId() {
152
178
  }
153
179
  process.stdout.write(session.sessionId + '\n');
154
180
  }
181
+ /**
182
+ * pb session reset — hard-reset the worktree-local pb SESSION state. TEN-2189 / WP-456 E2.
183
+ *
184
+ * Discards session.json outright (via discardSession — NO resume marker, unlike
185
+ * `pb session close`). Purely local: no network call, no key needed — this is the recovery
186
+ * path when a session is stranded pinned to the wrong workspace (e.g. left over after a
187
+ * pb:preview/pb:real binding flip), so it must work even when the current binding is broken.
188
+ *
189
+ * Scope: SESSION state only. The preview *binding* (config.local.json keys + the
190
+ * .productbrain/PREVIEW_MODE marker) is owned end-to-end by `npm run pb:preview` /
191
+ * `npm run pb:real` — reset never touches it, so the marker can never disagree with the keys
192
+ * that actually route writes (codex PR #145 review: clearing the marker without the keys left
193
+ * the worktree silently still preview-bound). To return a preview-bound worktree to the real
194
+ * Chain: `pb session reset` (clear the session) then `npm run pb:real` (clear the binding).
195
+ *
196
+ * Guard (R4): if there IS an active session, confirm before discarding so in-flight captures
197
+ * aren't silently stranded. `--force` skips the prompt. In a non-interactive context the prompt
198
+ * can't run, so `--force` is required there.
199
+ */
200
+ export async function runSessionReset(options = {}) {
201
+ const active = readSession();
202
+ // Nothing local to reset — neither an active session nor a closed marker. (A lone
203
+ // PREVIEW_MODE marker is binding state, not session state — `npm run pb:real` clears it.)
204
+ if (!active && !sessionFileExists()) {
205
+ process.stdout.write('Nothing to reset — no local session state.\n');
206
+ return;
207
+ }
208
+ // Active session present: confirm before discarding (R4) unless --force.
209
+ if (active && !options.force) {
210
+ if (!isInteractive()) {
211
+ throw new CLIError('Active session present — refusing to reset without confirmation.', {
212
+ code: ErrorCode.NON_INTERACTIVE,
213
+ category: 'session',
214
+ guidance: 'Re-run with `pb session reset --force` to discard the active session.',
215
+ });
216
+ }
217
+ process.stdout.write(`Active session: ${active.sessionId} (${active.entriesCaptured.length} entries captured)\n`);
218
+ const ok = await confirm({
219
+ message: 'Discard this active session and any in-flight captures?',
220
+ initialValue: false,
221
+ });
222
+ if (!ok) {
223
+ process.stdout.write('Reset cancelled — session left intact.\n');
224
+ return;
225
+ }
226
+ }
227
+ // Hard-reset: discard session.json (no resume marker). Binding state is left untouched.
228
+ discardSession();
229
+ process.stdout.write('Session state reset — session.json cleared.\n');
230
+ }
155
231
  export async function runSessionClose(options = {}) {
156
232
  const config = await getConfigOrGuide(() => runSessionClose(options));
157
233
  if (!config)
@@ -186,18 +262,40 @@ export async function runSessionClose(options = {}) {
186
262
  }
187
263
  catch (err) {
188
264
  if (!options.force) {
189
- throw new CLIError(`Failed to close session: ${err instanceof Error ? err.message : String(err)}`, {
265
+ const detail = err instanceof Error ? err.message : String(err);
266
+ throw new CLIError(`Failed to close session: ${detail}. Run \`pb session close --force\` to clear local state anyway.`, {
190
267
  code: ErrorCode.NETWORK_UNREACHABLE,
191
268
  category: 'network',
192
- guidance: 'Use `pb session close --force` to clear local state anyway.',
269
+ guidance: 'Run `pb session close --force` to clear local state anyway.',
193
270
  });
194
271
  }
195
272
  }
196
273
  process.stdout.write(formatSessionClose(session) + '\n');
274
+ // WP-439 S6: surface unrepaired setup-asset receipts as a non-blocking
275
+ // advisory. Failures here are silent — never let a network blip or schema
276
+ // gap prevent a session from closing.
277
+ try {
278
+ const advisory = await kernelCall('setup.listFailedAuditReceipts', {});
279
+ if (advisory.total > 0) {
280
+ const preview = advisory.entries
281
+ .slice(0, 3)
282
+ .map((e) => `${e.entryId} (${e.status})`)
283
+ .join(', ');
284
+ const more = advisory.total > 3 ? ` and ${advisory.total - 3} more` : '';
285
+ process.stdout.write(`\nNote: ${advisory.total} unrepaired setup-asset receipt(s) on file — ${preview}${more}.\n` +
286
+ 'Run `pb setup-audit` to inspect; `pb setup-audit --repair` to retry.\n');
287
+ }
288
+ }
289
+ catch {
290
+ // Advisory call failure is non-fatal.
291
+ }
197
292
  // Clear local state
198
293
  clearSession();
199
- // Refresh context files so next session starts with updated knowledge
294
+ // Refresh context files so next session starts with updated knowledge.
295
+ // WP-439 S4: internal handshake runs lenient — strict-mode failures from an
296
+ // automatic refresh would block close; orphans are surfaced via the
297
+ // advisory above + `pb handshake` (called directly) instead.
200
298
  process.stdout.write('Refreshing context...\n');
201
- await runHandshake({ force: false, apply: true });
299
+ await runHandshake({ force: false, apply: true, lenient: true });
202
300
  }
203
301
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * `pb setup-audit` — WP-439 S2 (audit) + S3 (--repair).
3
+ *
4
+ * Operator preflight for handshake: classifies every setup_asset row in the
5
+ * caller's active workspace and surfaces orphaned bodies BEFORE handshake
6
+ * runs. With --repair, attempts a transactional fix for each orphan that has
7
+ * a canonical body in STARTER_* (class III and class II rows).
8
+ *
9
+ * Modes:
10
+ * pb setup-audit — human table; exit 1 if orphans > 0.
11
+ * pb setup-audit --json — machine-readable JSON; exit 1 if orphans > 0.
12
+ * pb setup-audit --repair — audit + attempt repair on III/II rows.
13
+ * Exit 1 if any repair genuinely fails (not
14
+ * counted: 'unrecoverable' — those are
15
+ * expected when no STARTER_* match exists).
16
+ *
17
+ * Server contract (see convex/setup.ts:auditAssetBodies, repairAssetBody):
18
+ * - Gateway derives workspaceId from the API key / JWT (injectSessionAuth).
19
+ * - Audit returns { summary, rows[] }. See `AuditResult` below.
20
+ * - Repair returns { status, newBodyStorageId, error, receiptId }.
21
+ *
22
+ * Notes:
23
+ * - Class 'i_inline_only' rows are NOT repaired by this slice (their body
24
+ * recovery comes from the inline `data.body` via a future bet, not from
25
+ * STARTER_*).
26
+ * - Class 'iv_hash_drift' rows are NOT repaired by this slice (out of scope
27
+ * for S3; resolution is per-row operator review).
28
+ *
29
+ * Auth: requires `pb login` / API key. No active write session needed.
30
+ */
31
+ export interface AuditRow {
32
+ entryId: string;
33
+ entryDocId: string;
34
+ assetKind: 'skill' | 'rule' | 'hook' | 'bundle';
35
+ name: string;
36
+ class: 'ok' | 'i_inline_only' | 'ii_unrecoverable' | 'iii_blob_missing' | 'iv_hash_drift';
37
+ bodyStorageId: string | null;
38
+ inlineBytes: number;
39
+ }
40
+ export interface AuditResult {
41
+ summary: {
42
+ total: number;
43
+ ok: number;
44
+ orphans: number;
45
+ byClass: {
46
+ i: number;
47
+ ii: number;
48
+ iii: number;
49
+ iv: number;
50
+ };
51
+ };
52
+ rows: AuditRow[];
53
+ }
54
+ export interface RunSetupAuditOptions {
55
+ json?: boolean;
56
+ repair?: boolean;
57
+ }
58
+ export declare function runSetupAudit(opts?: RunSetupAuditOptions): Promise<void>;
59
+ //# sourceMappingURL=setup-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-audit.d.ts","sourceRoot":"","sources":["../../src/commands/setup-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAkBH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,GAAG,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAC1F,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IACF,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAsKD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAcD,wBAAsB,aAAa,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FlF"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * `pb setup-audit` — WP-439 S2 (audit) + S3 (--repair).
3
+ *
4
+ * Operator preflight for handshake: classifies every setup_asset row in the
5
+ * caller's active workspace and surfaces orphaned bodies BEFORE handshake
6
+ * runs. With --repair, attempts a transactional fix for each orphan that has
7
+ * a canonical body in STARTER_* (class III and class II rows).
8
+ *
9
+ * Modes:
10
+ * pb setup-audit — human table; exit 1 if orphans > 0.
11
+ * pb setup-audit --json — machine-readable JSON; exit 1 if orphans > 0.
12
+ * pb setup-audit --repair — audit + attempt repair on III/II rows.
13
+ * Exit 1 if any repair genuinely fails (not
14
+ * counted: 'unrecoverable' — those are
15
+ * expected when no STARTER_* match exists).
16
+ *
17
+ * Server contract (see convex/setup.ts:auditAssetBodies, repairAssetBody):
18
+ * - Gateway derives workspaceId from the API key / JWT (injectSessionAuth).
19
+ * - Audit returns { summary, rows[] }. See `AuditResult` below.
20
+ * - Repair returns { status, newBodyStorageId, error, receiptId }.
21
+ *
22
+ * Notes:
23
+ * - Class 'i_inline_only' rows are NOT repaired by this slice (their body
24
+ * recovery comes from the inline `data.body` via a future bet, not from
25
+ * STARTER_*).
26
+ * - Class 'iv_hash_drift' rows are NOT repaired by this slice (out of scope
27
+ * for S3; resolution is per-row operator review).
28
+ *
29
+ * Auth: requires `pb login` / API key. No active write session needed.
30
+ */
31
+ import { getConfigOrGuide } from '../lib/config.js';
32
+ import { kernelCall } from '../lib/client.js';
33
+ import { CLIError, ErrorCode } from '../lib/errors.js';
34
+ import { bold, dim, green, red, yellow, heading, icons, } from '../lib/style.js';
35
+ import { isJsonMode } from '../lib/runner.js';
36
+ // ── Formatting ───────────────────────────────────────────────────────────────
37
+ const CLASS_LABEL = {
38
+ ok: 'ok',
39
+ i_inline_only: 'I:inline-only',
40
+ ii_unrecoverable: 'II:unrecoverable',
41
+ iii_blob_missing: 'III:blob-missing',
42
+ iv_hash_drift: 'IV:hash-drift',
43
+ };
44
+ function colorize(cls, text) {
45
+ if (cls === 'ok')
46
+ return green(text);
47
+ if (cls === 'iii_blob_missing' || cls === 'ii_unrecoverable')
48
+ return red(text);
49
+ return yellow(text);
50
+ }
51
+ function pad(s, len) {
52
+ if (s.length >= len)
53
+ return s;
54
+ return s + ' '.repeat(len - s.length);
55
+ }
56
+ function formatPretty(result) {
57
+ const lines = [];
58
+ lines.push('');
59
+ lines.push(`${bold('Setup-asset orphan audit')} ${dim('— WP-439 S2')}`);
60
+ lines.push('');
61
+ const { total, ok, orphans, byClass } = result.summary;
62
+ lines.push(heading('Summary'));
63
+ lines.push('');
64
+ lines.push(` ${dim('Total rows :')} ${bold(String(total))}`);
65
+ lines.push(` ${dim('OK :')} ${green(String(ok))}`);
66
+ lines.push(` ${dim('Orphans :')} ${orphans > 0 ? red(String(orphans)) : green(String(orphans))}`);
67
+ if (orphans > 0) {
68
+ lines.push('');
69
+ lines.push(` ${dim('Class I (inline-only) :')} ${yellow(String(byClass.i))}`);
70
+ lines.push(` ${dim('Class II (unrecoverable) :')} ${red(String(byClass.ii))}`);
71
+ lines.push(` ${dim('Class III (blob-missing) :')} ${red(String(byClass.iii))}`);
72
+ lines.push(` ${dim('Class IV (hash-drift) :')} ${yellow(String(byClass.iv))}`);
73
+ }
74
+ lines.push('');
75
+ if (result.rows.length === 0) {
76
+ lines.push(dim('No setup_asset rows in this workspace.'));
77
+ return lines.join('\n');
78
+ }
79
+ // Show orphan rows first, then ok rows (for scannability).
80
+ const orphanRows = result.rows.filter((r) => r.class !== 'ok');
81
+ const okRows = result.rows.filter((r) => r.class === 'ok');
82
+ if (orphanRows.length > 0) {
83
+ lines.push(heading('Orphaned rows'));
84
+ lines.push('');
85
+ // Column widths sized to the data so the table stays readable in narrow shells.
86
+ const idW = Math.min(40, Math.max(...orphanRows.map((r) => r.entryId.length), 'EntryId'.length));
87
+ const nameW = Math.min(30, Math.max(...orphanRows.map((r) => r.name.length), 'Name'.length));
88
+ lines.push(` ${dim(pad('EntryId', idW))} ${dim(pad('Kind', 6))} ${dim(pad('Name', nameW))} ${dim('Class')}`);
89
+ for (const row of orphanRows) {
90
+ const label = CLASS_LABEL[row.class];
91
+ lines.push(` ${pad(row.entryId, idW)} ${pad(row.assetKind, 6)} ${pad(row.name.slice(0, nameW), nameW)} ${colorize(row.class, label)}`);
92
+ }
93
+ lines.push('');
94
+ }
95
+ if (okRows.length > 0) {
96
+ lines.push(`${dim(`${icons.dot} ${okRows.length} row(s) classified OK (hidden — re-run with --json to see them).`)}`);
97
+ lines.push('');
98
+ }
99
+ if (orphans === 0) {
100
+ lines.push(green(`${icons.pass} All setup_asset bodies resolve.`));
101
+ }
102
+ return lines.join('\n');
103
+ }
104
+ /**
105
+ * Repair targets: classes that can be regenerated from STARTER_* constants.
106
+ * - iii_blob_missing — storage blob is gone; canonical body is the fix.
107
+ * - ii_unrecoverable — neither storage nor inline body; canonical body
108
+ * is the only recovery path (otherwise the row was never recoverable).
109
+ *
110
+ * Excluded:
111
+ * - i_inline_only — inline body IS the body; restore from `data.body`
112
+ * (out of scope for this slice).
113
+ * - iv_hash_drift — drifted; manual review (out of scope).
114
+ */
115
+ function isRepairTarget(cls) {
116
+ return cls === 'iii_blob_missing' || cls === 'ii_unrecoverable';
117
+ }
118
+ async function runRepair(rows) {
119
+ const targets = rows.filter((r) => isRepairTarget(r.class));
120
+ const perRow = [];
121
+ let succeeded = 0;
122
+ let failed = 0;
123
+ let unrecoverable = 0;
124
+ for (const row of targets) {
125
+ let outcome;
126
+ try {
127
+ outcome = await kernelCall('setup.repairAssetBody', {
128
+ entryDocId: row.entryDocId,
129
+ });
130
+ }
131
+ catch (err) {
132
+ outcome = {
133
+ status: 'failed',
134
+ newBodyStorageId: null,
135
+ error: err instanceof Error ? err.message : String(err),
136
+ receiptId: '',
137
+ };
138
+ }
139
+ perRow.push({ row, outcome });
140
+ if (outcome.status === 'succeeded')
141
+ succeeded++;
142
+ else if (outcome.status === 'unrecoverable')
143
+ unrecoverable++;
144
+ else
145
+ failed++;
146
+ // Per-row outcome line.
147
+ if (outcome.status === 'succeeded') {
148
+ process.stdout.write(`${green(icons.pass)} ${row.entryId} repaired\n`);
149
+ }
150
+ else if (outcome.status === 'unrecoverable') {
151
+ process.stdout.write(`${yellow('⊘')} ${row.entryId} unrecoverable (no STARTER_* match)\n`);
152
+ }
153
+ else {
154
+ process.stdout.write(`${red(icons.fail)} ${row.entryId} failed: ${outcome.error ?? 'unknown error'}\n`);
155
+ }
156
+ }
157
+ return { succeeded, failed, unrecoverable, perRow };
158
+ }
159
+ async function fetchAudit() {
160
+ try {
161
+ return await kernelCall('setup.auditAssetBodies', {});
162
+ }
163
+ catch (err) {
164
+ if (err instanceof CLIError)
165
+ throw err;
166
+ throw new CLIError(err instanceof Error ? err.message : String(err), {
167
+ code: ErrorCode.INTERNAL,
168
+ category: 'internal',
169
+ });
170
+ }
171
+ }
172
+ export async function runSetupAudit(opts = {}) {
173
+ const config = await getConfigOrGuide(() => runSetupAudit(opts));
174
+ if (!config)
175
+ return;
176
+ // Respect both the global --json flag (isJsonMode) and the per-command override.
177
+ const json = opts.json || isJsonMode();
178
+ const repair = opts.repair === true;
179
+ // ── 1. Initial audit ──────────────────────────────────────────────────────
180
+ let result = await fetchAudit();
181
+ if (!repair) {
182
+ if (json) {
183
+ process.stdout.write(JSON.stringify(result) + '\n');
184
+ }
185
+ else {
186
+ process.stdout.write(formatPretty(result) + '\n');
187
+ }
188
+ // Exit-code contract: 0 when clean, 1 when any orphan class is present.
189
+ if (result.summary.orphans > 0) {
190
+ process.exit(1);
191
+ }
192
+ return;
193
+ }
194
+ // ── 2. --repair path: print initial audit, attempt repairs, re-audit. ─────
195
+ if (json) {
196
+ // JSON mode + --repair: emit the union artifact as a single object so
197
+ // pipelines can read structured outcomes.
198
+ const repairReport = await runRepair(result.rows);
199
+ const after = await fetchAudit();
200
+ process.stdout.write(JSON.stringify({
201
+ before: result,
202
+ repair: {
203
+ attempted: repairReport.perRow.length,
204
+ succeeded: repairReport.succeeded,
205
+ failed: repairReport.failed,
206
+ unrecoverable: repairReport.unrecoverable,
207
+ perRow: repairReport.perRow.map(({ row, outcome }) => ({
208
+ entryId: row.entryId,
209
+ entryDocId: row.entryDocId,
210
+ class: row.class,
211
+ status: outcome.status,
212
+ error: outcome.error,
213
+ receiptId: outcome.receiptId,
214
+ newBodyStorageId: outcome.newBodyStorageId,
215
+ })),
216
+ },
217
+ after,
218
+ }) + '\n');
219
+ if (repairReport.failed > 0)
220
+ process.exit(1);
221
+ return;
222
+ }
223
+ // Pretty mode.
224
+ process.stdout.write(formatPretty(result) + '\n');
225
+ const repairTargets = result.rows.filter((r) => isRepairTarget(r.class));
226
+ if (repairTargets.length === 0) {
227
+ process.stdout.write(dim('\nNo repairable orphans (class III/II) — nothing to do.\n'));
228
+ if (result.summary.orphans > 0) {
229
+ // There are class I or IV orphans but nothing this slice can fix.
230
+ process.exit(1);
231
+ }
232
+ return;
233
+ }
234
+ process.stdout.write(`\n${heading('Repair')}\n\n`);
235
+ const repairReport = await runRepair(result.rows);
236
+ process.stdout.write('\n');
237
+ process.stdout.write(` ${dim('Attempted :')} ${bold(String(repairReport.perRow.length))}\n`);
238
+ process.stdout.write(` ${dim('Succeeded :')} ${green(String(repairReport.succeeded))}\n`);
239
+ process.stdout.write(` ${dim('Unrecoverable:')} ${repairReport.unrecoverable > 0 ? yellow(String(repairReport.unrecoverable)) : String(repairReport.unrecoverable)}\n`);
240
+ process.stdout.write(` ${dim('Failed :')} ${repairReport.failed > 0 ? red(String(repairReport.failed)) : String(repairReport.failed)}\n`);
241
+ process.stdout.write('\n');
242
+ // ── 3. Re-run the audit so the operator sees the fresh state. ─────────────
243
+ const after = await fetchAudit();
244
+ process.stdout.write(formatPretty(after) + '\n');
245
+ // Exit code: only genuine failures (not 'unrecoverable') trip the wire.
246
+ if (repairReport.failed > 0) {
247
+ process.exit(1);
248
+ }
249
+ }
250
+ //# sourceMappingURL=setup-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-audit.js","sourceRoot":"","sources":["../../src/commands/setup-audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `pb setup-detect-surfaces` — WP-431 S3.
3
+ *
4
+ * Walks the repo for known surface markers (delegated to SURFACE_ADAPTERS) and
5
+ * union-merges the result with whatever `manifest.surfaces` already declares.
6
+ * STD-235 forward-only: detection NEVER removes a surface; only adds. Manifest
7
+ * write goes through `writeManifestSurfaces` which calls `assertSetupWritePath`
8
+ * (STD-234 perimeter).
9
+ *
10
+ * WP-433 S2: After the local manifest write, stamps the detected surfaces onto
11
+ * the server via `setup.stampDetectedSurfaces` so Phase 1 → Phase 2 advances in
12
+ * one server call (TEN-1990 / IMP-10). If the server call fails, the error is
13
+ * logged and surfaced to the caller but the local manifest is NOT rolled back
14
+ * (it is already on disk; the next run will retry the server stamp).
15
+ */
16
+ export interface RunSetupDetectSurfacesOptions {
17
+ cwd?: string;
18
+ /** Skip the server stamp call (used in tests / offline mode). */
19
+ skipServerStamp?: boolean;
20
+ }
21
+ export interface SetupDetectSurfacesResult {
22
+ detected: string[];
23
+ existing: string[];
24
+ newlyAdded: string[];
25
+ union: string[];
26
+ manifestUpdated: boolean;
27
+ manifestPath: string;
28
+ /** WP-433 S2: result of the server stamp call, or null if skipped / not needed. */
29
+ serverStamp: {
30
+ stamped: boolean;
31
+ surfaces: string[];
32
+ } | null;
33
+ /** WP-433 S2: error from the server stamp call, if any. Does NOT abort the local write. */
34
+ serverStampError: string | null;
35
+ }
36
+ export declare function runSetupDetectSurfaces(opts?: RunSetupDetectSurfacesOptions): Promise<SetupDetectSurfacesResult>;
37
+ export declare function formatDetectSurfacesSummary(result: SetupDetectSurfacesResult): string;
38
+ //# sourceMappingURL=setup-detect-surfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-detect-surfaces.d.ts","sourceRoot":"","sources":["../../src/commands/setup-detect-surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,WAAW,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,2FAA2F;IAC3F,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,6BAAkC,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAsCpC;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAqBrF"}