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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) hide show
  1. package/README.md +98 -30
  2. package/dist/__tests__/adapters.test.d.ts +2 -0
  3. package/dist/__tests__/adapters.test.d.ts.map +1 -0
  4. package/dist/__tests__/adapters.test.js +417 -0
  5. package/dist/__tests__/adapters.test.js.map +1 -0
  6. package/dist/__tests__/audit.test.d.ts +2 -0
  7. package/dist/__tests__/audit.test.d.ts.map +1 -0
  8. package/dist/__tests__/audit.test.js +394 -0
  9. package/dist/__tests__/audit.test.js.map +1 -0
  10. package/dist/__tests__/batch-transformations.test.d.ts +2 -0
  11. package/dist/__tests__/batch-transformations.test.d.ts.map +1 -0
  12. package/dist/__tests__/batch-transformations.test.js +263 -0
  13. package/dist/__tests__/batch-transformations.test.js.map +1 -0
  14. package/dist/__tests__/capture.test.d.ts +2 -0
  15. package/dist/__tests__/capture.test.d.ts.map +1 -0
  16. package/dist/__tests__/capture.test.js +377 -0
  17. package/dist/__tests__/capture.test.js.map +1 -0
  18. package/dist/__tests__/config.test.d.ts +8 -0
  19. package/dist/__tests__/config.test.d.ts.map +1 -0
  20. package/dist/__tests__/config.test.js +166 -0
  21. package/dist/__tests__/config.test.js.map +1 -0
  22. package/dist/__tests__/constants.test.d.ts +2 -0
  23. package/dist/__tests__/constants.test.d.ts.map +1 -0
  24. package/dist/__tests__/constants.test.js +141 -0
  25. package/dist/__tests__/constants.test.js.map +1 -0
  26. package/dist/__tests__/constellation.test.d.ts +2 -0
  27. package/dist/__tests__/constellation.test.d.ts.map +1 -0
  28. package/dist/__tests__/constellation.test.js +254 -0
  29. package/dist/__tests__/constellation.test.js.map +1 -0
  30. package/dist/__tests__/context-strategy.test.d.ts +2 -0
  31. package/dist/__tests__/context-strategy.test.d.ts.map +1 -0
  32. package/dist/__tests__/context-strategy.test.js +79 -0
  33. package/dist/__tests__/context-strategy.test.js.map +1 -0
  34. package/dist/__tests__/errors.test.d.ts +2 -0
  35. package/dist/__tests__/errors.test.d.ts.map +1 -0
  36. package/dist/__tests__/errors.test.js +117 -0
  37. package/dist/__tests__/errors.test.js.map +1 -0
  38. package/dist/__tests__/experiment.test.d.ts +6 -0
  39. package/dist/__tests__/experiment.test.d.ts.map +1 -0
  40. package/dist/__tests__/experiment.test.js +69 -0
  41. package/dist/__tests__/experiment.test.js.map +1 -0
  42. package/dist/__tests__/fields.test.d.ts +2 -0
  43. package/dist/__tests__/fields.test.d.ts.map +1 -0
  44. package/dist/__tests__/fields.test.js +238 -0
  45. package/dist/__tests__/fields.test.js.map +1 -0
  46. package/dist/__tests__/glossary.test.d.ts +2 -0
  47. package/dist/__tests__/glossary.test.d.ts.map +1 -0
  48. package/dist/__tests__/glossary.test.js +32 -0
  49. package/dist/__tests__/glossary.test.js.map +1 -0
  50. package/dist/__tests__/handshake.test.d.ts +2 -0
  51. package/dist/__tests__/handshake.test.d.ts.map +1 -0
  52. package/dist/__tests__/handshake.test.js +196 -0
  53. package/dist/__tests__/handshake.test.js.map +1 -0
  54. package/dist/__tests__/ingest.test.js +110 -12
  55. package/dist/__tests__/ingest.test.js.map +1 -1
  56. package/dist/__tests__/init.test.d.ts +7 -0
  57. package/dist/__tests__/init.test.d.ts.map +1 -0
  58. package/dist/__tests__/init.test.js +146 -0
  59. package/dist/__tests__/init.test.js.map +1 -0
  60. package/dist/__tests__/login.test.d.ts +2 -0
  61. package/dist/__tests__/login.test.d.ts.map +1 -0
  62. package/dist/__tests__/login.test.js +167 -0
  63. package/dist/__tests__/login.test.js.map +1 -0
  64. package/dist/__tests__/onboarding-path-b.test.d.ts +2 -0
  65. package/dist/__tests__/onboarding-path-b.test.d.ts.map +1 -0
  66. package/dist/__tests__/onboarding-path-b.test.js +46 -0
  67. package/dist/__tests__/onboarding-path-b.test.js.map +1 -0
  68. package/dist/__tests__/onboarding.test.d.ts +6 -0
  69. package/dist/__tests__/onboarding.test.d.ts.map +1 -0
  70. package/dist/__tests__/onboarding.test.js +347 -0
  71. package/dist/__tests__/onboarding.test.js.map +1 -0
  72. package/dist/__tests__/orient.test.d.ts +2 -0
  73. package/dist/__tests__/orient.test.d.ts.map +1 -0
  74. package/dist/__tests__/orient.test.js +143 -0
  75. package/dist/__tests__/orient.test.js.map +1 -0
  76. package/dist/__tests__/profiles.test.d.ts +2 -0
  77. package/dist/__tests__/profiles.test.d.ts.map +1 -0
  78. package/dist/__tests__/profiles.test.js +168 -0
  79. package/dist/__tests__/profiles.test.js.map +1 -0
  80. package/dist/__tests__/promote.test.d.ts +2 -0
  81. package/dist/__tests__/promote.test.d.ts.map +1 -0
  82. package/dist/__tests__/promote.test.js +161 -0
  83. package/dist/__tests__/promote.test.js.map +1 -0
  84. package/dist/__tests__/prompts.test.d.ts +6 -0
  85. package/dist/__tests__/prompts.test.d.ts.map +1 -0
  86. package/dist/__tests__/prompts.test.js +146 -0
  87. package/dist/__tests__/prompts.test.js.map +1 -0
  88. package/dist/__tests__/proposals.test.d.ts +2 -0
  89. package/dist/__tests__/proposals.test.d.ts.map +1 -0
  90. package/dist/__tests__/proposals.test.js +167 -0
  91. package/dist/__tests__/proposals.test.js.map +1 -0
  92. package/dist/__tests__/relate.test.d.ts +2 -0
  93. package/dist/__tests__/relate.test.d.ts.map +1 -0
  94. package/dist/__tests__/relate.test.js +103 -0
  95. package/dist/__tests__/relate.test.js.map +1 -0
  96. package/dist/__tests__/repo-detect.test.d.ts +2 -0
  97. package/dist/__tests__/repo-detect.test.d.ts.map +1 -0
  98. package/dist/__tests__/repo-detect.test.js +215 -0
  99. package/dist/__tests__/repo-detect.test.js.map +1 -0
  100. package/dist/__tests__/runner.test.d.ts +2 -0
  101. package/dist/__tests__/runner.test.d.ts.map +1 -0
  102. package/dist/__tests__/runner.test.js +219 -0
  103. package/dist/__tests__/runner.test.js.map +1 -0
  104. package/dist/__tests__/session-state-machine.test.d.ts +2 -0
  105. package/dist/__tests__/session-state-machine.test.d.ts.map +1 -0
  106. package/dist/__tests__/session-state-machine.test.js +154 -0
  107. package/dist/__tests__/session-state-machine.test.js.map +1 -0
  108. package/dist/__tests__/session-touch.test.d.ts +2 -0
  109. package/dist/__tests__/session-touch.test.d.ts.map +1 -0
  110. package/dist/__tests__/session-touch.test.js +134 -0
  111. package/dist/__tests__/session-touch.test.js.map +1 -0
  112. package/dist/__tests__/session.test.d.ts +2 -0
  113. package/dist/__tests__/session.test.d.ts.map +1 -0
  114. package/dist/__tests__/session.test.js +46 -0
  115. package/dist/__tests__/session.test.js.map +1 -0
  116. package/dist/__tests__/setup.test.d.ts +2 -0
  117. package/dist/__tests__/setup.test.d.ts.map +1 -0
  118. package/dist/__tests__/setup.test.js +141 -0
  119. package/dist/__tests__/setup.test.js.map +1 -0
  120. package/dist/__tests__/spinner-labels.test.d.ts +2 -0
  121. package/dist/__tests__/spinner-labels.test.d.ts.map +1 -0
  122. package/dist/__tests__/spinner-labels.test.js +23 -0
  123. package/dist/__tests__/spinner-labels.test.js.map +1 -0
  124. package/dist/__tests__/strip.test.d.ts +2 -0
  125. package/dist/__tests__/strip.test.d.ts.map +1 -0
  126. package/dist/__tests__/strip.test.js +136 -0
  127. package/dist/__tests__/strip.test.js.map +1 -0
  128. package/dist/__tests__/surface-profiles.test.d.ts +2 -0
  129. package/dist/__tests__/surface-profiles.test.d.ts.map +1 -0
  130. package/dist/__tests__/surface-profiles.test.js +233 -0
  131. package/dist/__tests__/surface-profiles.test.js.map +1 -0
  132. package/dist/__tests__/update.test.d.ts +2 -0
  133. package/dist/__tests__/update.test.d.ts.map +1 -0
  134. package/dist/__tests__/update.test.js +228 -0
  135. package/dist/__tests__/update.test.js.map +1 -0
  136. package/dist/__tests__/workspace.test.d.ts +2 -0
  137. package/dist/__tests__/workspace.test.d.ts.map +1 -0
  138. package/dist/__tests__/workspace.test.js +308 -0
  139. package/dist/__tests__/workspace.test.js.map +1 -0
  140. package/dist/commands/accept.d.ts +18 -0
  141. package/dist/commands/accept.d.ts.map +1 -0
  142. package/dist/commands/accept.js +76 -0
  143. package/dist/commands/accept.js.map +1 -0
  144. package/dist/commands/admin/cockpit.d.ts +88 -0
  145. package/dist/commands/admin/cockpit.d.ts.map +1 -0
  146. package/dist/commands/admin/cockpit.js +409 -0
  147. package/dist/commands/admin/cockpit.js.map +1 -0
  148. package/dist/commands/admin/index.d.ts +21 -0
  149. package/dist/commands/admin/index.d.ts.map +1 -0
  150. package/dist/commands/admin/index.js +254 -0
  151. package/dist/commands/admin/index.js.map +1 -0
  152. package/dist/commands/admin/inspect.d.ts +21 -0
  153. package/dist/commands/admin/inspect.d.ts.map +1 -0
  154. package/dist/commands/admin/inspect.js +536 -0
  155. package/dist/commands/admin/inspect.js.map +1 -0
  156. package/dist/commands/admin/inspect.test.d.ts +7 -0
  157. package/dist/commands/admin/inspect.test.d.ts.map +1 -0
  158. package/dist/commands/admin/inspect.test.js +71 -0
  159. package/dist/commands/admin/inspect.test.js.map +1 -0
  160. package/dist/commands/admin/seed.d.ts +32 -0
  161. package/dist/commands/admin/seed.d.ts.map +1 -0
  162. package/dist/commands/admin/seed.js +527 -0
  163. package/dist/commands/admin/seed.js.map +1 -0
  164. package/dist/commands/admin/seed.test.d.ts +6 -0
  165. package/dist/commands/admin/seed.test.d.ts.map +1 -0
  166. package/dist/commands/admin/seed.test.js +65 -0
  167. package/dist/commands/admin/seed.test.js.map +1 -0
  168. package/dist/commands/audit.d.ts +25 -0
  169. package/dist/commands/audit.d.ts.map +1 -0
  170. package/dist/commands/audit.js +188 -0
  171. package/dist/commands/audit.js.map +1 -0
  172. package/dist/commands/brand-pack.d.ts +2 -0
  173. package/dist/commands/brand-pack.d.ts.map +1 -0
  174. package/dist/commands/brand-pack.js +25 -0
  175. package/dist/commands/brand-pack.js.map +1 -0
  176. package/dist/commands/brief.d.ts +28 -0
  177. package/dist/commands/brief.d.ts.map +1 -0
  178. package/dist/commands/brief.js +75 -0
  179. package/dist/commands/brief.js.map +1 -0
  180. package/dist/commands/capture.d.ts +30 -0
  181. package/dist/commands/capture.d.ts.map +1 -0
  182. package/dist/commands/capture.js +385 -0
  183. package/dist/commands/capture.js.map +1 -0
  184. package/dist/commands/chain-walk.d.ts +14 -0
  185. package/dist/commands/chain-walk.d.ts.map +1 -0
  186. package/dist/commands/chain-walk.js +38 -0
  187. package/dist/commands/chain-walk.js.map +1 -0
  188. package/dist/commands/changes.d.ts +11 -0
  189. package/dist/commands/changes.d.ts.map +1 -0
  190. package/dist/commands/changes.js +46 -0
  191. package/dist/commands/changes.js.map +1 -0
  192. package/dist/commands/codex-prep.d.ts +12 -0
  193. package/dist/commands/codex-prep.d.ts.map +1 -0
  194. package/dist/commands/codex-prep.js +122 -0
  195. package/dist/commands/codex-prep.js.map +1 -0
  196. package/dist/commands/collections.d.ts +22 -0
  197. package/dist/commands/collections.d.ts.map +1 -0
  198. package/dist/commands/collections.js +77 -0
  199. package/dist/commands/collections.js.map +1 -0
  200. package/dist/commands/connect-integration.test.d.ts +7 -0
  201. package/dist/commands/connect-integration.test.d.ts.map +1 -0
  202. package/dist/commands/connect-integration.test.js +200 -0
  203. package/dist/commands/connect-integration.test.js.map +1 -0
  204. package/dist/commands/connect.d.ts +21 -0
  205. package/dist/commands/connect.d.ts.map +1 -0
  206. package/dist/commands/connect.js +279 -0
  207. package/dist/commands/connect.js.map +1 -0
  208. package/dist/commands/connect.test.d.ts +6 -0
  209. package/dist/commands/connect.test.d.ts.map +1 -0
  210. package/dist/commands/connect.test.js +230 -0
  211. package/dist/commands/connect.test.js.map +1 -0
  212. package/dist/commands/constellation.d.ts +11 -0
  213. package/dist/commands/constellation.d.ts.map +1 -0
  214. package/dist/commands/constellation.js +33 -0
  215. package/dist/commands/constellation.js.map +1 -0
  216. package/dist/commands/context.d.ts +2 -1
  217. package/dist/commands/context.d.ts.map +1 -1
  218. package/dist/commands/context.js +21 -10
  219. package/dist/commands/context.js.map +1 -1
  220. package/dist/commands/cross-cut.d.ts +11 -0
  221. package/dist/commands/cross-cut.d.ts.map +1 -0
  222. package/dist/commands/cross-cut.js +23 -0
  223. package/dist/commands/cross-cut.js.map +1 -0
  224. package/dist/commands/doctor.d.ts +18 -0
  225. package/dist/commands/doctor.d.ts.map +1 -0
  226. package/dist/commands/doctor.js +232 -0
  227. package/dist/commands/doctor.js.map +1 -0
  228. package/dist/commands/doctor.test.d.ts +8 -0
  229. package/dist/commands/doctor.test.d.ts.map +1 -0
  230. package/dist/commands/doctor.test.js +311 -0
  231. package/dist/commands/doctor.test.js.map +1 -0
  232. package/dist/commands/fields.d.ts +9 -0
  233. package/dist/commands/fields.d.ts.map +1 -0
  234. package/dist/commands/fields.js +30 -0
  235. package/dist/commands/fields.js.map +1 -0
  236. package/dist/commands/get.d.ts +8 -1
  237. package/dist/commands/get.d.ts.map +1 -1
  238. package/dist/commands/get.js +61 -8
  239. package/dist/commands/get.js.map +1 -1
  240. package/dist/commands/handshake.d.ts +28 -0
  241. package/dist/commands/handshake.d.ts.map +1 -0
  242. package/dist/commands/handshake.js +617 -0
  243. package/dist/commands/handshake.js.map +1 -0
  244. package/dist/commands/ingest.d.ts +8 -2
  245. package/dist/commands/ingest.d.ts.map +1 -1
  246. package/dist/commands/ingest.js +151 -28
  247. package/dist/commands/ingest.js.map +1 -1
  248. package/dist/commands/init.d.ts +14 -0
  249. package/dist/commands/init.d.ts.map +1 -0
  250. package/dist/commands/init.js +117 -0
  251. package/dist/commands/init.js.map +1 -0
  252. package/dist/commands/login.d.ts +4 -0
  253. package/dist/commands/login.d.ts.map +1 -1
  254. package/dist/commands/login.js +101 -38
  255. package/dist/commands/login.js.map +1 -1
  256. package/dist/commands/orient.d.ts +107 -1
  257. package/dist/commands/orient.d.ts.map +1 -1
  258. package/dist/commands/orient.js +25 -9
  259. package/dist/commands/orient.js.map +1 -1
  260. package/dist/commands/profile.d.ts +24 -0
  261. package/dist/commands/profile.d.ts.map +1 -0
  262. package/dist/commands/profile.js +82 -0
  263. package/dist/commands/profile.js.map +1 -0
  264. package/dist/commands/promote.d.ts +12 -0
  265. package/dist/commands/promote.d.ts.map +1 -0
  266. package/dist/commands/promote.js +90 -0
  267. package/dist/commands/promote.js.map +1 -0
  268. package/dist/commands/proposals.d.ts +9 -0
  269. package/dist/commands/proposals.d.ts.map +1 -0
  270. package/dist/commands/proposals.js +24 -0
  271. package/dist/commands/proposals.js.map +1 -0
  272. package/dist/commands/reject.d.ts +14 -0
  273. package/dist/commands/reject.d.ts.map +1 -0
  274. package/dist/commands/reject.js +43 -0
  275. package/dist/commands/reject.js.map +1 -0
  276. package/dist/commands/relate.d.ts +16 -0
  277. package/dist/commands/relate.d.ts.map +1 -0
  278. package/dist/commands/relate.js +98 -0
  279. package/dist/commands/relate.js.map +1 -0
  280. package/dist/commands/search.d.ts +1 -0
  281. package/dist/commands/search.d.ts.map +1 -1
  282. package/dist/commands/search.js +6 -4
  283. package/dist/commands/search.js.map +1 -1
  284. package/dist/commands/session.d.ts +20 -0
  285. package/dist/commands/session.d.ts.map +1 -0
  286. package/dist/commands/session.js +203 -0
  287. package/dist/commands/session.js.map +1 -0
  288. package/dist/commands/setup.d.ts +15 -0
  289. package/dist/commands/setup.d.ts.map +1 -0
  290. package/dist/commands/setup.js +168 -0
  291. package/dist/commands/setup.js.map +1 -0
  292. package/dist/commands/update.d.ts +17 -0
  293. package/dist/commands/update.d.ts.map +1 -0
  294. package/dist/commands/update.js +178 -0
  295. package/dist/commands/update.js.map +1 -0
  296. package/dist/commands/usage.d.ts +40 -0
  297. package/dist/commands/usage.d.ts.map +1 -0
  298. package/dist/commands/usage.js +232 -0
  299. package/dist/commands/usage.js.map +1 -0
  300. package/dist/commands/verify.d.ts +13 -0
  301. package/dist/commands/verify.d.ts.map +1 -0
  302. package/dist/commands/verify.js +49 -0
  303. package/dist/commands/verify.js.map +1 -0
  304. package/dist/commands/workspace.d.ts +41 -0
  305. package/dist/commands/workspace.d.ts.map +1 -0
  306. package/dist/commands/workspace.js +239 -0
  307. package/dist/commands/workspace.js.map +1 -0
  308. package/dist/formatters/audit.d.ts +46 -0
  309. package/dist/formatters/audit.d.ts.map +1 -0
  310. package/dist/formatters/audit.js +81 -0
  311. package/dist/formatters/audit.js.map +1 -0
  312. package/dist/formatters/brief.d.ts +112 -0
  313. package/dist/formatters/brief.d.ts.map +1 -0
  314. package/dist/formatters/brief.js +179 -0
  315. package/dist/formatters/brief.js.map +1 -0
  316. package/dist/formatters/capture.d.ts +48 -0
  317. package/dist/formatters/capture.d.ts.map +1 -0
  318. package/dist/formatters/capture.js +77 -0
  319. package/dist/formatters/capture.js.map +1 -0
  320. package/dist/formatters/chain-walk.d.ts +33 -0
  321. package/dist/formatters/chain-walk.d.ts.map +1 -0
  322. package/dist/formatters/chain-walk.js +54 -0
  323. package/dist/formatters/chain-walk.js.map +1 -0
  324. package/dist/formatters/changes.d.ts +25 -0
  325. package/dist/formatters/changes.d.ts.map +1 -0
  326. package/dist/formatters/changes.js +60 -0
  327. package/dist/formatters/changes.js.map +1 -0
  328. package/dist/formatters/collections.d.ts +40 -0
  329. package/dist/formatters/collections.d.ts.map +1 -0
  330. package/dist/formatters/collections.js +93 -0
  331. package/dist/formatters/collections.js.map +1 -0
  332. package/dist/formatters/constellation.d.ts +34 -0
  333. package/dist/formatters/constellation.d.ts.map +1 -0
  334. package/dist/formatters/constellation.js +38 -0
  335. package/dist/formatters/constellation.js.map +1 -0
  336. package/dist/formatters/cross-cut.d.ts +21 -0
  337. package/dist/formatters/cross-cut.d.ts.map +1 -0
  338. package/dist/formatters/cross-cut.js +32 -0
  339. package/dist/formatters/cross-cut.js.map +1 -0
  340. package/dist/formatters/entry.d.ts +11 -4
  341. package/dist/formatters/entry.d.ts.map +1 -1
  342. package/dist/formatters/entry.js +24 -8
  343. package/dist/formatters/entry.js.map +1 -1
  344. package/dist/formatters/fields.d.ts +32 -0
  345. package/dist/formatters/fields.d.ts.map +1 -0
  346. package/dist/formatters/fields.js +49 -0
  347. package/dist/formatters/fields.js.map +1 -0
  348. package/dist/formatters/handshake.d.ts +24 -0
  349. package/dist/formatters/handshake.d.ts.map +1 -0
  350. package/dist/formatters/handshake.js +69 -0
  351. package/dist/formatters/handshake.js.map +1 -0
  352. package/dist/formatters/orient.d.ts +104 -1
  353. package/dist/formatters/orient.d.ts.map +1 -1
  354. package/dist/formatters/orient.js +140 -17
  355. package/dist/formatters/orient.js.map +1 -1
  356. package/dist/formatters/promote.d.ts +30 -0
  357. package/dist/formatters/promote.d.ts.map +1 -0
  358. package/dist/formatters/promote.js +39 -0
  359. package/dist/formatters/promote.js.map +1 -0
  360. package/dist/formatters/proposals.d.ts +45 -0
  361. package/dist/formatters/proposals.d.ts.map +1 -0
  362. package/dist/formatters/proposals.js +62 -0
  363. package/dist/formatters/proposals.js.map +1 -0
  364. package/dist/formatters/relate.d.ts +14 -0
  365. package/dist/formatters/relate.d.ts.map +1 -0
  366. package/dist/formatters/relate.js +16 -0
  367. package/dist/formatters/relate.js.map +1 -0
  368. package/dist/formatters/search.d.ts +0 -4
  369. package/dist/formatters/search.d.ts.map +1 -1
  370. package/dist/formatters/search.js +4 -1
  371. package/dist/formatters/search.js.map +1 -1
  372. package/dist/formatters/session.d.ts +11 -0
  373. package/dist/formatters/session.d.ts.map +1 -0
  374. package/dist/formatters/session.js +53 -0
  375. package/dist/formatters/session.js.map +1 -0
  376. package/dist/formatters/update.d.ts +17 -0
  377. package/dist/formatters/update.d.ts.map +1 -0
  378. package/dist/formatters/update.js +45 -0
  379. package/dist/formatters/update.js.map +1 -0
  380. package/dist/formatters/verify.d.ts +11 -0
  381. package/dist/formatters/verify.d.ts.map +1 -0
  382. package/dist/formatters/verify.js +11 -0
  383. package/dist/formatters/verify.js.map +1 -0
  384. package/dist/generators/__tests__/surface-profiles.test.d.ts +2 -0
  385. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +1 -0
  386. package/dist/generators/__tests__/surface-profiles.test.js +89 -0
  387. package/dist/generators/__tests__/surface-profiles.test.js.map +1 -0
  388. package/dist/generators/adapters.d.ts +44 -0
  389. package/dist/generators/adapters.d.ts.map +1 -0
  390. package/dist/generators/adapters.js +290 -0
  391. package/dist/generators/adapters.js.map +1 -0
  392. package/dist/generators/adapters.test.d.ts +2 -0
  393. package/dist/generators/adapters.test.d.ts.map +1 -0
  394. package/dist/generators/adapters.test.js +27 -0
  395. package/dist/generators/adapters.test.js.map +1 -0
  396. package/dist/generators/archetypes.d.ts +52 -0
  397. package/dist/generators/archetypes.d.ts.map +1 -0
  398. package/dist/generators/archetypes.js +153 -0
  399. package/dist/generators/archetypes.js.map +1 -0
  400. package/dist/generators/archetypes.test.d.ts +2 -0
  401. package/dist/generators/archetypes.test.d.ts.map +1 -0
  402. package/dist/generators/archetypes.test.js +237 -0
  403. package/dist/generators/archetypes.test.js.map +1 -0
  404. package/dist/generators/briefing-md.d.ts +8 -0
  405. package/dist/generators/briefing-md.d.ts.map +1 -0
  406. package/dist/generators/briefing-md.js +51 -0
  407. package/dist/generators/briefing-md.js.map +1 -0
  408. package/dist/generators/chain-classifier.d.ts +49 -0
  409. package/dist/generators/chain-classifier.d.ts.map +1 -0
  410. package/dist/generators/chain-classifier.js +180 -0
  411. package/dist/generators/chain-classifier.js.map +1 -0
  412. package/dist/generators/chain-classifier.test.d.ts +2 -0
  413. package/dist/generators/chain-classifier.test.d.ts.map +1 -0
  414. package/dist/generators/chain-classifier.test.js +257 -0
  415. package/dist/generators/chain-classifier.test.js.map +1 -0
  416. package/dist/generators/chain-rules.d.ts +42 -0
  417. package/dist/generators/chain-rules.d.ts.map +1 -0
  418. package/dist/generators/chain-rules.js +144 -0
  419. package/dist/generators/chain-rules.js.map +1 -0
  420. package/dist/generators/chain-rules.test.d.ts +2 -0
  421. package/dist/generators/chain-rules.test.d.ts.map +1 -0
  422. package/dist/generators/chain-rules.test.js +179 -0
  423. package/dist/generators/chain-rules.test.js.map +1 -0
  424. package/dist/generators/context-md.d.ts +8 -0
  425. package/dist/generators/context-md.d.ts.map +1 -0
  426. package/dist/generators/context-md.js +134 -0
  427. package/dist/generators/context-md.js.map +1 -0
  428. package/dist/generators/handshake-diff.d.ts +67 -0
  429. package/dist/generators/handshake-diff.d.ts.map +1 -0
  430. package/dist/generators/handshake-diff.js +183 -0
  431. package/dist/generators/handshake-diff.js.map +1 -0
  432. package/dist/generators/handshake-diff.test.d.ts +2 -0
  433. package/dist/generators/handshake-diff.test.d.ts.map +1 -0
  434. package/dist/generators/handshake-diff.test.js +264 -0
  435. package/dist/generators/handshake-diff.test.js.map +1 -0
  436. package/dist/generators/portable-knowledge.d.ts +143 -0
  437. package/dist/generators/portable-knowledge.d.ts.map +1 -0
  438. package/dist/generators/portable-knowledge.js +504 -0
  439. package/dist/generators/portable-knowledge.js.map +1 -0
  440. package/dist/generators/portable-knowledge.test.d.ts +2 -0
  441. package/dist/generators/portable-knowledge.test.d.ts.map +1 -0
  442. package/dist/generators/portable-knowledge.test.js +927 -0
  443. package/dist/generators/portable-knowledge.test.js.map +1 -0
  444. package/dist/generators/surface-profiles.d.ts +49 -0
  445. package/dist/generators/surface-profiles.d.ts.map +1 -0
  446. package/dist/generators/surface-profiles.js +98 -0
  447. package/dist/generators/surface-profiles.js.map +1 -0
  448. package/dist/index.d.ts +3 -2
  449. package/dist/index.d.ts.map +1 -1
  450. package/dist/index.js +670 -37
  451. package/dist/index.js.map +1 -1
  452. package/dist/lib/activation.d.ts +28 -0
  453. package/dist/lib/activation.d.ts.map +1 -0
  454. package/dist/lib/activation.js +57 -0
  455. package/dist/lib/activation.js.map +1 -0
  456. package/dist/lib/activation.test.d.ts +6 -0
  457. package/dist/lib/activation.test.d.ts.map +1 -0
  458. package/dist/lib/activation.test.js +121 -0
  459. package/dist/lib/activation.test.js.map +1 -0
  460. package/dist/lib/client.d.ts +62 -1
  461. package/dist/lib/client.d.ts.map +1 -1
  462. package/dist/lib/client.js +258 -12
  463. package/dist/lib/client.js.map +1 -1
  464. package/dist/lib/config.d.ts +84 -4
  465. package/dist/lib/config.d.ts.map +1 -1
  466. package/dist/lib/config.js +322 -42
  467. package/dist/lib/config.js.map +1 -1
  468. package/dist/lib/constants.d.ts +42 -0
  469. package/dist/lib/constants.d.ts.map +1 -0
  470. package/dist/lib/constants.js +76 -0
  471. package/dist/lib/constants.js.map +1 -0
  472. package/dist/lib/conversation-engine.d.ts +45 -0
  473. package/dist/lib/conversation-engine.d.ts.map +1 -0
  474. package/dist/lib/conversation-engine.js +112 -0
  475. package/dist/lib/conversation-engine.js.map +1 -0
  476. package/dist/lib/conversation-phases.d.ts +59 -0
  477. package/dist/lib/conversation-phases.d.ts.map +1 -0
  478. package/dist/lib/conversation-phases.js +11 -0
  479. package/dist/lib/conversation-phases.js.map +1 -0
  480. package/dist/lib/conversation-signals.d.ts +30 -0
  481. package/dist/lib/conversation-signals.d.ts.map +1 -0
  482. package/dist/lib/conversation-signals.js +64 -0
  483. package/dist/lib/conversation-signals.js.map +1 -0
  484. package/dist/lib/deployment.d.ts +23 -0
  485. package/dist/lib/deployment.d.ts.map +1 -0
  486. package/dist/lib/deployment.js +78 -0
  487. package/dist/lib/deployment.js.map +1 -0
  488. package/dist/lib/deployment.test.d.ts +5 -0
  489. package/dist/lib/deployment.test.d.ts.map +1 -0
  490. package/dist/lib/deployment.test.js +54 -0
  491. package/dist/lib/deployment.test.js.map +1 -0
  492. package/dist/lib/errors.d.ts +58 -0
  493. package/dist/lib/errors.d.ts.map +1 -0
  494. package/dist/lib/errors.js +67 -0
  495. package/dist/lib/errors.js.map +1 -0
  496. package/dist/lib/experiment.d.ts +18 -0
  497. package/dist/lib/experiment.d.ts.map +1 -0
  498. package/dist/lib/experiment.js +28 -0
  499. package/dist/lib/experiment.js.map +1 -0
  500. package/dist/lib/format.d.ts +10 -0
  501. package/dist/lib/format.d.ts.map +1 -0
  502. package/dist/lib/format.js +27 -0
  503. package/dist/lib/format.js.map +1 -0
  504. package/dist/lib/glossary.d.ts +19 -0
  505. package/dist/lib/glossary.d.ts.map +1 -0
  506. package/dist/lib/glossary.js +53 -0
  507. package/dist/lib/glossary.js.map +1 -0
  508. package/dist/lib/onboarding-path-b.d.ts +10 -0
  509. package/dist/lib/onboarding-path-b.d.ts.map +1 -0
  510. package/dist/lib/onboarding-path-b.js +214 -0
  511. package/dist/lib/onboarding-path-b.js.map +1 -0
  512. package/dist/lib/onboarding-phases.d.ts +9 -0
  513. package/dist/lib/onboarding-phases.d.ts.map +1 -0
  514. package/dist/lib/onboarding-phases.js +120 -0
  515. package/dist/lib/onboarding-phases.js.map +1 -0
  516. package/dist/lib/onboarding-shared.d.ts +81 -0
  517. package/dist/lib/onboarding-shared.d.ts.map +1 -0
  518. package/dist/lib/onboarding-shared.js +190 -0
  519. package/dist/lib/onboarding-shared.js.map +1 -0
  520. package/dist/lib/onboarding-topics.d.ts +27 -0
  521. package/dist/lib/onboarding-topics.d.ts.map +1 -0
  522. package/dist/lib/onboarding-topics.js +57 -0
  523. package/dist/lib/onboarding-topics.js.map +1 -0
  524. package/dist/lib/onboarding.d.ts +17 -0
  525. package/dist/lib/onboarding.d.ts.map +1 -0
  526. package/dist/lib/onboarding.js +350 -0
  527. package/dist/lib/onboarding.js.map +1 -0
  528. package/dist/lib/profiles.d.ts +39 -0
  529. package/dist/lib/profiles.d.ts.map +1 -0
  530. package/dist/lib/profiles.js +185 -0
  531. package/dist/lib/profiles.js.map +1 -0
  532. package/dist/lib/prompts.d.ts +65 -0
  533. package/dist/lib/prompts.d.ts.map +1 -0
  534. package/dist/lib/prompts.js +132 -0
  535. package/dist/lib/prompts.js.map +1 -0
  536. package/dist/lib/repo-detect.d.ts +33 -0
  537. package/dist/lib/repo-detect.d.ts.map +1 -0
  538. package/dist/lib/repo-detect.js +83 -0
  539. package/dist/lib/repo-detect.js.map +1 -0
  540. package/dist/lib/runner.d.ts +33 -0
  541. package/dist/lib/runner.d.ts.map +1 -0
  542. package/dist/lib/runner.js +79 -0
  543. package/dist/lib/runner.js.map +1 -0
  544. package/dist/lib/session.d.ts +42 -0
  545. package/dist/lib/session.d.ts.map +1 -0
  546. package/dist/lib/session.js +109 -0
  547. package/dist/lib/session.js.map +1 -0
  548. package/dist/lib/spinner.d.ts +27 -0
  549. package/dist/lib/spinner.d.ts.map +1 -0
  550. package/dist/lib/spinner.js +76 -0
  551. package/dist/lib/spinner.js.map +1 -0
  552. package/dist/lib/spinner.test.d.ts +2 -0
  553. package/dist/lib/spinner.test.d.ts.map +1 -0
  554. package/dist/lib/spinner.test.js +39 -0
  555. package/dist/lib/spinner.test.js.map +1 -0
  556. package/dist/lib/strip.d.ts +12 -0
  557. package/dist/lib/strip.d.ts.map +1 -0
  558. package/dist/lib/strip.js +41 -0
  559. package/dist/lib/strip.js.map +1 -0
  560. package/dist/lib/style.d.ts +94 -0
  561. package/dist/lib/style.d.ts.map +1 -0
  562. package/dist/lib/style.js +167 -0
  563. package/dist/lib/style.js.map +1 -0
  564. package/dist/lib/style.test.d.ts +7 -0
  565. package/dist/lib/style.test.d.ts.map +1 -0
  566. package/dist/lib/style.test.js +263 -0
  567. package/dist/lib/style.test.js.map +1 -0
  568. package/dist/lib/telemetry.d.ts +15 -0
  569. package/dist/lib/telemetry.d.ts.map +1 -0
  570. package/dist/lib/telemetry.js +47 -0
  571. package/dist/lib/telemetry.js.map +1 -0
  572. package/dist/lib/tokenConstants.d.ts +17 -0
  573. package/dist/lib/tokenConstants.d.ts.map +1 -0
  574. package/dist/lib/tokenConstants.js +17 -0
  575. package/dist/lib/tokenConstants.js.map +1 -0
  576. package/dist/lib/update-check.d.ts +21 -0
  577. package/dist/lib/update-check.d.ts.map +1 -0
  578. package/dist/lib/update-check.js +144 -0
  579. package/dist/lib/update-check.js.map +1 -0
  580. package/dist/lib/wizard-surfaces.d.ts +47 -0
  581. package/dist/lib/wizard-surfaces.d.ts.map +1 -0
  582. package/dist/lib/wizard-surfaces.js +176 -0
  583. package/dist/lib/wizard-surfaces.js.map +1 -0
  584. package/dist/lib/wizard-surfaces.test.d.ts +2 -0
  585. package/dist/lib/wizard-surfaces.test.d.ts.map +1 -0
  586. package/dist/lib/wizard-surfaces.test.js +127 -0
  587. package/dist/lib/wizard-surfaces.test.js.map +1 -0
  588. package/dist/lib/wizard-trust.d.ts +31 -0
  589. package/dist/lib/wizard-trust.d.ts.map +1 -0
  590. package/dist/lib/wizard-trust.js +66 -0
  591. package/dist/lib/wizard-trust.js.map +1 -0
  592. package/dist/lib/wizard-trust.test.d.ts +2 -0
  593. package/dist/lib/wizard-trust.test.d.ts.map +1 -0
  594. package/dist/lib/wizard-trust.test.js +32 -0
  595. package/dist/lib/wizard-trust.test.js.map +1 -0
  596. package/dist/lib/workspace-probe.d.ts +16 -0
  597. package/dist/lib/workspace-probe.d.ts.map +1 -0
  598. package/dist/lib/workspace-probe.js +33 -0
  599. package/dist/lib/workspace-probe.js.map +1 -0
  600. package/package.json +13 -4
  601. package/templates/archetypes/boundary.md +23 -0
  602. package/templates/archetypes/constraint.md +23 -0
  603. package/templates/archetypes/convention.md +23 -0
  604. package/templates/archetypes/policy.md +23 -0
  605. package/templates/archetypes/quality-gate.md +23 -0
  606. package/templates/archetypes/workflow.md +23 -0
  607. package/templates/general/code-integrity.md +11 -0
  608. package/templates/general/getting-started.md +12 -0
  609. package/templates/node-ts/code-integrity.md +13 -0
  610. package/templates/node-ts/testing.md +12 -0
  611. package/templates/python/code-integrity.md +13 -0
  612. package/templates/python/testing.md +12 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Tests for pb admin inspect helpers — resolveWorkspaceArg / requireWorkspaceArg (WP-312 S4, FEAT-971).
3
+ *
4
+ * Updated for WP-314 S3: both helpers are now async (slug resolution support).
5
+ */
6
+ import { describe, it, expect, vi } from 'vitest';
7
+ import { readSession } from '../../lib/session.js';
8
+ import { resolveWorkspaceArg, requireWorkspaceArg } from './inspect.js';
9
+ // Mock session so we can control it per test
10
+ vi.mock('../../lib/session.js', () => ({
11
+ readSession: vi.fn(() => null),
12
+ }));
13
+ // Mock adminCall to avoid real network calls in the slug-resolution path
14
+ vi.mock('../../lib/client.js', () => ({
15
+ adminCall: vi.fn(async () => null),
16
+ }));
17
+ describe('resolveWorkspaceArg', () => {
18
+ it('returns explicit raw Convex ID as-is (no resolution needed)', async () => {
19
+ // 26-char alphanum — looks like a Convex ID
20
+ const rawId = 'k573abc1234567890abcdefgh';
21
+ expect(await resolveWorkspaceArg(rawId)).toBe(rawId);
22
+ });
23
+ it('returns undefined when no explicit id and session mocked null', async () => {
24
+ expect(await resolveWorkspaceArg()).toBeUndefined();
25
+ expect(await resolveWorkspaceArg(undefined)).toBeUndefined();
26
+ });
27
+ });
28
+ describe('requireWorkspaceArg', () => {
29
+ it('returns explicit raw Convex ID when provided', async () => {
30
+ const rawId = 'k573abc1234567890abcdefgh';
31
+ expect(await requireWorkspaceArg(rawId)).toBe(rawId);
32
+ });
33
+ it('throws when missing and no session', async () => {
34
+ await expect(requireWorkspaceArg()).rejects.toThrow(/Workspace id required/);
35
+ await expect(requireWorkspaceArg(undefined)).rejects.toThrow(/Workspace id required/);
36
+ });
37
+ });
38
+ describe('resolveWorkspaceArg with session', () => {
39
+ it('falls back to session workspaceId', async () => {
40
+ vi.mocked(readSession).mockReturnValueOnce({
41
+ sessionId: 's1',
42
+ workspaceId: 'ws-from-session',
43
+ workspaceName: 'Test',
44
+ startedAt: '',
45
+ entriesCaptured: [],
46
+ });
47
+ expect(await resolveWorkspaceArg()).toBe('ws-from-session');
48
+ });
49
+ });
50
+ describe('resolveWorkspaceArg slug resolution', () => {
51
+ it('calls adminCall for slug-like values and returns resolved _id', async () => {
52
+ const { adminCall } = await import('../../lib/client.js');
53
+ vi.mocked(adminCall).mockResolvedValueOnce({ _id: 'resolved-ws-id', name: 'Test', slug: 'my-workspace', found: true });
54
+ const result = await resolveWorkspaceArg('my-workspace');
55
+ expect(result).toBe('resolved-ws-id');
56
+ expect(adminCall).toHaveBeenCalledWith('inspect:resolve-workspace', { slugOrId: 'my-workspace' });
57
+ });
58
+ it('falls back to original value when slug resolution fails', async () => {
59
+ const { adminCall } = await import('../../lib/client.js');
60
+ vi.mocked(adminCall).mockRejectedValueOnce(new Error('network error'));
61
+ const result = await resolveWorkspaceArg('my-workspace');
62
+ expect(result).toBe('my-workspace');
63
+ });
64
+ it('falls back to original value when resolution returns null', async () => {
65
+ const { adminCall } = await import('../../lib/client.js');
66
+ vi.mocked(adminCall).mockResolvedValueOnce(null);
67
+ const result = await resolveWorkspaceArg('unknown-slug');
68
+ expect(result).toBe('unknown-slug');
69
+ });
70
+ });
71
+ //# sourceMappingURL=inspect.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.test.js","sourceRoot":"","sources":["../../../src/commands/admin/inspect.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * pb admin seed — workspace and platform seed operations (WP-312 S3, FEAT-970).
3
+ *
4
+ * Seed metadata is duplicated from `convex/admin/commandManifest.ts` for CLI help
5
+ * and ordering only — behavior is enforced server-side (STD-101).
6
+ */
7
+ import { Command } from 'commander';
8
+ export type SeedCommandMeta = {
9
+ /** Manifest name, e.g. seed:knowledge */
10
+ name: string;
11
+ description: string;
12
+ requiresWorkspaceId: boolean;
13
+ dryRunSupported: boolean;
14
+ /** When true, require explicit acknowledgment in production */
15
+ dangerous?: boolean;
16
+ };
17
+ /**
18
+ * Order matches `ADMIN_COMMANDS` seed block in commandManifest.ts — dependency order for `seed all`.
19
+ */
20
+ export declare const SEED_COMMAND_ENTRIES: readonly SeedCommandMeta[];
21
+ /** Manifest order for `pb admin seed all`. */
22
+ export declare const SEED_MANIFEST_ORDER: readonly string[];
23
+ /** Accept `knowledge` or `seed:knowledge`. */
24
+ export declare function normalizeSeedCommandName(input: string): string;
25
+ export declare function buildSeedArgs(manifestName: string, opts: {
26
+ workspaceId?: string;
27
+ dryRun?: boolean;
28
+ presetId?: string;
29
+ }): Record<string, unknown>;
30
+ /** Attach seed subcommands to the `seed` Commander node. */
31
+ export declare function attachSeedCommands(seed: Command): void;
32
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/seed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,MAAM,MAAM,eAAe,GAAG;IAC5B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,eAAe,EAqFjD,CAAC;AAIX,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA4C,CAAC;AAM9F,8CAA8C;AAC9C,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB9D;AAkBD,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AA2FD,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAwUtD"}
@@ -0,0 +1,527 @@
1
+ /**
2
+ * pb admin seed — workspace and platform seed operations (WP-312 S3, FEAT-970).
3
+ *
4
+ * Seed metadata is duplicated from `convex/admin/commandManifest.ts` for CLI help
5
+ * and ordering only — behavior is enforced server-side (STD-101).
6
+ */
7
+ import * as clack from '@clack/prompts';
8
+ import { adminCall } from '../../lib/client.js';
9
+ import { resolveAdminConfig } from '../../lib/config.js';
10
+ import { CLIError, ErrorCode } from '../../lib/errors.js';
11
+ import { ask, confirm, intro, isInteractive, log, multiselect, note, outro } from '../../lib/prompts.js';
12
+ import { readSession } from '../../lib/session.js';
13
+ import { isJsonMode } from '../../lib/runner.js';
14
+ import { confirmRiskNoteTitle, requiresAdminDestructiveConfirmation, seedAllConfirmMessage, seedMultiselectConfirmMessage, seedRunConfirmMessage, } from '../../lib/deployment.js';
15
+ import { withSpinner } from '../../lib/spinner.js';
16
+ import { adminBanner, bold, confirmProdAction, cyan, dim, green, heading, hint, icons, red, } from '../../lib/style.js';
17
+ /**
18
+ * Order matches `ADMIN_COMMANDS` seed block in commandManifest.ts — dependency order for `seed all`.
19
+ */
20
+ export const SEED_COMMAND_ENTRIES = [
21
+ {
22
+ name: 'seed:artifacts',
23
+ description: 'Seed Artifacts collection and related glossary entries (chainId, format, audience)',
24
+ requiresWorkspaceId: true,
25
+ dryRunSupported: false,
26
+ },
27
+ {
28
+ name: 'seed:chain-native-bet-constellation',
29
+ description: 'Seed the chain-native bet constellation for a workspace',
30
+ requiresWorkspaceId: false,
31
+ dryRunSupported: false,
32
+ },
33
+ {
34
+ name: 'seed:definitions-chain',
35
+ description: 'Seed the definitions chain collection',
36
+ requiresWorkspaceId: true,
37
+ dryRunSupported: false,
38
+ },
39
+ {
40
+ name: 'seed:domain-teams',
41
+ description: 'Seed domain teams collection entries',
42
+ requiresWorkspaceId: true,
43
+ dryRunSupported: true,
44
+ },
45
+ {
46
+ name: 'seed:features',
47
+ description: 'Seed Features collection and initial trust-audit entries',
48
+ requiresWorkspaceId: true,
49
+ dryRunSupported: false,
50
+ },
51
+ {
52
+ name: 'seed:hierarchy-tier1',
53
+ description: 'Apply Tier 1 hierarchy migrations (landscape thinkingLayer, key-results fields)',
54
+ requiresWorkspaceId: false,
55
+ dryRunSupported: true,
56
+ },
57
+ {
58
+ name: 'seed:id-prefixes',
59
+ description: 'Seed collection ID prefixes for a workspace',
60
+ requiresWorkspaceId: true,
61
+ dryRunSupported: false,
62
+ },
63
+ {
64
+ name: 'seed:knowledge',
65
+ description: 'Seed initial knowledge base (Standards, Features collections + labels)',
66
+ requiresWorkspaceId: true,
67
+ dryRunSupported: false,
68
+ },
69
+ {
70
+ name: 'seed:methodology-preset',
71
+ description: 'Install a methodology preset (e.g. cagan-tt) into a workspace — requires --preset-id',
72
+ requiresWorkspaceId: true,
73
+ dryRunSupported: false,
74
+ },
75
+ {
76
+ name: 'seed:process-templates',
77
+ description: 'Seed process templates collection for a workspace',
78
+ requiresWorkspaceId: true,
79
+ dryRunSupported: false,
80
+ },
81
+ {
82
+ name: 'seed:proposals',
83
+ description: 'Seed governance proposals collection',
84
+ requiresWorkspaceId: true,
85
+ dryRunSupported: false,
86
+ },
87
+ {
88
+ name: 'seed:readiness-config',
89
+ description: 'Migrate readiness config (readinessFloor, readinessWeight, readinessLayer) on all collections',
90
+ requiresWorkspaceId: false,
91
+ dryRunSupported: true,
92
+ },
93
+ {
94
+ name: 'seed:semantic-types-all',
95
+ description: 'Seed semantic types into all workspaces (cross-workspace action)',
96
+ requiresWorkspaceId: false,
97
+ dryRunSupported: false,
98
+ },
99
+ {
100
+ name: 'seed:writing-guidance',
101
+ description: 'Seed writing guidance entries for a workspace',
102
+ requiresWorkspaceId: true,
103
+ dryRunSupported: true,
104
+ },
105
+ ];
106
+ const SEED_BY_NAME = new Map(SEED_COMMAND_ENTRIES.map((e) => [e.name, e]));
107
+ /** Manifest order for `pb admin seed all`. */
108
+ export const SEED_MANIFEST_ORDER = SEED_COMMAND_ENTRIES.map((e) => e.name);
109
+ function shortLabel(manifestName) {
110
+ return manifestName.startsWith('seed:') ? manifestName.slice('seed:'.length) : manifestName;
111
+ }
112
+ /** Accept `knowledge` or `seed:knowledge`. */
113
+ export function normalizeSeedCommandName(input) {
114
+ const t = input.trim();
115
+ if (!t) {
116
+ throw new CLIError('Seed operation name is required.', {
117
+ code: ErrorCode.VALIDATION_FAILED,
118
+ category: 'validation',
119
+ });
120
+ }
121
+ const full = t.startsWith('seed:') ? t : `seed:${t}`;
122
+ if (!SEED_BY_NAME.has(full)) {
123
+ const known = SEED_MANIFEST_ORDER.map((n) => shortLabel(n)).join(', ');
124
+ throw new CLIError(`Unknown seed operation "${input}". Known short names: ${known}`, {
125
+ code: ErrorCode.VALIDATION_FAILED,
126
+ category: 'validation',
127
+ });
128
+ }
129
+ return full;
130
+ }
131
+ function resolveWorkspaceId(explicit) {
132
+ if (explicit)
133
+ return explicit;
134
+ return readSession()?.workspaceId;
135
+ }
136
+ function requireWorkspaceId(explicit) {
137
+ const id = resolveWorkspaceId(explicit);
138
+ if (!id) {
139
+ throw new CLIError('Workspace id required — pass --workspace-id or run `pb session start` in this project.', { code: ErrorCode.VALIDATION_FAILED, category: 'validation' });
140
+ }
141
+ return id;
142
+ }
143
+ export function buildSeedArgs(manifestName, opts) {
144
+ const def = SEED_BY_NAME.get(manifestName);
145
+ if (!def) {
146
+ throw new CLIError(`Unknown seed command: ${manifestName}`, {
147
+ code: ErrorCode.VALIDATION_FAILED,
148
+ category: 'validation',
149
+ });
150
+ }
151
+ const args = {};
152
+ if (manifestName === 'seed:methodology-preset') {
153
+ const ws = requireWorkspaceId(opts.workspaceId);
154
+ if (!opts.presetId) {
155
+ throw new CLIError('seed:methodology-preset requires --preset-id <id>.', {
156
+ code: ErrorCode.VALIDATION_FAILED,
157
+ category: 'validation',
158
+ });
159
+ }
160
+ args.workspaceId = ws;
161
+ args.presetId = opts.presetId;
162
+ return args;
163
+ }
164
+ if (def.requiresWorkspaceId) {
165
+ args.workspaceId = requireWorkspaceId(opts.workspaceId);
166
+ }
167
+ else if (opts.workspaceId && manifestName === 'seed:chain-native-bet-constellation') {
168
+ args.workspaceId = opts.workspaceId;
169
+ }
170
+ if (def.dryRunSupported && opts.dryRun) {
171
+ args.dryRun = true;
172
+ }
173
+ return args;
174
+ }
175
+ function printSeedList() {
176
+ const rows = SEED_COMMAND_ENTRIES.map((e) => ({
177
+ name: shortLabel(e.name),
178
+ description: e.description,
179
+ workspace: e.requiresWorkspaceId ? 'yes' : 'no',
180
+ dryRun: e.dryRunSupported ? 'yes' : '—',
181
+ }));
182
+ if (isJsonMode()) {
183
+ process.stdout.write(JSON.stringify({ commands: rows }, null, 2) + '\n');
184
+ return;
185
+ }
186
+ try {
187
+ adminBanner(resolveAdminConfig().siteUrl);
188
+ }
189
+ catch { /* not configured */ }
190
+ const wName = Math.max(8, ...rows.map((r) => r.name.length));
191
+ const wWs = 9;
192
+ const wDr = 7;
193
+ process.stdout.write(`${bold('Name'.padEnd(wName))} ${bold('Workspace'.padEnd(wWs))} ${bold('Dry-run'.padEnd(wDr))} ${bold('Description')}\n`);
194
+ process.stdout.write(dim('─'.repeat(wName + wWs + wDr + 40)) + '\n');
195
+ for (const r of rows) {
196
+ const dryRunStr = r.dryRun === 'yes' ? green(r.dryRun.padEnd(wDr)) : dim(r.dryRun.padEnd(wDr));
197
+ process.stdout.write(`${cyan(r.name.padEnd(wName))} ${r.workspace.padEnd(wWs)} ${dryRunStr} ${dim(r.description)}\n`);
198
+ }
199
+ process.stdout.write('\n');
200
+ hint(`${SEED_COMMAND_ENTRIES.length} operations — behavior enforced server-side (commandManifest.ts)`);
201
+ hint('pb admin seed run <name> Run one operation');
202
+ hint('pb admin seed all Run all in manifest order');
203
+ }
204
+ async function printSeedStatus(workspaceIdOpt) {
205
+ const readiness = await adminCall('inspect:readiness-config', {});
206
+ let collection = null;
207
+ const wsId = resolveWorkspaceId(workspaceIdOpt);
208
+ if (wsId) {
209
+ collection = await adminCall('inspect:collection', { workspaceId: wsId });
210
+ }
211
+ const statusNote = 'Per-seed run history is not tracked server-side yet — use workspace totals and readiness diagnose as signals.';
212
+ if (isJsonMode()) {
213
+ process.stdout.write(JSON.stringify({
214
+ note: statusNote,
215
+ readinessConfig: readiness,
216
+ workspaceCollections: collection,
217
+ workspaceId: wsId ?? null,
218
+ }, null, 2) + '\n');
219
+ return;
220
+ }
221
+ process.stdout.write(`${bold('Seed status')}\n\n`);
222
+ process.stdout.write(` ${dim(statusNote)}\n\n`);
223
+ process.stdout.write(`${bold('Readiness config migration (inspect:readiness-config)')}\n`);
224
+ process.stdout.write(` ${dim(JSON.stringify(readiness, null, 2).split('\n').join('\n '))}\n\n`);
225
+ if (collection && typeof collection === 'object' && collection !== null && 'workspace' in collection) {
226
+ const c = collection;
227
+ process.stdout.write(`${bold('Workspace')}\n`);
228
+ process.stdout.write(` ${c.workspace.name} (${c.workspace.slug})\n`);
229
+ process.stdout.write(` Collections: ${c.totalCollections} — Entries: ${c.totalEntries}\n\n`);
230
+ }
231
+ else if (!wsId) {
232
+ process.stdout.write(`${dim('No workspace id — pass --workspace-id or use an active session for collection breakdown.')}\n\n`);
233
+ }
234
+ }
235
+ async function runSeedOperation(manifestName, opts) {
236
+ const args = buildSeedArgs(manifestName, opts);
237
+ return adminCall(manifestName, args);
238
+ }
239
+ /** Attach seed subcommands to the `seed` Commander node. */
240
+ export function attachSeedCommands(seed) {
241
+ // Default action when `pb admin seed` is invoked with no subcommand.
242
+ seed.action(async () => {
243
+ if (isJsonMode()) {
244
+ process.stdout.write(JSON.stringify({
245
+ operations: SEED_COMMAND_ENTRIES.map((e) => ({
246
+ name: shortLabel(e.name),
247
+ requiresWorkspaceId: e.requiresWorkspaceId,
248
+ dryRunSupported: e.dryRunSupported,
249
+ description: e.description,
250
+ })),
251
+ }, null, 2) + '\n');
252
+ return;
253
+ }
254
+ let siteUrl = '';
255
+ try {
256
+ siteUrl = resolveAdminConfig().siteUrl;
257
+ }
258
+ catch { /* not configured */ }
259
+ if (siteUrl)
260
+ adminBanner(siteUrl);
261
+ if (isInteractive()) {
262
+ intro('Seed Operations');
263
+ // methodology-preset needs --preset-id, not suitable for interactive menu
264
+ const menuEntries = SEED_COMMAND_ENTRIES.filter((e) => e.name !== 'seed:methodology-preset');
265
+ const selected = await multiselect({
266
+ message: 'Select operations to run (space to toggle, enter to confirm):',
267
+ options: menuEntries.map((e) => ({
268
+ value: e.name,
269
+ label: shortLabel(e.name),
270
+ hint: [
271
+ e.requiresWorkspaceId ? 'needs workspace' : 'platform-wide',
272
+ e.dryRunSupported ? 'dry-run ✓' : '',
273
+ ].filter(Boolean).join(' · '),
274
+ })),
275
+ required: false,
276
+ });
277
+ if (!Array.isArray(selected) || selected.length === 0) {
278
+ outro('Nothing selected — use pb admin seed run <name> for individual operations');
279
+ return;
280
+ }
281
+ // Resolve workspace-id upfront for any selected ops that need it
282
+ const needsWs = selected.some((name) => SEED_BY_NAME.get(name)?.requiresWorkspaceId);
283
+ let workspaceId;
284
+ if (needsWs) {
285
+ const sessionWsId = readSession()?.workspaceId;
286
+ if (sessionWsId) {
287
+ workspaceId = sessionWsId;
288
+ log.info(`Using session workspace: ${dim(sessionWsId)}`);
289
+ }
290
+ else {
291
+ workspaceId = await ask({
292
+ message: 'Workspace ID (required for selected operations):',
293
+ validate: (v) => v.trim() ? undefined : 'Workspace ID is required',
294
+ });
295
+ }
296
+ }
297
+ const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
298
+ if (needsConfirm) {
299
+ const ok = await confirm({
300
+ message: seedMultiselectConfirmMessage(siteUrl, selected.length),
301
+ initialValue: false,
302
+ });
303
+ if (!ok) {
304
+ outro('Cancelled');
305
+ return;
306
+ }
307
+ }
308
+ // Run selected operations in order, stop on first failure (same policy as seed all)
309
+ const results = [];
310
+ for (const name of selected) {
311
+ try {
312
+ await withSpinner(`Running ${shortLabel(name)}`, async () => {
313
+ const args = buildSeedArgs(name, { workspaceId });
314
+ await adminCall(name, args);
315
+ });
316
+ results.push({ name, ok: true });
317
+ }
318
+ catch (e) {
319
+ const msg = e instanceof Error ? e.message : String(e);
320
+ results.push({ name, ok: false, error: msg });
321
+ break;
322
+ }
323
+ }
324
+ const passed = results.filter((r) => r.ok).length;
325
+ const failed = results.filter((r) => !r.ok).length;
326
+ const summaryLines = results
327
+ .map((r) => r.ok ? `✓ ${shortLabel(r.name)}` : `✗ ${shortLabel(r.name)} — ${r.error}`)
328
+ .join('\n');
329
+ note(summaryLines, `${passed}/${selected.length} complete`);
330
+ if (failed > 0) {
331
+ process.exitCode = 1;
332
+ outro('Some operations failed — see above');
333
+ }
334
+ else {
335
+ outro(`${passed} operation(s) complete`);
336
+ }
337
+ return;
338
+ }
339
+ // Non-interactive (non-JSON) fallback — existing static preview
340
+ process.stdout.write(`${heading('Seed operations')} ${dim(`(${SEED_COMMAND_ENTRIES.length})`)}\n\n`);
341
+ // Show first 6 entries as a preview
342
+ const preview = SEED_COMMAND_ENTRIES.slice(0, 6);
343
+ const wName = Math.max(...preview.map((e) => shortLabel(e.name).length));
344
+ for (const e of preview) {
345
+ const label = shortLabel(e.name);
346
+ const flags = e.dryRunSupported ? dim(' dry-run ✓') : '';
347
+ process.stdout.write(` ${cyan(label.padEnd(wName))} ${dim(e.description)}${flags}\n`);
348
+ }
349
+ if (SEED_COMMAND_ENTRIES.length > 6) {
350
+ process.stdout.write(` ${dim(`... ${SEED_COMMAND_ENTRIES.length - 6} more — run pb admin seed list`)}\n`);
351
+ }
352
+ process.stdout.write('\n');
353
+ process.stdout.write(` ${cyan('pb admin seed list')} ${dim('Full list with workspace + dry-run flags')}\n`);
354
+ process.stdout.write(` ${cyan('pb admin seed run <name>')} ${dim('Run one operation')}\n`);
355
+ process.stdout.write(` ${cyan('pb admin seed all')} ${dim('Run all in manifest order')}\n`);
356
+ process.stdout.write(` ${cyan('pb admin seed status')} ${dim('Workspace readiness signals')}\n`);
357
+ process.stdout.write('\n');
358
+ });
359
+ seed
360
+ .command('list')
361
+ .description('List registered seed operations (names match server manifest)')
362
+ .action(() => {
363
+ printSeedList();
364
+ });
365
+ seed
366
+ .command('status')
367
+ .description('Readiness + workspace collection signals (no per-seed run log yet)')
368
+ .option('--workspace-id <id>', 'Workspace id (defaults to session workspace when set)')
369
+ .action(async (options) => {
370
+ if (!isJsonMode()) {
371
+ try {
372
+ adminBanner(resolveAdminConfig().siteUrl);
373
+ }
374
+ catch { /* not configured */ }
375
+ intro('Seed: status');
376
+ }
377
+ await printSeedStatus(options.workspaceId);
378
+ if (!isJsonMode()) {
379
+ outro('Read-only status check complete');
380
+ }
381
+ });
382
+ seed
383
+ .command('run')
384
+ .description('Run one seed operation by short or full manifest name')
385
+ .argument('<name>', 'e.g. knowledge or seed:knowledge')
386
+ .option('--dry-run', 'Pass dryRun when supported', false)
387
+ .option('--workspace-id <id>', 'Workspace id for workspace-scoped seeds')
388
+ .option('--preset-id <id>', 'Required for methodology-preset')
389
+ .option('--confirm', 'Non-interactive prod acknowledgment for dangerous ops', false)
390
+ .action(async (name, options) => {
391
+ const { siteUrl } = resolveAdminConfig();
392
+ const manifestName = normalizeSeedCommandName(name);
393
+ const meta = SEED_BY_NAME.get(manifestName);
394
+ const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
395
+ // Remote / prod deployments require confirmation — not local or known dev-cloud.
396
+ if (needsConfirm) {
397
+ const ok = await confirmProdAction({
398
+ confirm: options.confirm,
399
+ isProduction: true,
400
+ message: seedRunConfirmMessage(siteUrl, manifestName),
401
+ noteTitle: confirmRiskNoteTitle(siteUrl),
402
+ });
403
+ if (!ok) {
404
+ process.stderr.write('Cancelled.\n');
405
+ process.exitCode = 1;
406
+ return;
407
+ }
408
+ }
409
+ if (!isJsonMode()) {
410
+ adminBanner(siteUrl);
411
+ intro(`seed:${shortLabel(manifestName)}`);
412
+ }
413
+ const data = await withSpinner(`Running ${manifestName}`, () => runSeedOperation(manifestName, {
414
+ workspaceId: options.workspaceId,
415
+ dryRun: options.dryRun,
416
+ presetId: options.presetId,
417
+ }));
418
+ if (isJsonMode()) {
419
+ process.stdout.write(JSON.stringify({ command: manifestName, data }, null, 2) + '\n');
420
+ return;
421
+ }
422
+ const summaryLines = data && typeof data === 'object'
423
+ ? Object.entries(data)
424
+ .map(([k, v]) => `${k}: ${typeof v === 'object' ? JSON.stringify(v) : String(v)}`)
425
+ .slice(0, 8)
426
+ .join('\n')
427
+ : String(data ?? 'No response data');
428
+ note(summaryLines || 'No response data', manifestName);
429
+ outro('Complete');
430
+ });
431
+ seed
432
+ .command('all')
433
+ .description('Run all seed operations in manifest order (skips methodology-preset unless --preset-id)')
434
+ .option('--workspace-id <id>', 'Workspace id for workspace-scoped seeds')
435
+ .option('--preset-id <id>', 'If set, runs seed:methodology-preset with this preset')
436
+ .option('--dry-run', 'Pass dryRun to operations that support it', false)
437
+ .option('--confirm', 'Required in production (non-interactive)', false)
438
+ .action(async (options) => {
439
+ const { siteUrl } = resolveAdminConfig();
440
+ const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
441
+ if (needsConfirm) {
442
+ const ok = await confirmProdAction({
443
+ confirm: options.confirm,
444
+ isProduction: true,
445
+ message: seedAllConfirmMessage(siteUrl),
446
+ noteTitle: confirmRiskNoteTitle(siteUrl),
447
+ });
448
+ if (!ok) {
449
+ process.stderr.write('Cancelled.\n');
450
+ process.exitCode = 1;
451
+ return;
452
+ }
453
+ }
454
+ const results = [];
455
+ // ── JSON mode: silent execution, structured output ────────────────────
456
+ if (isJsonMode()) {
457
+ for (const cmd of SEED_MANIFEST_ORDER) {
458
+ if (cmd === 'seed:methodology-preset' && !options.presetId) {
459
+ results.push({ command: cmd, ok: true, skipped: true, note: 'pass --preset-id to include methodology preset' });
460
+ continue;
461
+ }
462
+ try {
463
+ const args = buildSeedArgs(cmd, { workspaceId: options.workspaceId, dryRun: options.dryRun, presetId: options.presetId });
464
+ await adminCall(cmd, args);
465
+ results.push({ command: cmd, ok: true });
466
+ }
467
+ catch (e) {
468
+ const msg = e instanceof Error ? e.message : String(e);
469
+ results.push({ command: cmd, ok: false, error: msg });
470
+ break;
471
+ }
472
+ }
473
+ if (results.some((r) => !r.ok))
474
+ process.exitCode = 1;
475
+ process.stdout.write(JSON.stringify({ results }, null, 2) + '\n');
476
+ return;
477
+ }
478
+ // ── Human mode: spinner per operation + finale summary panel ─────────
479
+ adminBanner(siteUrl);
480
+ intro('Seed All Operations');
481
+ const total = SEED_MANIFEST_ORDER.length;
482
+ let current = 0;
483
+ const startMs = Date.now();
484
+ const s = clack.spinner();
485
+ for (const cmd of SEED_MANIFEST_ORDER) {
486
+ current++;
487
+ const label = shortLabel(cmd);
488
+ if (cmd === 'seed:methodology-preset' && !options.presetId) {
489
+ results.push({ command: cmd, ok: true, skipped: true, note: 'pass --preset-id to include methodology preset' });
490
+ log.step(`${current}/${total} ${label} — skipped (no --preset-id)`);
491
+ continue;
492
+ }
493
+ s.start(`${current}/${total} ${label}`);
494
+ try {
495
+ const args = buildSeedArgs(cmd, { workspaceId: options.workspaceId, dryRun: options.dryRun, presetId: options.presetId });
496
+ await adminCall(cmd, args);
497
+ s.stop(`${green(icons.pass)} ${label}`);
498
+ results.push({ command: cmd, ok: true });
499
+ }
500
+ catch (e) {
501
+ const msg = e instanceof Error ? e.message : String(e);
502
+ s.stop(`${red(icons.fail)} ${label} — ${msg}`);
503
+ results.push({ command: cmd, ok: false, error: msg });
504
+ break;
505
+ }
506
+ }
507
+ const elapsed = ((Date.now() - startMs) / 1000).toFixed(1);
508
+ const passed = results.filter((r) => r.ok && !r.skipped).length;
509
+ const skippedCount = results.filter((r) => r.skipped).length;
510
+ const failed = results.filter((r) => !r.ok).length;
511
+ const summaryLines = [
512
+ `${green(icons.pass)} ${passed} succeeded`,
513
+ skippedCount > 0 ? `${dim(icons.dot)} ${skippedCount} skipped` : null,
514
+ failed > 0 ? `${red(icons.fail)} ${failed} failed` : null,
515
+ `${dim(`elapsed: ${elapsed}s`)}`,
516
+ ].filter(Boolean).join('\n');
517
+ note(summaryLines, `${passed + skippedCount}/${total} complete`);
518
+ if (failed > 0) {
519
+ process.exitCode = 1;
520
+ outro('Some operations failed — fix errors and re-run affected seeds individually');
521
+ }
522
+ else {
523
+ outro(`All ${passed} operations complete in ${elapsed}s`);
524
+ }
525
+ });
526
+ }
527
+ //# sourceMappingURL=seed.js.map