@productbrain/cli 0.1.0-beta.77 → 0.1.0-beta.7700

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 (1416) hide show
  1. package/README.md +8 -2
  2. package/dist/__tests__/adapters.test.js +76 -23
  3. package/dist/__tests__/adapters.test.js.map +1 -1
  4. package/dist/__tests__/adminConfig.test.d.ts +18 -0
  5. package/dist/__tests__/adminConfig.test.d.ts.map +1 -0
  6. package/dist/__tests__/adminConfig.test.js +221 -0
  7. package/dist/__tests__/adminConfig.test.js.map +1 -0
  8. package/dist/__tests__/audit.test.js +86 -28
  9. package/dist/__tests__/audit.test.js.map +1 -1
  10. package/dist/__tests__/batch-transformations.test.js +2 -26
  11. package/dist/__tests__/batch-transformations.test.js.map +1 -1
  12. package/dist/__tests__/canonicalRefs.vocab.test.d.ts +2 -0
  13. package/dist/__tests__/canonicalRefs.vocab.test.d.ts.map +1 -0
  14. package/dist/__tests__/canonicalRefs.vocab.test.js +251 -0
  15. package/dist/__tests__/canonicalRefs.vocab.test.js.map +1 -0
  16. package/dist/__tests__/capture-receipt-coaching.test.d.ts +2 -0
  17. package/dist/__tests__/capture-receipt-coaching.test.d.ts.map +1 -0
  18. package/dist/__tests__/capture-receipt-coaching.test.js +89 -0
  19. package/dist/__tests__/capture-receipt-coaching.test.js.map +1 -0
  20. package/dist/__tests__/capture-receipt-spine-floor.test.d.ts +2 -0
  21. package/dist/__tests__/capture-receipt-spine-floor.test.d.ts.map +1 -0
  22. package/dist/__tests__/capture-receipt-spine-floor.test.js +45 -0
  23. package/dist/__tests__/capture-receipt-spine-floor.test.js.map +1 -0
  24. package/dist/__tests__/capture.test.js +1289 -73
  25. package/dist/__tests__/capture.test.js.map +1 -1
  26. package/dist/__tests__/client-binding-guard.test.d.ts +2 -0
  27. package/dist/__tests__/client-binding-guard.test.d.ts.map +1 -0
  28. package/dist/__tests__/client-binding-guard.test.js +84 -0
  29. package/dist/__tests__/client-binding-guard.test.js.map +1 -0
  30. package/dist/__tests__/coaching-mirror-drift.test.d.ts +2 -0
  31. package/dist/__tests__/coaching-mirror-drift.test.d.ts.map +1 -0
  32. package/dist/__tests__/coaching-mirror-drift.test.js +47 -0
  33. package/dist/__tests__/coaching-mirror-drift.test.js.map +1 -0
  34. package/dist/__tests__/codex-prep-parity.test.d.ts +2 -0
  35. package/dist/__tests__/codex-prep-parity.test.d.ts.map +1 -0
  36. package/dist/__tests__/codex-prep-parity.test.js +106 -0
  37. package/dist/__tests__/codex-prep-parity.test.js.map +1 -0
  38. package/dist/__tests__/collection-registry-seed-drift.test.d.ts +2 -0
  39. package/dist/__tests__/collection-registry-seed-drift.test.d.ts.map +1 -0
  40. package/dist/__tests__/collection-registry-seed-drift.test.js +107 -0
  41. package/dist/__tests__/collection-registry-seed-drift.test.js.map +1 -0
  42. package/dist/__tests__/config-prod-fallthrough.test.d.ts +2 -0
  43. package/dist/__tests__/config-prod-fallthrough.test.d.ts.map +1 -0
  44. package/dist/__tests__/config-prod-fallthrough.test.js +93 -0
  45. package/dist/__tests__/config-prod-fallthrough.test.js.map +1 -0
  46. package/dist/__tests__/config.test.d.ts +1 -1
  47. package/dist/__tests__/config.test.js +845 -18
  48. package/dist/__tests__/config.test.js.map +1 -1
  49. package/dist/__tests__/constants.test.js +6 -1
  50. package/dist/__tests__/constants.test.js.map +1 -1
  51. package/dist/__tests__/constellation.test.js +26 -14
  52. package/dist/__tests__/constellation.test.js.map +1 -1
  53. package/dist/__tests__/conversation.test.d.ts +2 -0
  54. package/dist/__tests__/conversation.test.d.ts.map +1 -0
  55. package/dist/__tests__/conversation.test.js +113 -0
  56. package/dist/__tests__/conversation.test.js.map +1 -0
  57. package/dist/__tests__/entry-formatter.test.d.ts +2 -0
  58. package/dist/__tests__/entry-formatter.test.d.ts.map +1 -0
  59. package/dist/__tests__/entry-formatter.test.js +129 -0
  60. package/dist/__tests__/entry-formatter.test.js.map +1 -0
  61. package/dist/__tests__/entry-preflight.test.d.ts +2 -0
  62. package/dist/__tests__/entry-preflight.test.d.ts.map +1 -0
  63. package/dist/__tests__/entry-preflight.test.js +58 -0
  64. package/dist/__tests__/entry-preflight.test.js.map +1 -0
  65. package/dist/__tests__/entryAccept-batch.test.d.ts +2 -0
  66. package/dist/__tests__/entryAccept-batch.test.d.ts.map +1 -0
  67. package/dist/__tests__/entryAccept-batch.test.js +305 -0
  68. package/dist/__tests__/entryAccept-batch.test.js.map +1 -0
  69. package/dist/__tests__/entryAccept.test.d.ts +2 -0
  70. package/dist/__tests__/entryAccept.test.d.ts.map +1 -0
  71. package/dist/__tests__/entryAccept.test.js +452 -0
  72. package/dist/__tests__/entryAccept.test.js.map +1 -0
  73. package/dist/__tests__/entryArchive.test.d.ts +2 -0
  74. package/dist/__tests__/entryArchive.test.d.ts.map +1 -0
  75. package/dist/__tests__/entryArchive.test.js +35 -0
  76. package/dist/__tests__/entryArchive.test.js.map +1 -0
  77. package/dist/__tests__/entryOwn.test.d.ts +2 -0
  78. package/dist/__tests__/entryOwn.test.d.ts.map +1 -0
  79. package/dist/__tests__/entryOwn.test.js +50 -0
  80. package/dist/__tests__/entryOwn.test.js.map +1 -0
  81. package/dist/__tests__/envelope-contract.test.d.ts +15 -0
  82. package/dist/__tests__/envelope-contract.test.d.ts.map +1 -0
  83. package/dist/__tests__/envelope-contract.test.js +154 -0
  84. package/dist/__tests__/envelope-contract.test.js.map +1 -0
  85. package/dist/__tests__/errors.test.js +30 -0
  86. package/dist/__tests__/errors.test.js.map +1 -1
  87. package/dist/__tests__/gateway-dry-run-timeout.test.d.ts +2 -0
  88. package/dist/__tests__/gateway-dry-run-timeout.test.d.ts.map +1 -0
  89. package/dist/__tests__/gateway-dry-run-timeout.test.js +70 -0
  90. package/dist/__tests__/gateway-dry-run-timeout.test.js.map +1 -0
  91. package/dist/__tests__/gateway-timeout-body-phase.test.d.ts +2 -0
  92. package/dist/__tests__/gateway-timeout-body-phase.test.d.ts.map +1 -0
  93. package/dist/__tests__/gateway-timeout-body-phase.test.js +121 -0
  94. package/dist/__tests__/gateway-timeout-body-phase.test.js.map +1 -0
  95. package/dist/__tests__/handshake-augment.test.d.ts +2 -0
  96. package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
  97. package/dist/__tests__/handshake-augment.test.js +420 -0
  98. package/dist/__tests__/handshake-augment.test.js.map +1 -0
  99. package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
  100. package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
  101. package/dist/__tests__/handshake-dormancy.test.js +24 -0
  102. package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
  103. package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
  104. package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
  105. package/dist/__tests__/handshake-formatter.test.js +111 -0
  106. package/dist/__tests__/handshake-formatter.test.js.map +1 -0
  107. package/dist/__tests__/handshake-preview.test.d.ts +2 -0
  108. package/dist/__tests__/handshake-preview.test.d.ts.map +1 -0
  109. package/dist/__tests__/handshake-preview.test.js +480 -0
  110. package/dist/__tests__/handshake-preview.test.js.map +1 -0
  111. package/dist/__tests__/handshake.e2e.test.d.ts +2 -0
  112. package/dist/__tests__/handshake.e2e.test.d.ts.map +1 -0
  113. package/dist/__tests__/handshake.e2e.test.js +226 -0
  114. package/dist/__tests__/handshake.e2e.test.js.map +1 -0
  115. package/dist/__tests__/handshake.test.js +828 -4
  116. package/dist/__tests__/handshake.test.js.map +1 -1
  117. package/dist/__tests__/health-gap-kinds-drift.test.d.ts +2 -0
  118. package/dist/__tests__/health-gap-kinds-drift.test.d.ts.map +1 -0
  119. package/dist/__tests__/health-gap-kinds-drift.test.js +43 -0
  120. package/dist/__tests__/health-gap-kinds-drift.test.js.map +1 -0
  121. package/dist/__tests__/hook-intents.test.d.ts +2 -0
  122. package/dist/__tests__/hook-intents.test.d.ts.map +1 -0
  123. package/dist/__tests__/hook-intents.test.js +184 -0
  124. package/dist/__tests__/hook-intents.test.js.map +1 -0
  125. package/dist/__tests__/ingest.test.js +9 -0
  126. package/dist/__tests__/ingest.test.js.map +1 -1
  127. package/dist/__tests__/init.test.js +51 -14
  128. package/dist/__tests__/init.test.js.map +1 -1
  129. package/dist/__tests__/kernel-value-sets-drift.test.d.ts +2 -0
  130. package/dist/__tests__/kernel-value-sets-drift.test.d.ts.map +1 -0
  131. package/dist/__tests__/kernel-value-sets-drift.test.js +46 -0
  132. package/dist/__tests__/kernel-value-sets-drift.test.js.map +1 -0
  133. package/dist/__tests__/kernel-value-sets-generator.test.d.ts +2 -0
  134. package/dist/__tests__/kernel-value-sets-generator.test.d.ts.map +1 -0
  135. package/dist/__tests__/kernel-value-sets-generator.test.js +108 -0
  136. package/dist/__tests__/kernel-value-sets-generator.test.js.map +1 -0
  137. package/dist/__tests__/manifest.test.d.ts +6 -0
  138. package/dist/__tests__/manifest.test.d.ts.map +1 -0
  139. package/dist/__tests__/manifest.test.js +255 -0
  140. package/dist/__tests__/manifest.test.js.map +1 -0
  141. package/dist/__tests__/method-publish-coherency.test.d.ts +9 -0
  142. package/dist/__tests__/method-publish-coherency.test.d.ts.map +1 -0
  143. package/dist/__tests__/method-publish-coherency.test.js +71 -0
  144. package/dist/__tests__/method-publish-coherency.test.js.map +1 -0
  145. package/dist/__tests__/method-registry.integration.test.d.ts +6 -0
  146. package/dist/__tests__/method-registry.integration.test.d.ts.map +1 -0
  147. package/dist/__tests__/method-registry.integration.test.js +17 -0
  148. package/dist/__tests__/method-registry.integration.test.js.map +1 -0
  149. package/dist/__tests__/method-registry.test.d.ts +12 -0
  150. package/dist/__tests__/method-registry.test.d.ts.map +1 -0
  151. package/dist/__tests__/method-registry.test.js +86 -0
  152. package/dist/__tests__/method-registry.test.js.map +1 -0
  153. package/dist/__tests__/missingPin.test.d.ts +11 -0
  154. package/dist/__tests__/missingPin.test.d.ts.map +1 -0
  155. package/dist/__tests__/missingPin.test.js +233 -0
  156. package/dist/__tests__/missingPin.test.js.map +1 -0
  157. package/dist/__tests__/notice-marker.test.d.ts +2 -0
  158. package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
  159. package/dist/__tests__/notice-marker.test.js +176 -0
  160. package/dist/__tests__/notice-marker.test.js.map +1 -0
  161. package/dist/__tests__/onboarding-path-b.test.js +4 -4
  162. package/dist/__tests__/onboarding-path-b.test.js.map +1 -1
  163. package/dist/__tests__/onboarding.test.js +29 -5
  164. package/dist/__tests__/onboarding.test.js.map +1 -1
  165. package/dist/__tests__/onboardingFallback.test.d.ts +2 -0
  166. package/dist/__tests__/onboardingFallback.test.d.ts.map +1 -0
  167. package/dist/__tests__/onboardingFallback.test.js +74 -0
  168. package/dist/__tests__/onboardingFallback.test.js.map +1 -0
  169. package/dist/__tests__/orient.test.js +493 -12
  170. package/dist/__tests__/orient.test.js.map +1 -1
  171. package/dist/__tests__/perimeter.test.d.ts +2 -0
  172. package/dist/__tests__/perimeter.test.d.ts.map +1 -0
  173. package/dist/__tests__/perimeter.test.js +165 -0
  174. package/dist/__tests__/perimeter.test.js.map +1 -0
  175. package/dist/__tests__/personal-layer.test.d.ts +11 -0
  176. package/dist/__tests__/personal-layer.test.d.ts.map +1 -0
  177. package/dist/__tests__/personal-layer.test.js +268 -0
  178. package/dist/__tests__/personal-layer.test.js.map +1 -0
  179. package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
  180. package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
  181. package/dist/__tests__/preview-key-refresh.test.js +126 -0
  182. package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
  183. package/dist/__tests__/profiles.test.js +613 -5
  184. package/dist/__tests__/profiles.test.js.map +1 -1
  185. package/dist/__tests__/proof-run.test.d.ts +2 -0
  186. package/dist/__tests__/proof-run.test.d.ts.map +1 -0
  187. package/dist/__tests__/proof-run.test.js +255 -0
  188. package/dist/__tests__/proof-run.test.js.map +1 -0
  189. package/dist/__tests__/proposals.test.js +1 -1
  190. package/dist/__tests__/proposals.test.js.map +1 -1
  191. package/dist/__tests__/rate-limit-resilience.test.d.ts +7 -0
  192. package/dist/__tests__/rate-limit-resilience.test.d.ts.map +1 -0
  193. package/dist/__tests__/rate-limit-resilience.test.js +209 -0
  194. package/dist/__tests__/rate-limit-resilience.test.js.map +1 -0
  195. package/dist/__tests__/read-target-notice.test.d.ts +2 -0
  196. package/dist/__tests__/read-target-notice.test.d.ts.map +1 -0
  197. package/dist/__tests__/read-target-notice.test.js +129 -0
  198. package/dist/__tests__/read-target-notice.test.js.map +1 -0
  199. package/dist/__tests__/relate.test.js +246 -2
  200. package/dist/__tests__/relate.test.js.map +1 -1
  201. package/dist/__tests__/repo-detect.test.js +18 -38
  202. package/dist/__tests__/repo-detect.test.js.map +1 -1
  203. package/dist/__tests__/reportedProfile.test.d.ts +2 -0
  204. package/dist/__tests__/reportedProfile.test.d.ts.map +1 -0
  205. package/dist/__tests__/reportedProfile.test.js +328 -0
  206. package/dist/__tests__/reportedProfile.test.js.map +1 -0
  207. package/dist/__tests__/restore.test.d.ts +2 -0
  208. package/dist/__tests__/restore.test.d.ts.map +1 -0
  209. package/dist/__tests__/restore.test.js +85 -0
  210. package/dist/__tests__/restore.test.js.map +1 -0
  211. package/dist/__tests__/route-latency-budget.test.d.ts +2 -0
  212. package/dist/__tests__/route-latency-budget.test.d.ts.map +1 -0
  213. package/dist/__tests__/route-latency-budget.test.js +105 -0
  214. package/dist/__tests__/route-latency-budget.test.js.map +1 -0
  215. package/dist/__tests__/runner.test.js +59 -44
  216. package/dist/__tests__/runner.test.js.map +1 -1
  217. package/dist/__tests__/session-binding-refusal-tenant.test.d.ts +2 -0
  218. package/dist/__tests__/session-binding-refusal-tenant.test.d.ts.map +1 -0
  219. package/dist/__tests__/session-binding-refusal-tenant.test.js +112 -0
  220. package/dist/__tests__/session-binding-refusal-tenant.test.js.map +1 -0
  221. package/dist/__tests__/session-close-loop.test.d.ts +2 -0
  222. package/dist/__tests__/session-close-loop.test.d.ts.map +1 -0
  223. package/dist/__tests__/session-close-loop.test.js +213 -0
  224. package/dist/__tests__/session-close-loop.test.js.map +1 -0
  225. package/dist/__tests__/session-label.test.d.ts +2 -0
  226. package/dist/__tests__/session-label.test.d.ts.map +1 -0
  227. package/dist/__tests__/session-label.test.js +46 -0
  228. package/dist/__tests__/session-label.test.js.map +1 -0
  229. package/dist/__tests__/session-list-show.test.d.ts +2 -0
  230. package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
  231. package/dist/__tests__/session-list-show.test.js +174 -0
  232. package/dist/__tests__/session-list-show.test.js.map +1 -0
  233. package/dist/__tests__/session-reset.test.d.ts +2 -0
  234. package/dist/__tests__/session-reset.test.d.ts.map +1 -0
  235. package/dist/__tests__/session-reset.test.js +138 -0
  236. package/dist/__tests__/session-reset.test.js.map +1 -0
  237. package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
  238. package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
  239. package/dist/__tests__/session-resume-backstop.test.js +139 -0
  240. package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
  241. package/dist/__tests__/session-role-name-sanitize.test.d.ts +2 -0
  242. package/dist/__tests__/session-role-name-sanitize.test.d.ts.map +1 -0
  243. package/dist/__tests__/session-role-name-sanitize.test.js +120 -0
  244. package/dist/__tests__/session-role-name-sanitize.test.js.map +1 -0
  245. package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
  246. package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
  247. package/dist/__tests__/session-start-key-refresh.test.js +191 -0
  248. package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
  249. package/dist/__tests__/session-state-machine.test.js +235 -10
  250. package/dist/__tests__/session-state-machine.test.js.map +1 -1
  251. package/dist/__tests__/session-switch.test.d.ts +2 -0
  252. package/dist/__tests__/session-switch.test.d.ts.map +1 -0
  253. package/dist/__tests__/session-switch.test.js +267 -0
  254. package/dist/__tests__/session-switch.test.js.map +1 -0
  255. package/dist/__tests__/session-touch.test.js +6 -1
  256. package/dist/__tests__/session-touch.test.js.map +1 -1
  257. package/dist/__tests__/sessionBinding.test.d.ts +2 -0
  258. package/dist/__tests__/sessionBinding.test.d.ts.map +1 -0
  259. package/dist/__tests__/sessionBinding.test.js +118 -0
  260. package/dist/__tests__/sessionBinding.test.js.map +1 -0
  261. package/dist/__tests__/sessionByIdLookup.test.d.ts +2 -0
  262. package/dist/__tests__/sessionByIdLookup.test.d.ts.map +1 -0
  263. package/dist/__tests__/sessionByIdLookup.test.js +63 -0
  264. package/dist/__tests__/sessionByIdLookup.test.js.map +1 -0
  265. package/dist/__tests__/skill-vocabulary.test.d.ts +21 -0
  266. package/dist/__tests__/skill-vocabulary.test.d.ts.map +1 -0
  267. package/dist/__tests__/skill-vocabulary.test.js +192 -0
  268. package/dist/__tests__/skill-vocabulary.test.js.map +1 -0
  269. package/dist/__tests__/state.test.js +21 -1
  270. package/dist/__tests__/state.test.js.map +1 -1
  271. package/dist/__tests__/stillTrue.test.d.ts +2 -0
  272. package/dist/__tests__/stillTrue.test.d.ts.map +1 -0
  273. package/dist/__tests__/stillTrue.test.js +52 -0
  274. package/dist/__tests__/stillTrue.test.js.map +1 -0
  275. package/dist/__tests__/strip.test.js +57 -3
  276. package/dist/__tests__/strip.test.js.map +1 -1
  277. package/dist/__tests__/surfaces.test.d.ts +2 -0
  278. package/dist/__tests__/surfaces.test.d.ts.map +1 -0
  279. package/dist/__tests__/surfaces.test.js +46 -0
  280. package/dist/__tests__/surfaces.test.js.map +1 -0
  281. package/dist/__tests__/tenant-notice-write-path.test.d.ts +2 -0
  282. package/dist/__tests__/tenant-notice-write-path.test.d.ts.map +1 -0
  283. package/dist/__tests__/tenant-notice-write-path.test.js +169 -0
  284. package/dist/__tests__/tenant-notice-write-path.test.js.map +1 -0
  285. package/dist/__tests__/update-check.test.d.ts +2 -0
  286. package/dist/__tests__/update-check.test.d.ts.map +1 -0
  287. package/dist/__tests__/update-check.test.js +215 -0
  288. package/dist/__tests__/update-check.test.js.map +1 -0
  289. package/dist/__tests__/update.test.js +468 -7
  290. package/dist/__tests__/update.test.js.map +1 -1
  291. package/dist/__tests__/upgrade-runner.test.d.ts +2 -0
  292. package/dist/__tests__/upgrade-runner.test.d.ts.map +1 -0
  293. package/dist/__tests__/upgrade-runner.test.js +54 -0
  294. package/dist/__tests__/upgrade-runner.test.js.map +1 -0
  295. package/dist/__tests__/upgrade.test.d.ts +2 -0
  296. package/dist/__tests__/upgrade.test.d.ts.map +1 -0
  297. package/dist/__tests__/upgrade.test.js +56 -0
  298. package/dist/__tests__/upgrade.test.js.map +1 -0
  299. package/dist/__tests__/verify-formatter.test.d.ts +2 -0
  300. package/dist/__tests__/verify-formatter.test.d.ts.map +1 -0
  301. package/dist/__tests__/verify-formatter.test.js +85 -0
  302. package/dist/__tests__/verify-formatter.test.js.map +1 -0
  303. package/dist/__tests__/vocabulary-leak.test.d.ts +39 -0
  304. package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -0
  305. package/dist/__tests__/vocabulary-leak.test.js +539 -0
  306. package/dist/__tests__/vocabulary-leak.test.js.map +1 -0
  307. package/dist/__tests__/workspace.test.js +32 -12
  308. package/dist/__tests__/workspace.test.js.map +1 -1
  309. package/dist/__tests__/workspaceNotice.test.d.ts +2 -0
  310. package/dist/__tests__/workspaceNotice.test.d.ts.map +1 -0
  311. package/dist/__tests__/workspaceNotice.test.js +571 -0
  312. package/dist/__tests__/workspaceNotice.test.js.map +1 -0
  313. package/dist/commands/__tests__/connect-handoff.test.d.ts +11 -0
  314. package/dist/commands/__tests__/connect-handoff.test.d.ts.map +1 -0
  315. package/dist/commands/__tests__/connect-handoff.test.js +111 -0
  316. package/dist/commands/__tests__/connect-handoff.test.js.map +1 -0
  317. package/dist/commands/__tests__/quality.test.d.ts +2 -0
  318. package/dist/commands/__tests__/quality.test.d.ts.map +1 -0
  319. package/dist/commands/__tests__/quality.test.js +156 -0
  320. package/dist/commands/__tests__/quality.test.js.map +1 -0
  321. package/dist/commands/__tests__/rework.test.d.ts +2 -0
  322. package/dist/commands/__tests__/rework.test.d.ts.map +1 -0
  323. package/dist/commands/__tests__/rework.test.js +149 -0
  324. package/dist/commands/__tests__/rework.test.js.map +1 -0
  325. package/dist/commands/__tests__/tensionsList.test.d.ts +2 -0
  326. package/dist/commands/__tests__/tensionsList.test.d.ts.map +1 -0
  327. package/dist/commands/__tests__/tensionsList.test.js +63 -0
  328. package/dist/commands/__tests__/tensionsList.test.js.map +1 -0
  329. package/dist/commands/accept-policy.d.ts +10 -0
  330. package/dist/commands/accept-policy.d.ts.map +1 -0
  331. package/dist/commands/accept-policy.js +107 -0
  332. package/dist/commands/accept-policy.js.map +1 -0
  333. package/dist/commands/accept.d.ts.map +1 -1
  334. package/dist/commands/accept.js +1 -1
  335. package/dist/commands/accept.js.map +1 -1
  336. package/dist/commands/admin/cockpit.d.ts +2 -13
  337. package/dist/commands/admin/cockpit.d.ts.map +1 -1
  338. package/dist/commands/admin/cockpit.js +11 -11
  339. package/dist/commands/admin/cockpit.js.map +1 -1
  340. package/dist/commands/admin/index.d.ts +49 -0
  341. package/dist/commands/admin/index.d.ts.map +1 -1
  342. package/dist/commands/admin/index.js +145 -29
  343. package/dist/commands/admin/index.js.map +1 -1
  344. package/dist/commands/admin/index.test.d.ts +2 -0
  345. package/dist/commands/admin/index.test.d.ts.map +1 -0
  346. package/dist/commands/admin/index.test.js +84 -0
  347. package/dist/commands/admin/index.test.js.map +1 -0
  348. package/dist/commands/admin/inspect.js +1 -1
  349. package/dist/commands/admin/inspect.js.map +1 -1
  350. package/dist/commands/admin/manage.d.ts.map +1 -1
  351. package/dist/commands/admin/manage.js +188 -2
  352. package/dist/commands/admin/manage.js.map +1 -1
  353. package/dist/commands/admin/manage.test.d.ts +16 -0
  354. package/dist/commands/admin/manage.test.d.ts.map +1 -0
  355. package/dist/commands/admin/manage.test.js +171 -0
  356. package/dist/commands/admin/manage.test.js.map +1 -0
  357. package/dist/commands/admin/probe.d.ts +75 -0
  358. package/dist/commands/admin/probe.d.ts.map +1 -0
  359. package/dist/commands/admin/probe.js +224 -0
  360. package/dist/commands/admin/probe.js.map +1 -0
  361. package/dist/commands/admin/probe.test.d.ts +2 -0
  362. package/dist/commands/admin/probe.test.d.ts.map +1 -0
  363. package/dist/commands/admin/probe.test.js +193 -0
  364. package/dist/commands/admin/probe.test.js.map +1 -0
  365. package/dist/commands/admin/run.d.ts +43 -0
  366. package/dist/commands/admin/run.d.ts.map +1 -0
  367. package/dist/commands/admin/run.js +78 -0
  368. package/dist/commands/admin/run.js.map +1 -0
  369. package/dist/commands/admin/run.test.d.ts +18 -0
  370. package/dist/commands/admin/run.test.d.ts.map +1 -0
  371. package/dist/commands/admin/run.test.js +168 -0
  372. package/dist/commands/admin/run.test.js.map +1 -0
  373. package/dist/commands/admin/seed.d.ts +32 -3
  374. package/dist/commands/admin/seed.d.ts.map +1 -1
  375. package/dist/commands/admin/seed.js +313 -90
  376. package/dist/commands/admin/seed.js.map +1 -1
  377. package/dist/commands/admin/seed.test.d.ts +4 -0
  378. package/dist/commands/admin/seed.test.d.ts.map +1 -1
  379. package/dist/commands/admin/seed.test.js +28 -7
  380. package/dist/commands/admin/seed.test.js.map +1 -1
  381. package/dist/commands/admin/seedRegistryEntries.generated.d.ts +14 -0
  382. package/dist/commands/admin/seedRegistryEntries.generated.d.ts.map +1 -0
  383. package/dist/commands/admin/seedRegistryEntries.generated.js +99 -0
  384. package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -0
  385. package/dist/commands/admin/seedRegistryEntries.test.d.ts +13 -0
  386. package/dist/commands/admin/seedRegistryEntries.test.d.ts.map +1 -0
  387. package/dist/commands/admin/seedRegistryEntries.test.js +97 -0
  388. package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -0
  389. package/dist/commands/admin/seedRowType.d.ts +22 -0
  390. package/dist/commands/admin/seedRowType.d.ts.map +1 -0
  391. package/dist/commands/admin/seedRowType.js +2 -0
  392. package/dist/commands/admin/seedRowType.js.map +1 -0
  393. package/dist/commands/admin/seedStatusColor.d.ts +9 -0
  394. package/dist/commands/admin/seedStatusColor.d.ts.map +1 -0
  395. package/dist/commands/admin/seedStatusColor.js +18 -0
  396. package/dist/commands/admin/seedStatusColor.js.map +1 -0
  397. package/dist/commands/admin/seedStatusColor.test.d.ts +2 -0
  398. package/dist/commands/admin/seedStatusColor.test.d.ts.map +1 -0
  399. package/dist/commands/admin/seedStatusColor.test.js +25 -0
  400. package/dist/commands/admin/seedStatusColor.test.js.map +1 -0
  401. package/dist/commands/audit.d.ts +2 -2
  402. package/dist/commands/audit.d.ts.map +1 -1
  403. package/dist/commands/audit.js +52 -6
  404. package/dist/commands/audit.js.map +1 -1
  405. package/dist/commands/brief.d.ts.map +1 -1
  406. package/dist/commands/brief.js +24 -2
  407. package/dist/commands/brief.js.map +1 -1
  408. package/dist/commands/capture.d.ts +15 -8
  409. package/dist/commands/capture.d.ts.map +1 -1
  410. package/dist/commands/capture.js +247 -247
  411. package/dist/commands/capture.js.map +1 -1
  412. package/dist/commands/chain-walk.d.ts.map +1 -1
  413. package/dist/commands/chain-walk.js.map +1 -1
  414. package/dist/commands/changes.d.ts.map +1 -1
  415. package/dist/commands/changes.js.map +1 -1
  416. package/dist/commands/codex-prep.d.ts +12 -1
  417. package/dist/commands/codex-prep.d.ts.map +1 -1
  418. package/dist/commands/codex-prep.js +18 -84
  419. package/dist/commands/codex-prep.js.map +1 -1
  420. package/dist/commands/collections.d.ts.map +1 -1
  421. package/dist/commands/collections.js.map +1 -1
  422. package/dist/commands/conflicts.d.ts +40 -0
  423. package/dist/commands/conflicts.d.ts.map +1 -0
  424. package/dist/commands/conflicts.js +267 -0
  425. package/dist/commands/conflicts.js.map +1 -0
  426. package/dist/commands/conflicts.test.d.ts +2 -0
  427. package/dist/commands/conflicts.test.d.ts.map +1 -0
  428. package/dist/commands/conflicts.test.js +219 -0
  429. package/dist/commands/conflicts.test.js.map +1 -0
  430. package/dist/commands/connect-config.test.d.ts +2 -0
  431. package/dist/commands/connect-config.test.d.ts.map +1 -0
  432. package/dist/commands/connect-config.test.js +44 -0
  433. package/dist/commands/connect-config.test.js.map +1 -0
  434. package/dist/commands/connect-context.d.ts +55 -0
  435. package/dist/commands/connect-context.d.ts.map +1 -0
  436. package/dist/commands/connect-context.js +78 -0
  437. package/dist/commands/connect-context.js.map +1 -0
  438. package/dist/commands/connect-context.test.d.ts +2 -0
  439. package/dist/commands/connect-context.test.d.ts.map +1 -0
  440. package/dist/commands/connect-context.test.js +148 -0
  441. package/dist/commands/connect-context.test.js.map +1 -0
  442. package/dist/commands/connect-handoff.d.ts +51 -0
  443. package/dist/commands/connect-handoff.d.ts.map +1 -0
  444. package/dist/commands/connect-handoff.js +70 -0
  445. package/dist/commands/connect-handoff.js.map +1 -0
  446. package/dist/commands/connect-integration.test.js +44 -16
  447. package/dist/commands/connect-integration.test.js.map +1 -1
  448. package/dist/commands/connect-legacy-migration.test.d.ts +2 -0
  449. package/dist/commands/connect-legacy-migration.test.d.ts.map +1 -0
  450. package/dist/commands/connect-legacy-migration.test.js +109 -0
  451. package/dist/commands/connect-legacy-migration.test.js.map +1 -0
  452. package/dist/commands/connect-screens.d.ts +17 -4
  453. package/dist/commands/connect-screens.d.ts.map +1 -1
  454. package/dist/commands/connect-screens.js +83 -19
  455. package/dist/commands/connect-screens.js.map +1 -1
  456. package/dist/commands/connect.d.ts +27 -6
  457. package/dist/commands/connect.d.ts.map +1 -1
  458. package/dist/commands/connect.js +254 -75
  459. package/dist/commands/connect.js.map +1 -1
  460. package/dist/commands/connect.test.js +344 -7
  461. package/dist/commands/connect.test.js.map +1 -1
  462. package/dist/commands/constellation.d.ts.map +1 -1
  463. package/dist/commands/constellation.js.map +1 -1
  464. package/dist/commands/context.d.ts.map +1 -1
  465. package/dist/commands/context.js.map +1 -1
  466. package/dist/commands/cross-cut.d.ts.map +1 -1
  467. package/dist/commands/cross-cut.js.map +1 -1
  468. package/dist/commands/digest.d.ts +17 -0
  469. package/dist/commands/digest.d.ts.map +1 -0
  470. package/dist/commands/digest.js +58 -0
  471. package/dist/commands/digest.js.map +1 -0
  472. package/dist/commands/digest.test.d.ts +2 -0
  473. package/dist/commands/digest.test.d.ts.map +1 -0
  474. package/dist/commands/digest.test.js +36 -0
  475. package/dist/commands/digest.test.js.map +1 -0
  476. package/dist/commands/direction.d.ts +10 -0
  477. package/dist/commands/direction.d.ts.map +1 -0
  478. package/dist/commands/direction.js +79 -0
  479. package/dist/commands/direction.js.map +1 -0
  480. package/dist/commands/doctor.d.ts.map +1 -1
  481. package/dist/commands/doctor.js +173 -38
  482. package/dist/commands/doctor.js.map +1 -1
  483. package/dist/commands/doctor.test.js +352 -6
  484. package/dist/commands/doctor.test.js.map +1 -1
  485. package/dist/commands/entryAccept.d.ts +24 -0
  486. package/dist/commands/entryAccept.d.ts.map +1 -0
  487. package/dist/commands/entryAccept.js +290 -0
  488. package/dist/commands/entryAccept.js.map +1 -0
  489. package/dist/commands/entryArchive.d.ts +8 -0
  490. package/dist/commands/entryArchive.d.ts.map +1 -0
  491. package/dist/commands/entryArchive.js +37 -0
  492. package/dist/commands/entryArchive.js.map +1 -0
  493. package/dist/commands/entryOwn.d.ts +5 -0
  494. package/dist/commands/entryOwn.d.ts.map +1 -0
  495. package/dist/commands/entryOwn.js +17 -0
  496. package/dist/commands/entryOwn.js.map +1 -0
  497. package/dist/commands/entryPreflight.d.ts +8 -0
  498. package/dist/commands/entryPreflight.d.ts.map +1 -0
  499. package/dist/commands/entryPreflight.js +48 -0
  500. package/dist/commands/entryPreflight.js.map +1 -0
  501. package/dist/commands/feedback.d.ts +36 -0
  502. package/dist/commands/feedback.d.ts.map +1 -0
  503. package/dist/commands/feedback.js +193 -0
  504. package/dist/commands/feedback.js.map +1 -0
  505. package/dist/commands/feedback.test.d.ts +2 -0
  506. package/dist/commands/feedback.test.d.ts.map +1 -0
  507. package/dist/commands/feedback.test.js +125 -0
  508. package/dist/commands/feedback.test.js.map +1 -0
  509. package/dist/commands/fields.d.ts.map +1 -1
  510. package/dist/commands/fields.js +1 -1
  511. package/dist/commands/fields.js.map +1 -1
  512. package/dist/commands/files.d.ts +26 -0
  513. package/dist/commands/files.d.ts.map +1 -0
  514. package/dist/commands/files.js +160 -0
  515. package/dist/commands/files.js.map +1 -0
  516. package/dist/commands/files.test.d.ts +2 -0
  517. package/dist/commands/files.test.d.ts.map +1 -0
  518. package/dist/commands/files.test.js +278 -0
  519. package/dist/commands/files.test.js.map +1 -0
  520. package/dist/commands/handshake.d.ts +59 -7
  521. package/dist/commands/handshake.d.ts.map +1 -1
  522. package/dist/commands/handshake.js +854 -112
  523. package/dist/commands/handshake.js.map +1 -1
  524. package/dist/commands/handshakeCursorSkillCleanup.d.ts +36 -0
  525. package/dist/commands/handshakeCursorSkillCleanup.d.ts.map +1 -0
  526. package/dist/commands/handshakeCursorSkillCleanup.js +110 -0
  527. package/dist/commands/handshakeCursorSkillCleanup.js.map +1 -0
  528. package/dist/commands/handshakeDriftClassification.d.ts +33 -0
  529. package/dist/commands/handshakeDriftClassification.d.ts.map +1 -0
  530. package/dist/commands/handshakeDriftClassification.js +62 -0
  531. package/dist/commands/handshakeDriftClassification.js.map +1 -0
  532. package/dist/commands/history.d.ts +30 -0
  533. package/dist/commands/history.d.ts.map +1 -0
  534. package/dist/commands/history.js +62 -0
  535. package/dist/commands/history.js.map +1 -0
  536. package/dist/commands/history.test.d.ts +2 -0
  537. package/dist/commands/history.test.d.ts.map +1 -0
  538. package/dist/commands/history.test.js +106 -0
  539. package/dist/commands/history.test.js.map +1 -0
  540. package/dist/commands/ingest.d.ts.map +1 -1
  541. package/dist/commands/ingest.js +9 -0
  542. package/dist/commands/ingest.js.map +1 -1
  543. package/dist/commands/init.d.ts +1 -1
  544. package/dist/commands/init.d.ts.map +1 -1
  545. package/dist/commands/init.js +22 -13
  546. package/dist/commands/init.js.map +1 -1
  547. package/dist/commands/method.d.ts +97 -0
  548. package/dist/commands/method.d.ts.map +1 -0
  549. package/dist/commands/method.js +773 -0
  550. package/dist/commands/method.js.map +1 -0
  551. package/dist/commands/organisation.d.ts +17 -0
  552. package/dist/commands/organisation.d.ts.map +1 -0
  553. package/dist/commands/organisation.js +201 -0
  554. package/dist/commands/organisation.js.map +1 -0
  555. package/dist/commands/organisation.test.d.ts +2 -0
  556. package/dist/commands/organisation.test.d.ts.map +1 -0
  557. package/dist/commands/organisation.test.js +204 -0
  558. package/dist/commands/organisation.test.js.map +1 -0
  559. package/dist/commands/organisationHierarchy.d.ts +8 -0
  560. package/dist/commands/organisationHierarchy.d.ts.map +1 -0
  561. package/dist/commands/organisationHierarchy.js +75 -0
  562. package/dist/commands/organisationHierarchy.js.map +1 -0
  563. package/dist/commands/organisationHierarchy.test.d.ts +2 -0
  564. package/dist/commands/organisationHierarchy.test.d.ts.map +1 -0
  565. package/dist/commands/organisationHierarchy.test.js +72 -0
  566. package/dist/commands/organisationHierarchy.test.js.map +1 -0
  567. package/dist/commands/organisationWrite.d.ts +18 -0
  568. package/dist/commands/organisationWrite.d.ts.map +1 -0
  569. package/dist/commands/organisationWrite.js +68 -0
  570. package/dist/commands/organisationWrite.js.map +1 -0
  571. package/dist/commands/orient.d.ts +118 -6
  572. package/dist/commands/orient.d.ts.map +1 -1
  573. package/dist/commands/orient.js +225 -12
  574. package/dist/commands/orient.js.map +1 -1
  575. package/dist/commands/outcome.d.ts +92 -0
  576. package/dist/commands/outcome.d.ts.map +1 -0
  577. package/dist/commands/outcome.js +203 -0
  578. package/dist/commands/outcome.js.map +1 -0
  579. package/dist/commands/outcome.test.d.ts +2 -0
  580. package/dist/commands/outcome.test.d.ts.map +1 -0
  581. package/dist/commands/outcome.test.js +308 -0
  582. package/dist/commands/outcome.test.js.map +1 -0
  583. package/dist/commands/profile.d.ts +34 -2
  584. package/dist/commands/profile.d.ts.map +1 -1
  585. package/dist/commands/profile.js +294 -41
  586. package/dist/commands/profile.js.map +1 -1
  587. package/dist/commands/proof-run.d.ts +51 -0
  588. package/dist/commands/proof-run.d.ts.map +1 -0
  589. package/dist/commands/proof-run.js +209 -0
  590. package/dist/commands/proof-run.js.map +1 -0
  591. package/dist/commands/proposals.d.ts.map +1 -1
  592. package/dist/commands/proposals.js.map +1 -1
  593. package/dist/commands/quality.d.ts +16 -0
  594. package/dist/commands/quality.d.ts.map +1 -0
  595. package/dist/commands/quality.js +29 -0
  596. package/dist/commands/quality.js.map +1 -0
  597. package/dist/commands/questions.d.ts +23 -0
  598. package/dist/commands/questions.d.ts.map +1 -0
  599. package/dist/commands/questions.js +238 -0
  600. package/dist/commands/questions.js.map +1 -0
  601. package/dist/commands/questions.test.d.ts +2 -0
  602. package/dist/commands/questions.test.d.ts.map +1 -0
  603. package/dist/commands/questions.test.js +159 -0
  604. package/dist/commands/questions.test.js.map +1 -0
  605. package/dist/commands/reject.d.ts.map +1 -1
  606. package/dist/commands/reject.js +3 -2
  607. package/dist/commands/reject.js.map +1 -1
  608. package/dist/commands/relate.d.ts +1 -0
  609. package/dist/commands/relate.d.ts.map +1 -1
  610. package/dist/commands/relate.js +102 -3
  611. package/dist/commands/relate.js.map +1 -1
  612. package/dist/commands/restore.d.ts +2 -0
  613. package/dist/commands/restore.d.ts.map +1 -0
  614. package/dist/commands/restore.js +83 -0
  615. package/dist/commands/restore.js.map +1 -0
  616. package/dist/commands/rework.d.ts +24 -0
  617. package/dist/commands/rework.d.ts.map +1 -0
  618. package/dist/commands/rework.js +97 -0
  619. package/dist/commands/rework.js.map +1 -0
  620. package/dist/commands/role.d.ts +49 -0
  621. package/dist/commands/role.d.ts.map +1 -0
  622. package/dist/commands/role.js +126 -0
  623. package/dist/commands/role.js.map +1 -0
  624. package/dist/commands/role.test.d.ts +2 -0
  625. package/dist/commands/role.test.d.ts.map +1 -0
  626. package/dist/commands/role.test.js +195 -0
  627. package/dist/commands/role.test.js.map +1 -0
  628. package/dist/commands/scoreboard.d.ts +28 -0
  629. package/dist/commands/scoreboard.d.ts.map +1 -0
  630. package/dist/commands/scoreboard.js +40 -0
  631. package/dist/commands/scoreboard.js.map +1 -0
  632. package/dist/commands/search.d.ts.map +1 -1
  633. package/dist/commands/search.js.map +1 -1
  634. package/dist/commands/session.d.ts +60 -7
  635. package/dist/commands/session.d.ts.map +1 -1
  636. package/dist/commands/session.js +407 -58
  637. package/dist/commands/session.js.map +1 -1
  638. package/dist/commands/shape.d.ts +16 -0
  639. package/dist/commands/shape.d.ts.map +1 -0
  640. package/dist/commands/shape.js +149 -0
  641. package/dist/commands/shape.js.map +1 -0
  642. package/dist/commands/shape.test.d.ts +2 -0
  643. package/dist/commands/shape.test.d.ts.map +1 -0
  644. package/dist/commands/shape.test.js +148 -0
  645. package/dist/commands/shape.test.js.map +1 -0
  646. package/dist/commands/status.d.ts +7 -0
  647. package/dist/commands/status.d.ts.map +1 -0
  648. package/dist/commands/status.js +102 -0
  649. package/dist/commands/status.js.map +1 -0
  650. package/dist/commands/status.test.d.ts +2 -0
  651. package/dist/commands/status.test.d.ts.map +1 -0
  652. package/dist/commands/status.test.js +75 -0
  653. package/dist/commands/status.test.js.map +1 -0
  654. package/dist/commands/stillTrue.d.ts +14 -0
  655. package/dist/commands/stillTrue.d.ts.map +1 -0
  656. package/dist/commands/stillTrue.js +48 -0
  657. package/dist/commands/stillTrue.js.map +1 -0
  658. package/dist/commands/tensionsList.d.ts +5 -0
  659. package/dist/commands/tensionsList.d.ts.map +1 -0
  660. package/dist/commands/tensionsList.js +27 -0
  661. package/dist/commands/tensionsList.js.map +1 -0
  662. package/dist/commands/update.d.ts +20 -0
  663. package/dist/commands/update.d.ts.map +1 -1
  664. package/dist/commands/update.js +155 -36
  665. package/dist/commands/update.js.map +1 -1
  666. package/dist/commands/upgrade.d.ts +5 -0
  667. package/dist/commands/upgrade.d.ts.map +1 -0
  668. package/dist/commands/upgrade.js +110 -0
  669. package/dist/commands/upgrade.js.map +1 -0
  670. package/dist/commands/usage.d.ts.map +1 -1
  671. package/dist/commands/usage.js +0 -18
  672. package/dist/commands/usage.js.map +1 -1
  673. package/dist/commands/verify.d.ts.map +1 -1
  674. package/dist/commands/verify.js +7 -1
  675. package/dist/commands/verify.js.map +1 -1
  676. package/dist/commands/welcome.d.ts.map +1 -1
  677. package/dist/commands/welcome.js +7 -4
  678. package/dist/commands/welcome.js.map +1 -1
  679. package/dist/commands/whoami.d.ts +20 -0
  680. package/dist/commands/whoami.d.ts.map +1 -0
  681. package/dist/commands/whoami.js +126 -0
  682. package/dist/commands/whoami.js.map +1 -0
  683. package/dist/commands/whoami.test.d.ts +2 -0
  684. package/dist/commands/whoami.test.d.ts.map +1 -0
  685. package/dist/commands/whoami.test.js +130 -0
  686. package/dist/commands/whoami.test.js.map +1 -0
  687. package/dist/commands/workspace.d.ts +18 -2
  688. package/dist/commands/workspace.d.ts.map +1 -1
  689. package/dist/commands/workspace.js +5 -2
  690. package/dist/commands/workspace.js.map +1 -1
  691. package/dist/formatters/__tests__/orient-possibleConflict.test.d.ts +2 -0
  692. package/dist/formatters/__tests__/orient-possibleConflict.test.d.ts.map +1 -0
  693. package/dist/formatters/__tests__/orient-possibleConflict.test.js +68 -0
  694. package/dist/formatters/__tests__/orient-possibleConflict.test.js.map +1 -0
  695. package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
  696. package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
  697. package/dist/formatters/__tests__/orient-provenance.test.js +548 -0
  698. package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
  699. package/dist/formatters/__tests__/orient-ruleLists.test.d.ts +2 -0
  700. package/dist/formatters/__tests__/orient-ruleLists.test.d.ts.map +1 -0
  701. package/dist/formatters/__tests__/orient-ruleLists.test.js +78 -0
  702. package/dist/formatters/__tests__/orient-ruleLists.test.js.map +1 -0
  703. package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
  704. package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
  705. package/dist/formatters/__tests__/session-list-show.test.js +195 -0
  706. package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
  707. package/dist/formatters/__tests__/session.test.d.ts +2 -0
  708. package/dist/formatters/__tests__/session.test.d.ts.map +1 -0
  709. package/dist/formatters/__tests__/session.test.js +192 -0
  710. package/dist/formatters/__tests__/session.test.js.map +1 -0
  711. package/dist/formatters/__tests__/tensionsList.test.d.ts +2 -0
  712. package/dist/formatters/__tests__/tensionsList.test.d.ts.map +1 -0
  713. package/dist/formatters/__tests__/tensionsList.test.js +30 -0
  714. package/dist/formatters/__tests__/tensionsList.test.js.map +1 -0
  715. package/dist/formatters/audit.d.ts +7 -1
  716. package/dist/formatters/audit.d.ts.map +1 -1
  717. package/dist/formatters/audit.js +2 -2
  718. package/dist/formatters/audit.js.map +1 -1
  719. package/dist/formatters/brief.d.ts +6 -15
  720. package/dist/formatters/brief.d.ts.map +1 -1
  721. package/dist/formatters/brief.js +16 -14
  722. package/dist/formatters/brief.js.map +1 -1
  723. package/dist/formatters/brief.test.d.ts +2 -0
  724. package/dist/formatters/brief.test.d.ts.map +1 -0
  725. package/dist/formatters/brief.test.js +21 -0
  726. package/dist/formatters/brief.test.js.map +1 -0
  727. package/dist/formatters/capture.d.ts +13 -0
  728. package/dist/formatters/capture.d.ts.map +1 -1
  729. package/dist/formatters/capture.js +20 -1
  730. package/dist/formatters/capture.js.map +1 -1
  731. package/dist/formatters/coaching.d.ts +55 -0
  732. package/dist/formatters/coaching.d.ts.map +1 -0
  733. package/dist/formatters/coaching.js +46 -0
  734. package/dist/formatters/coaching.js.map +1 -0
  735. package/dist/formatters/conflicts.d.ts +69 -0
  736. package/dist/formatters/conflicts.d.ts.map +1 -0
  737. package/dist/formatters/conflicts.js +87 -0
  738. package/dist/formatters/conflicts.js.map +1 -0
  739. package/dist/formatters/conflicts.test.d.ts +2 -0
  740. package/dist/formatters/conflicts.test.d.ts.map +1 -0
  741. package/dist/formatters/conflicts.test.js +136 -0
  742. package/dist/formatters/conflicts.test.js.map +1 -0
  743. package/dist/formatters/context.d.ts +1 -1
  744. package/dist/formatters/context.d.ts.map +1 -1
  745. package/dist/formatters/context.js.map +1 -1
  746. package/dist/formatters/digest.d.ts +13 -0
  747. package/dist/formatters/digest.d.ts.map +1 -0
  748. package/dist/formatters/digest.js +98 -0
  749. package/dist/formatters/digest.js.map +1 -0
  750. package/dist/formatters/digest.test.d.ts +2 -0
  751. package/dist/formatters/digest.test.d.ts.map +1 -0
  752. package/dist/formatters/digest.test.js +166 -0
  753. package/dist/formatters/digest.test.js.map +1 -0
  754. package/dist/formatters/direction.d.ts +48 -0
  755. package/dist/formatters/direction.d.ts.map +1 -0
  756. package/dist/formatters/direction.js +75 -0
  757. package/dist/formatters/direction.js.map +1 -0
  758. package/dist/formatters/direction.test.d.ts +2 -0
  759. package/dist/formatters/direction.test.d.ts.map +1 -0
  760. package/dist/formatters/direction.test.js +70 -0
  761. package/dist/formatters/direction.test.js.map +1 -0
  762. package/dist/formatters/entry.d.ts +61 -0
  763. package/dist/formatters/entry.d.ts.map +1 -1
  764. package/dist/formatters/entry.js +97 -11
  765. package/dist/formatters/entry.js.map +1 -1
  766. package/dist/formatters/entryAccept.d.ts +79 -0
  767. package/dist/formatters/entryAccept.d.ts.map +1 -0
  768. package/dist/formatters/entryAccept.js +80 -0
  769. package/dist/formatters/entryAccept.js.map +1 -0
  770. package/dist/formatters/feedback.d.ts +56 -0
  771. package/dist/formatters/feedback.d.ts.map +1 -0
  772. package/dist/formatters/feedback.js +89 -0
  773. package/dist/formatters/feedback.js.map +1 -0
  774. package/dist/formatters/feedback.test.d.ts +2 -0
  775. package/dist/formatters/feedback.test.d.ts.map +1 -0
  776. package/dist/formatters/feedback.test.js +112 -0
  777. package/dist/formatters/feedback.test.js.map +1 -0
  778. package/dist/formatters/fields.d.ts +7 -0
  779. package/dist/formatters/fields.d.ts.map +1 -1
  780. package/dist/formatters/fields.js +9 -0
  781. package/dist/formatters/fields.js.map +1 -1
  782. package/dist/formatters/fields.test.d.ts +2 -0
  783. package/dist/formatters/fields.test.d.ts.map +1 -0
  784. package/dist/formatters/fields.test.js +42 -0
  785. package/dist/formatters/fields.test.js.map +1 -0
  786. package/dist/formatters/handshake.d.ts +61 -0
  787. package/dist/formatters/handshake.d.ts.map +1 -1
  788. package/dist/formatters/handshake.js +160 -3
  789. package/dist/formatters/handshake.js.map +1 -1
  790. package/dist/formatters/orient.coherencyCheckTag.test.d.ts +2 -0
  791. package/dist/formatters/orient.coherencyCheckTag.test.d.ts.map +1 -0
  792. package/dist/formatters/orient.coherencyCheckTag.test.js +22 -0
  793. package/dist/formatters/orient.coherencyCheckTag.test.js.map +1 -0
  794. package/dist/formatters/orient.d.ts +235 -12
  795. package/dist/formatters/orient.d.ts.map +1 -1
  796. package/dist/formatters/orient.js +260 -46
  797. package/dist/formatters/orient.js.map +1 -1
  798. package/dist/formatters/orient.rcrtMiss.test.d.ts +2 -0
  799. package/dist/formatters/orient.rcrtMiss.test.d.ts.map +1 -0
  800. package/dist/formatters/orient.rcrtMiss.test.js +82 -0
  801. package/dist/formatters/orient.rcrtMiss.test.js.map +1 -0
  802. package/dist/formatters/orient.rituals.test.d.ts +2 -0
  803. package/dist/formatters/orient.rituals.test.d.ts.map +1 -0
  804. package/dist/formatters/orient.rituals.test.js +82 -0
  805. package/dist/formatters/orient.rituals.test.js.map +1 -0
  806. package/dist/formatters/orient.shapeAdvisorySummary.test.d.ts +2 -0
  807. package/dist/formatters/orient.shapeAdvisorySummary.test.d.ts.map +1 -0
  808. package/dist/formatters/orient.shapeAdvisorySummary.test.js +62 -0
  809. package/dist/formatters/orient.shapeAdvisorySummary.test.js.map +1 -0
  810. package/dist/formatters/orientDegradation.d.ts +38 -0
  811. package/dist/formatters/orientDegradation.d.ts.map +1 -0
  812. package/dist/formatters/orientDegradation.js +50 -0
  813. package/dist/formatters/orientDegradation.js.map +1 -0
  814. package/dist/formatters/orientDegradation.test.d.ts +2 -0
  815. package/dist/formatters/orientDegradation.test.d.ts.map +1 -0
  816. package/dist/formatters/orientDegradation.test.js +28 -0
  817. package/dist/formatters/orientDegradation.test.js.map +1 -0
  818. package/dist/formatters/orientDirection.d.ts +107 -0
  819. package/dist/formatters/orientDirection.d.ts.map +1 -0
  820. package/dist/formatters/orientDirection.js +177 -0
  821. package/dist/formatters/orientDirection.js.map +1 -0
  822. package/dist/formatters/orientDirection.test.d.ts +2 -0
  823. package/dist/formatters/orientDirection.test.d.ts.map +1 -0
  824. package/dist/formatters/orientDirection.test.js +310 -0
  825. package/dist/formatters/orientDirection.test.js.map +1 -0
  826. package/dist/formatters/orientRetrievalMiss.d.ts +22 -0
  827. package/dist/formatters/orientRetrievalMiss.d.ts.map +1 -0
  828. package/dist/formatters/orientRetrievalMiss.js +17 -0
  829. package/dist/formatters/orientRetrievalMiss.js.map +1 -0
  830. package/dist/formatters/proposals.js +2 -2
  831. package/dist/formatters/proposals.js.map +1 -1
  832. package/dist/formatters/questions.d.ts +71 -0
  833. package/dist/formatters/questions.d.ts.map +1 -0
  834. package/dist/formatters/questions.js +117 -0
  835. package/dist/formatters/questions.js.map +1 -0
  836. package/dist/formatters/questions.test.d.ts +2 -0
  837. package/dist/formatters/questions.test.d.ts.map +1 -0
  838. package/dist/formatters/questions.test.js +147 -0
  839. package/dist/formatters/questions.test.js.map +1 -0
  840. package/dist/formatters/relate.d.ts +14 -1
  841. package/dist/formatters/relate.d.ts.map +1 -1
  842. package/dist/formatters/relate.js +12 -3
  843. package/dist/formatters/relate.js.map +1 -1
  844. package/dist/formatters/relate.test.d.ts +2 -0
  845. package/dist/formatters/relate.test.d.ts.map +1 -0
  846. package/dist/formatters/relate.test.js +81 -0
  847. package/dist/formatters/relate.test.js.map +1 -0
  848. package/dist/formatters/scoreboard.d.ts +11 -0
  849. package/dist/formatters/scoreboard.d.ts.map +1 -0
  850. package/dist/formatters/scoreboard.js +164 -0
  851. package/dist/formatters/scoreboard.js.map +1 -0
  852. package/dist/formatters/scoreboard.test.d.ts +2 -0
  853. package/dist/formatters/scoreboard.test.d.ts.map +1 -0
  854. package/dist/formatters/scoreboard.test.js +303 -0
  855. package/dist/formatters/scoreboard.test.js.map +1 -0
  856. package/dist/formatters/search.d.ts.map +1 -1
  857. package/dist/formatters/search.js +11 -1
  858. package/dist/formatters/search.js.map +1 -1
  859. package/dist/formatters/search.test.d.ts +2 -0
  860. package/dist/formatters/search.test.d.ts.map +1 -0
  861. package/dist/formatters/search.test.js +57 -0
  862. package/dist/formatters/search.test.js.map +1 -0
  863. package/dist/formatters/session-feedback.test.d.ts +2 -0
  864. package/dist/formatters/session-feedback.test.d.ts.map +1 -0
  865. package/dist/formatters/session-feedback.test.js +83 -0
  866. package/dist/formatters/session-feedback.test.js.map +1 -0
  867. package/dist/formatters/session.d.ts +127 -5
  868. package/dist/formatters/session.d.ts.map +1 -1
  869. package/dist/formatters/session.js +313 -12
  870. package/dist/formatters/session.js.map +1 -1
  871. package/dist/formatters/shape.d.ts +54 -0
  872. package/dist/formatters/shape.d.ts.map +1 -0
  873. package/dist/formatters/shape.js +97 -0
  874. package/dist/formatters/shape.js.map +1 -0
  875. package/dist/formatters/shape.test.d.ts +2 -0
  876. package/dist/formatters/shape.test.d.ts.map +1 -0
  877. package/dist/formatters/shape.test.js +80 -0
  878. package/dist/formatters/shape.test.js.map +1 -0
  879. package/dist/formatters/spineCheck.d.ts +14 -0
  880. package/dist/formatters/spineCheck.d.ts.map +1 -0
  881. package/dist/formatters/spineCheck.js +113 -0
  882. package/dist/formatters/spineCheck.js.map +1 -0
  883. package/dist/formatters/spineCheck.test.d.ts +2 -0
  884. package/dist/formatters/spineCheck.test.d.ts.map +1 -0
  885. package/dist/formatters/spineCheck.test.js +76 -0
  886. package/dist/formatters/spineCheck.test.js.map +1 -0
  887. package/dist/formatters/tensionsList.d.ts +17 -0
  888. package/dist/formatters/tensionsList.d.ts.map +1 -0
  889. package/dist/formatters/tensionsList.js +33 -0
  890. package/dist/formatters/tensionsList.js.map +1 -0
  891. package/dist/formatters/update.d.ts +23 -0
  892. package/dist/formatters/update.d.ts.map +1 -1
  893. package/dist/formatters/update.js +46 -6
  894. package/dist/formatters/update.js.map +1 -1
  895. package/dist/formatters/update.test.d.ts +2 -0
  896. package/dist/formatters/update.test.d.ts.map +1 -0
  897. package/dist/formatters/update.test.js +103 -0
  898. package/dist/formatters/update.test.js.map +1 -0
  899. package/dist/formatters/verify.d.ts +12 -4
  900. package/dist/formatters/verify.d.ts.map +1 -1
  901. package/dist/formatters/verify.js +20 -2
  902. package/dist/formatters/verify.js.map +1 -1
  903. package/dist/generated/healthGapKinds.generated.d.ts +12 -0
  904. package/dist/generated/healthGapKinds.generated.d.ts.map +1 -0
  905. package/dist/generated/healthGapKinds.generated.js +21 -0
  906. package/dist/generated/healthGapKinds.generated.js.map +1 -0
  907. package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts +12 -0
  908. package/dist/generated/organisationalAuthorityRefusalCodes.generated.d.ts.map +1 -0
  909. package/dist/generated/organisationalAuthorityRefusalCodes.generated.js +11 -0
  910. package/dist/generated/organisationalAuthorityRefusalCodes.generated.js.map +1 -0
  911. package/dist/generated/relationTypes.generated.d.ts +12 -0
  912. package/dist/generated/relationTypes.generated.d.ts.map +1 -0
  913. package/dist/generated/relationTypes.generated.js +11 -0
  914. package/dist/generated/relationTypes.generated.js.map +1 -0
  915. package/dist/generated/routeLatencyBudget.generated.d.ts +56 -0
  916. package/dist/generated/routeLatencyBudget.generated.d.ts.map +1 -0
  917. package/dist/generated/routeLatencyBudget.generated.js +294 -0
  918. package/dist/generated/routeLatencyBudget.generated.js.map +1 -0
  919. package/dist/generated/sourceSurfaces.generated.d.ts +12 -0
  920. package/dist/generated/sourceSurfaces.generated.d.ts.map +1 -0
  921. package/dist/generated/sourceSurfaces.generated.js +11 -0
  922. package/dist/generated/sourceSurfaces.generated.js.map +1 -0
  923. package/dist/generators/adapters.d.ts +33 -4
  924. package/dist/generators/adapters.d.ts.map +1 -1
  925. package/dist/generators/adapters.js +72 -27
  926. package/dist/generators/adapters.js.map +1 -1
  927. package/dist/generators/adapters.test.js +0 -2
  928. package/dist/generators/adapters.test.js.map +1 -1
  929. package/dist/generators/archetypes.d.ts.map +1 -1
  930. package/dist/generators/archetypes.js +46 -9
  931. package/dist/generators/archetypes.js.map +1 -1
  932. package/dist/generators/archetypes.test.js +35 -0
  933. package/dist/generators/archetypes.test.js.map +1 -1
  934. package/dist/generators/boundary-manifest.d.ts +29 -0
  935. package/dist/generators/boundary-manifest.d.ts.map +1 -0
  936. package/dist/generators/boundary-manifest.js +183 -0
  937. package/dist/generators/boundary-manifest.js.map +1 -0
  938. package/dist/generators/boundary-manifest.real-file.test.d.ts +2 -0
  939. package/dist/generators/boundary-manifest.real-file.test.d.ts.map +1 -0
  940. package/dist/generators/boundary-manifest.real-file.test.js +70 -0
  941. package/dist/generators/boundary-manifest.real-file.test.js.map +1 -0
  942. package/dist/generators/boundary-manifest.test.d.ts +2 -0
  943. package/dist/generators/boundary-manifest.test.d.ts.map +1 -0
  944. package/dist/generators/boundary-manifest.test.js +91 -0
  945. package/dist/generators/boundary-manifest.test.js.map +1 -0
  946. package/dist/generators/chain-classifier-kernel-client-drift.test.d.ts +2 -0
  947. package/dist/generators/chain-classifier-kernel-client-drift.test.d.ts.map +1 -0
  948. package/dist/generators/chain-classifier-kernel-client-drift.test.js +41 -0
  949. package/dist/generators/chain-classifier-kernel-client-drift.test.js.map +1 -0
  950. package/dist/generators/chain-classifier.d.ts +67 -14
  951. package/dist/generators/chain-classifier.d.ts.map +1 -1
  952. package/dist/generators/chain-classifier.js +46 -174
  953. package/dist/generators/chain-classifier.js.map +1 -1
  954. package/dist/generators/chain-rules.d.ts.map +1 -1
  955. package/dist/generators/chain-rules.js +115 -3
  956. package/dist/generators/chain-rules.js.map +1 -1
  957. package/dist/generators/chain-rules.test.js +271 -2
  958. package/dist/generators/chain-rules.test.js.map +1 -1
  959. package/dist/generators/context-md.d.ts +1 -1
  960. package/dist/generators/context-md.d.ts.map +1 -1
  961. package/dist/generators/context-md.js +8 -23
  962. package/dist/generators/context-md.js.map +1 -1
  963. package/dist/generators/manifest.d.ts +115 -0
  964. package/dist/generators/manifest.d.ts.map +1 -0
  965. package/dist/generators/manifest.js +277 -0
  966. package/dist/generators/manifest.js.map +1 -0
  967. package/dist/generators/noProjectionAssets.d.ts +15 -0
  968. package/dist/generators/noProjectionAssets.d.ts.map +1 -0
  969. package/dist/generators/noProjectionAssets.js +6 -0
  970. package/dist/generators/noProjectionAssets.js.map +1 -0
  971. package/dist/generators/portable-knowledge.d.ts +27 -28
  972. package/dist/generators/portable-knowledge.d.ts.map +1 -1
  973. package/dist/generators/portable-knowledge.js +97 -119
  974. package/dist/generators/portable-knowledge.js.map +1 -1
  975. package/dist/generators/portable-knowledge.test.js +82 -267
  976. package/dist/generators/portable-knowledge.test.js.map +1 -1
  977. package/dist/generators/region-projections.d.ts +17 -0
  978. package/dist/generators/region-projections.d.ts.map +1 -0
  979. package/dist/generators/region-projections.js +48 -0
  980. package/dist/generators/region-projections.js.map +1 -0
  981. package/dist/generators/region-projections.test.d.ts +2 -0
  982. package/dist/generators/region-projections.test.d.ts.map +1 -0
  983. package/dist/generators/region-projections.test.js +63 -0
  984. package/dist/generators/region-projections.test.js.map +1 -0
  985. package/dist/generators/region.d.ts +24 -0
  986. package/dist/generators/region.d.ts.map +1 -0
  987. package/dist/generators/region.js +87 -0
  988. package/dist/generators/region.js.map +1 -0
  989. package/dist/generators/region.test.d.ts +2 -0
  990. package/dist/generators/region.test.d.ts.map +1 -0
  991. package/dist/generators/region.test.js +126 -0
  992. package/dist/generators/region.test.js.map +1 -0
  993. package/dist/generators/surface-profiles.d.ts +1 -2
  994. package/dist/generators/surface-profiles.d.ts.map +1 -1
  995. package/dist/generators/surface-profiles.js.map +1 -1
  996. package/dist/handleCliError.d.ts +2 -0
  997. package/dist/handleCliError.d.ts.map +1 -0
  998. package/dist/handleCliError.js +56 -0
  999. package/dist/handleCliError.js.map +1 -0
  1000. package/dist/index.d.ts +0 -5
  1001. package/dist/index.d.ts.map +1 -1
  1002. package/dist/index.js +262 -266
  1003. package/dist/index.js.map +1 -1
  1004. package/dist/lib/__tests__/legalRelationTypes.test.d.ts +2 -0
  1005. package/dist/lib/__tests__/legalRelationTypes.test.d.ts.map +1 -0
  1006. package/dist/lib/__tests__/legalRelationTypes.test.js +98 -0
  1007. package/dist/lib/__tests__/legalRelationTypes.test.js.map +1 -0
  1008. package/dist/lib/__tests__/parseFields.test.d.ts +2 -0
  1009. package/dist/lib/__tests__/parseFields.test.d.ts.map +1 -0
  1010. package/dist/lib/__tests__/parseFields.test.js +40 -0
  1011. package/dist/lib/__tests__/parseFields.test.js.map +1 -0
  1012. package/dist/lib/activation.d.ts.map +1 -1
  1013. package/dist/lib/activation.js +7 -3
  1014. package/dist/lib/activation.js.map +1 -1
  1015. package/dist/lib/activation.test.js +3 -3
  1016. package/dist/lib/activation.test.js.map +1 -1
  1017. package/dist/lib/adminConfig.d.ts +48 -0
  1018. package/dist/lib/adminConfig.d.ts.map +1 -0
  1019. package/dist/lib/adminConfig.js +130 -0
  1020. package/dist/lib/adminConfig.js.map +1 -0
  1021. package/dist/lib/canonicalRefs.d.ts +160 -0
  1022. package/dist/lib/canonicalRefs.d.ts.map +1 -0
  1023. package/dist/lib/canonicalRefs.js +169 -0
  1024. package/dist/lib/canonicalRefs.js.map +1 -0
  1025. package/dist/lib/captureGrounding.d.ts +43 -0
  1026. package/dist/lib/captureGrounding.d.ts.map +1 -0
  1027. package/dist/lib/captureGrounding.js +99 -0
  1028. package/dist/lib/captureGrounding.js.map +1 -0
  1029. package/dist/lib/captureGrounding.test.d.ts +2 -0
  1030. package/dist/lib/captureGrounding.test.d.ts.map +1 -0
  1031. package/dist/lib/captureGrounding.test.js +116 -0
  1032. package/dist/lib/captureGrounding.test.js.map +1 -0
  1033. package/dist/lib/captureLink.d.ts +26 -0
  1034. package/dist/lib/captureLink.d.ts.map +1 -0
  1035. package/dist/lib/captureLink.js +96 -0
  1036. package/dist/lib/captureLink.js.map +1 -0
  1037. package/dist/lib/captureVersion.d.ts +38 -0
  1038. package/dist/lib/captureVersion.d.ts.map +1 -0
  1039. package/dist/lib/captureVersion.js +73 -0
  1040. package/dist/lib/captureVersion.js.map +1 -0
  1041. package/dist/lib/client.d.ts +46 -19
  1042. package/dist/lib/client.d.ts.map +1 -1
  1043. package/dist/lib/client.js +229 -66
  1044. package/dist/lib/client.js.map +1 -1
  1045. package/dist/lib/collectionRegistry.d.ts +80 -0
  1046. package/dist/lib/collectionRegistry.d.ts.map +1 -0
  1047. package/dist/lib/collectionRegistry.js +172 -0
  1048. package/dist/lib/collectionRegistry.js.map +1 -0
  1049. package/dist/lib/commanderOptions.d.ts +8 -0
  1050. package/dist/lib/commanderOptions.d.ts.map +1 -0
  1051. package/dist/lib/commanderOptions.js +10 -0
  1052. package/dist/lib/commanderOptions.js.map +1 -0
  1053. package/dist/lib/compose-wrapup-view.d.ts +48 -0
  1054. package/dist/lib/compose-wrapup-view.d.ts.map +1 -0
  1055. package/dist/lib/compose-wrapup-view.js +37 -0
  1056. package/dist/lib/compose-wrapup-view.js.map +1 -0
  1057. package/dist/lib/config.d.ts +102 -54
  1058. package/dist/lib/config.d.ts.map +1 -1
  1059. package/dist/lib/config.js +252 -156
  1060. package/dist/lib/config.js.map +1 -1
  1061. package/dist/lib/configResult.d.ts +103 -0
  1062. package/dist/lib/configResult.d.ts.map +1 -0
  1063. package/dist/lib/configResult.js +180 -0
  1064. package/dist/lib/configResult.js.map +1 -0
  1065. package/dist/lib/connectKeyLabel.d.ts +9 -0
  1066. package/dist/lib/connectKeyLabel.d.ts.map +1 -0
  1067. package/dist/lib/connectKeyLabel.js +12 -0
  1068. package/dist/lib/connectKeyLabel.js.map +1 -0
  1069. package/dist/lib/constants.d.ts +5 -1
  1070. package/dist/lib/constants.d.ts.map +1 -1
  1071. package/dist/lib/constants.js +8 -1
  1072. package/dist/lib/constants.js.map +1 -1
  1073. package/dist/lib/conversation.d.ts +36 -0
  1074. package/dist/lib/conversation.d.ts.map +1 -0
  1075. package/dist/lib/conversation.js +66 -0
  1076. package/dist/lib/conversation.js.map +1 -0
  1077. package/dist/lib/createEntryResult.d.ts +34 -0
  1078. package/dist/lib/createEntryResult.d.ts.map +1 -0
  1079. package/dist/lib/createEntryResult.js +12 -0
  1080. package/dist/lib/createEntryResult.js.map +1 -0
  1081. package/dist/lib/deployment.test.js +19 -0
  1082. package/dist/lib/deployment.test.js.map +1 -1
  1083. package/dist/lib/envKeySnapshot.d.ts +10 -0
  1084. package/dist/lib/envKeySnapshot.d.ts.map +1 -0
  1085. package/dist/lib/envKeySnapshot.js +30 -0
  1086. package/dist/lib/envKeySnapshot.js.map +1 -0
  1087. package/dist/lib/errors.d.ts +79 -0
  1088. package/dist/lib/errors.d.ts.map +1 -1
  1089. package/dist/lib/errors.js +79 -0
  1090. package/dist/lib/errors.js.map +1 -1
  1091. package/dist/lib/frontmatter.d.ts +55 -0
  1092. package/dist/lib/frontmatter.d.ts.map +1 -0
  1093. package/dist/lib/frontmatter.js +92 -0
  1094. package/dist/lib/frontmatter.js.map +1 -0
  1095. package/dist/lib/frontmatter.test.d.ts +15 -0
  1096. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  1097. package/dist/lib/frontmatter.test.js +98 -0
  1098. package/dist/lib/frontmatter.test.js.map +1 -0
  1099. package/dist/lib/gatewayTimeout.d.ts +88 -0
  1100. package/dist/lib/gatewayTimeout.d.ts.map +1 -0
  1101. package/dist/lib/gatewayTimeout.js +118 -0
  1102. package/dist/lib/gatewayTimeout.js.map +1 -0
  1103. package/dist/lib/gitEnvLeakKeysParity.test.d.ts +2 -0
  1104. package/dist/lib/gitEnvLeakKeysParity.test.d.ts.map +1 -0
  1105. package/dist/lib/gitEnvLeakKeysParity.test.js +73 -0
  1106. package/dist/lib/gitEnvLeakKeysParity.test.js.map +1 -0
  1107. package/dist/lib/glossary.js +1 -1
  1108. package/dist/lib/glossary.js.map +1 -1
  1109. package/dist/lib/hook-intents.d.ts +51 -0
  1110. package/dist/lib/hook-intents.d.ts.map +1 -0
  1111. package/dist/lib/hook-intents.js +84 -0
  1112. package/dist/lib/hook-intents.js.map +1 -0
  1113. package/dist/lib/inferSourceDate.d.ts +12 -0
  1114. package/dist/lib/inferSourceDate.d.ts.map +1 -0
  1115. package/dist/lib/inferSourceDate.js +44 -0
  1116. package/dist/lib/inferSourceDate.js.map +1 -0
  1117. package/dist/lib/kernelEnvelope.d.ts +31 -0
  1118. package/dist/lib/kernelEnvelope.d.ts.map +1 -0
  1119. package/dist/lib/kernelEnvelope.js +52 -0
  1120. package/dist/lib/kernelEnvelope.js.map +1 -0
  1121. package/dist/lib/legalRelationTypes.d.ts +26 -0
  1122. package/dist/lib/legalRelationTypes.d.ts.map +1 -0
  1123. package/dist/lib/legalRelationTypes.js +95 -0
  1124. package/dist/lib/legalRelationTypes.js.map +1 -0
  1125. package/dist/lib/localBinding.d.ts +86 -0
  1126. package/dist/lib/localBinding.d.ts.map +1 -0
  1127. package/dist/lib/localBinding.js +173 -0
  1128. package/dist/lib/localBinding.js.map +1 -0
  1129. package/dist/lib/method-registry.d.ts +37 -0
  1130. package/dist/lib/method-registry.d.ts.map +1 -0
  1131. package/dist/lib/method-registry.js +41 -0
  1132. package/dist/lib/method-registry.js.map +1 -0
  1133. package/dist/lib/normalizeMaterializedFilename.d.ts +28 -0
  1134. package/dist/lib/normalizeMaterializedFilename.d.ts.map +1 -0
  1135. package/dist/lib/normalizeMaterializedFilename.js +56 -0
  1136. package/dist/lib/normalizeMaterializedFilename.js.map +1 -0
  1137. package/dist/lib/normalizeMaterializedFilename.test.d.ts +16 -0
  1138. package/dist/lib/normalizeMaterializedFilename.test.d.ts.map +1 -0
  1139. package/dist/lib/normalizeMaterializedFilename.test.js +90 -0
  1140. package/dist/lib/normalizeMaterializedFilename.test.js.map +1 -0
  1141. package/dist/lib/notice-marker.d.ts +3 -0
  1142. package/dist/lib/notice-marker.d.ts.map +1 -0
  1143. package/dist/lib/notice-marker.js +223 -0
  1144. package/dist/lib/notice-marker.js.map +1 -0
  1145. package/dist/lib/onboarding-path-b.d.ts.map +1 -1
  1146. package/dist/lib/onboarding-path-b.js +35 -6
  1147. package/dist/lib/onboarding-path-b.js.map +1 -1
  1148. package/dist/lib/onboarding-shared.d.ts +27 -5
  1149. package/dist/lib/onboarding-shared.d.ts.map +1 -1
  1150. package/dist/lib/onboarding-shared.js +55 -37
  1151. package/dist/lib/onboarding-shared.js.map +1 -1
  1152. package/dist/lib/onboarding-shared.test.d.ts +2 -0
  1153. package/dist/lib/onboarding-shared.test.d.ts.map +1 -0
  1154. package/dist/lib/onboarding-shared.test.js +131 -0
  1155. package/dist/lib/onboarding-shared.test.js.map +1 -0
  1156. package/dist/lib/onboarding-topics.js +1 -1
  1157. package/dist/lib/onboarding.d.ts +5 -1
  1158. package/dist/lib/onboarding.d.ts.map +1 -1
  1159. package/dist/lib/onboarding.js +62 -25
  1160. package/dist/lib/onboarding.js.map +1 -1
  1161. package/dist/lib/ownerLine.d.ts +58 -0
  1162. package/dist/lib/ownerLine.d.ts.map +1 -0
  1163. package/dist/lib/ownerLine.js +46 -0
  1164. package/dist/lib/ownerLine.js.map +1 -0
  1165. package/dist/lib/parseFields.d.ts +19 -0
  1166. package/dist/lib/parseFields.d.ts.map +1 -0
  1167. package/dist/lib/parseFields.js +49 -0
  1168. package/dist/lib/parseFields.js.map +1 -0
  1169. package/dist/lib/previewBanner.d.ts +9 -0
  1170. package/dist/lib/previewBanner.d.ts.map +1 -0
  1171. package/dist/lib/previewBanner.js +37 -0
  1172. package/dist/lib/previewBanner.js.map +1 -0
  1173. package/dist/lib/productbrain-files.d.ts +94 -0
  1174. package/dist/lib/productbrain-files.d.ts.map +1 -0
  1175. package/dist/lib/productbrain-files.js +214 -0
  1176. package/dist/lib/productbrain-files.js.map +1 -0
  1177. package/dist/lib/productbrain-files.test.d.ts +2 -0
  1178. package/dist/lib/productbrain-files.test.d.ts.map +1 -0
  1179. package/dist/lib/productbrain-files.test.js +293 -0
  1180. package/dist/lib/productbrain-files.test.js.map +1 -0
  1181. package/dist/lib/profiles.d.ts +53 -5
  1182. package/dist/lib/profiles.d.ts.map +1 -1
  1183. package/dist/lib/profiles.js +77 -23
  1184. package/dist/lib/profiles.js.map +1 -1
  1185. package/dist/lib/projectConfig.d.ts +81 -0
  1186. package/dist/lib/projectConfig.d.ts.map +1 -0
  1187. package/dist/lib/projectConfig.js +157 -0
  1188. package/dist/lib/projectConfig.js.map +1 -0
  1189. package/dist/lib/rate-limit.d.ts +38 -0
  1190. package/dist/lib/rate-limit.d.ts.map +1 -0
  1191. package/dist/lib/rate-limit.js +83 -0
  1192. package/dist/lib/rate-limit.js.map +1 -0
  1193. package/dist/lib/readinessNotices.d.ts +12 -0
  1194. package/dist/lib/readinessNotices.d.ts.map +1 -0
  1195. package/dist/lib/readinessNotices.js +15 -0
  1196. package/dist/lib/readinessNotices.js.map +1 -0
  1197. package/dist/lib/repo-detect.d.ts +8 -2
  1198. package/dist/lib/repo-detect.d.ts.map +1 -1
  1199. package/dist/lib/repo-detect.js +11 -6
  1200. package/dist/lib/repo-detect.js.map +1 -1
  1201. package/dist/lib/reportedProfile.d.ts +18 -0
  1202. package/dist/lib/reportedProfile.d.ts.map +1 -0
  1203. package/dist/lib/reportedProfile.js +144 -0
  1204. package/dist/lib/reportedProfile.js.map +1 -0
  1205. package/dist/lib/ruleListRender.d.ts +59 -0
  1206. package/dist/lib/ruleListRender.d.ts.map +1 -0
  1207. package/dist/lib/ruleListRender.js +63 -0
  1208. package/dist/lib/ruleListRender.js.map +1 -0
  1209. package/dist/lib/runner.d.ts +9 -1
  1210. package/dist/lib/runner.d.ts.map +1 -1
  1211. package/dist/lib/runner.js +30 -4
  1212. package/dist/lib/runner.js.map +1 -1
  1213. package/dist/lib/session.d.ts +90 -6
  1214. package/dist/lib/session.d.ts.map +1 -1
  1215. package/dist/lib/session.js +261 -17
  1216. package/dist/lib/session.js.map +1 -1
  1217. package/dist/lib/sessionBinding.d.ts +61 -0
  1218. package/dist/lib/sessionBinding.d.ts.map +1 -0
  1219. package/dist/lib/sessionBinding.js +125 -0
  1220. package/dist/lib/sessionBinding.js.map +1 -0
  1221. package/dist/lib/sessionNotices.d.ts +53 -0
  1222. package/dist/lib/sessionNotices.d.ts.map +1 -0
  1223. package/dist/lib/sessionNotices.js +122 -0
  1224. package/dist/lib/sessionNotices.js.map +1 -0
  1225. package/dist/lib/sessionNotices.test.d.ts +2 -0
  1226. package/dist/lib/sessionNotices.test.d.ts.map +1 -0
  1227. package/dist/lib/sessionNotices.test.js +48 -0
  1228. package/dist/lib/sessionNotices.test.js.map +1 -0
  1229. package/dist/lib/spineVerdictRead.d.ts +70 -0
  1230. package/dist/lib/spineVerdictRead.d.ts.map +1 -0
  1231. package/dist/lib/spineVerdictRead.js +73 -0
  1232. package/dist/lib/spineVerdictRead.js.map +1 -0
  1233. package/dist/lib/spinner.js +2 -2
  1234. package/dist/lib/spinner.js.map +1 -1
  1235. package/dist/lib/startup-resolution-signals.d.ts +34 -0
  1236. package/dist/lib/startup-resolution-signals.d.ts.map +1 -0
  1237. package/dist/lib/startup-resolution-signals.js +116 -0
  1238. package/dist/lib/startup-resolution-signals.js.map +1 -0
  1239. package/dist/lib/startup-resolution-signals.test.d.ts +2 -0
  1240. package/dist/lib/startup-resolution-signals.test.d.ts.map +1 -0
  1241. package/dist/lib/startup-resolution-signals.test.js +113 -0
  1242. package/dist/lib/startup-resolution-signals.test.js.map +1 -0
  1243. package/dist/lib/startup-signals.d.ts +12 -0
  1244. package/dist/lib/startup-signals.d.ts.map +1 -0
  1245. package/dist/lib/startup-signals.js +179 -0
  1246. package/dist/lib/startup-signals.js.map +1 -0
  1247. package/dist/lib/startup-signals.test.d.ts +2 -0
  1248. package/dist/lib/startup-signals.test.d.ts.map +1 -0
  1249. package/dist/lib/startup-signals.test.js +165 -0
  1250. package/dist/lib/startup-signals.test.js.map +1 -0
  1251. package/dist/lib/state.d.ts +11 -2
  1252. package/dist/lib/state.d.ts.map +1 -1
  1253. package/dist/lib/state.js +11 -4
  1254. package/dist/lib/state.js.map +1 -1
  1255. package/dist/lib/statusCategories.d.ts +124 -0
  1256. package/dist/lib/statusCategories.d.ts.map +1 -0
  1257. package/dist/lib/statusCategories.js +229 -0
  1258. package/dist/lib/statusCategories.js.map +1 -0
  1259. package/dist/lib/strip.d.ts +17 -0
  1260. package/dist/lib/strip.d.ts.map +1 -1
  1261. package/dist/lib/strip.js +48 -1
  1262. package/dist/lib/strip.js.map +1 -1
  1263. package/dist/lib/style.d.ts +8 -2
  1264. package/dist/lib/style.d.ts.map +1 -1
  1265. package/dist/lib/style.js +24 -17
  1266. package/dist/lib/style.js.map +1 -1
  1267. package/dist/lib/tokenConstants.d.ts +2 -0
  1268. package/dist/lib/tokenConstants.d.ts.map +1 -1
  1269. package/dist/lib/tokenConstants.js +2 -0
  1270. package/dist/lib/tokenConstants.js.map +1 -1
  1271. package/dist/lib/update-check.d.ts +42 -7
  1272. package/dist/lib/update-check.d.ts.map +1 -1
  1273. package/dist/lib/update-check.js +213 -61
  1274. package/dist/lib/update-check.js.map +1 -1
  1275. package/dist/lib/upgrade-runner.d.ts +22 -0
  1276. package/dist/lib/upgrade-runner.d.ts.map +1 -0
  1277. package/dist/lib/upgrade-runner.js +110 -0
  1278. package/dist/lib/upgrade-runner.js.map +1 -0
  1279. package/dist/lib/versionWrite.d.ts +65 -0
  1280. package/dist/lib/versionWrite.d.ts.map +1 -0
  1281. package/dist/lib/versionWrite.js +32 -0
  1282. package/dist/lib/versionWrite.js.map +1 -0
  1283. package/dist/lib/workspace-probe.d.ts +3 -0
  1284. package/dist/lib/workspace-probe.d.ts.map +1 -1
  1285. package/dist/lib/workspace-probe.js +7 -13
  1286. package/dist/lib/workspace-probe.js.map +1 -1
  1287. package/dist/lib/workspaceNotice.d.ts +202 -0
  1288. package/dist/lib/workspaceNotice.d.ts.map +1 -0
  1289. package/dist/lib/workspaceNotice.js +345 -0
  1290. package/dist/lib/workspaceNotice.js.map +1 -0
  1291. package/dist/lib/workspaceVocabCache.d.ts +60 -0
  1292. package/dist/lib/workspaceVocabCache.d.ts.map +1 -0
  1293. package/dist/lib/workspaceVocabCache.js +98 -0
  1294. package/dist/lib/workspaceVocabCache.js.map +1 -0
  1295. package/dist/lib/writePerimeter.d.ts +72 -0
  1296. package/dist/lib/writePerimeter.d.ts.map +1 -0
  1297. package/dist/lib/writePerimeter.js +128 -0
  1298. package/dist/lib/writePerimeter.js.map +1 -0
  1299. package/dist/registerEntryCommands.d.ts +17 -0
  1300. package/dist/registerEntryCommands.d.ts.map +1 -0
  1301. package/dist/registerEntryCommands.js +106 -0
  1302. package/dist/registerEntryCommands.js.map +1 -0
  1303. package/dist/registerHistoryCommand.d.ts +8 -0
  1304. package/dist/registerHistoryCommand.d.ts.map +1 -0
  1305. package/dist/registerHistoryCommand.js +14 -0
  1306. package/dist/registerHistoryCommand.js.map +1 -0
  1307. package/dist/registerOutcomeCommands.d.ts +27 -0
  1308. package/dist/registerOutcomeCommands.d.ts.map +1 -0
  1309. package/dist/registerOutcomeCommands.js +27 -0
  1310. package/dist/registerOutcomeCommands.js.map +1 -0
  1311. package/dist/registerProposalCommands.d.ts +13 -0
  1312. package/dist/registerProposalCommands.d.ts.map +1 -0
  1313. package/dist/registerProposalCommands.js +76 -0
  1314. package/dist/registerProposalCommands.js.map +1 -0
  1315. package/dist/registerRoleCommands.d.ts +10 -0
  1316. package/dist/registerRoleCommands.d.ts.map +1 -0
  1317. package/dist/registerRoleCommands.js +14 -0
  1318. package/dist/registerRoleCommands.js.map +1 -0
  1319. package/dist/registerTensionsCommands.d.ts +10 -0
  1320. package/dist/registerTensionsCommands.d.ts.map +1 -0
  1321. package/dist/registerTensionsCommands.js +15 -0
  1322. package/dist/registerTensionsCommands.js.map +1 -0
  1323. package/dist/scoreboard/diagnose.d.ts +226 -0
  1324. package/dist/scoreboard/diagnose.d.ts.map +1 -0
  1325. package/dist/scoreboard/diagnose.js +343 -0
  1326. package/dist/scoreboard/diagnose.js.map +1 -0
  1327. package/dist/scoreboard/diagnose.test.d.ts +15 -0
  1328. package/dist/scoreboard/diagnose.test.d.ts.map +1 -0
  1329. package/dist/scoreboard/diagnose.test.js +355 -0
  1330. package/dist/scoreboard/diagnose.test.js.map +1 -0
  1331. package/dist/scoreboard/floors.d.ts +47 -0
  1332. package/dist/scoreboard/floors.d.ts.map +1 -0
  1333. package/dist/scoreboard/floors.js +33 -0
  1334. package/dist/scoreboard/floors.js.map +1 -0
  1335. package/dist/scoreboard/localDrift.d.ts +23 -0
  1336. package/dist/scoreboard/localDrift.d.ts.map +1 -0
  1337. package/dist/scoreboard/localDrift.js +111 -0
  1338. package/dist/scoreboard/localDrift.js.map +1 -0
  1339. package/dist/scoreboard/localDrift.test.d.ts +9 -0
  1340. package/dist/scoreboard/localDrift.test.d.ts.map +1 -0
  1341. package/dist/scoreboard/localDrift.test.js +82 -0
  1342. package/dist/scoreboard/localDrift.test.js.map +1 -0
  1343. package/dist/surfaces/__tests__/adapter.test.d.ts +2 -0
  1344. package/dist/surfaces/__tests__/adapter.test.d.ts.map +1 -0
  1345. package/dist/surfaces/__tests__/adapter.test.js +86 -0
  1346. package/dist/surfaces/__tests__/adapter.test.js.map +1 -0
  1347. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts +2 -0
  1348. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.d.ts.map +1 -0
  1349. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js +179 -0
  1350. package/dist/surfaces/__tests__/claude-skill-pointer-drift.test.js.map +1 -0
  1351. package/dist/surfaces/__tests__/telemetry.test.d.ts +2 -0
  1352. package/dist/surfaces/__tests__/telemetry.test.d.ts.map +1 -0
  1353. package/dist/surfaces/__tests__/telemetry.test.js +55 -0
  1354. package/dist/surfaces/__tests__/telemetry.test.js.map +1 -0
  1355. package/dist/surfaces/adapter.d.ts +70 -0
  1356. package/dist/surfaces/adapter.d.ts.map +1 -0
  1357. package/dist/surfaces/adapter.js +2 -0
  1358. package/dist/surfaces/adapter.js.map +1 -0
  1359. package/dist/surfaces/adapters/claude.d.ts +3 -0
  1360. package/dist/surfaces/adapters/claude.d.ts.map +1 -0
  1361. package/dist/surfaces/adapters/claude.js +72 -0
  1362. package/dist/surfaces/adapters/claude.js.map +1 -0
  1363. package/dist/surfaces/adapters/codex.d.ts +3 -0
  1364. package/dist/surfaces/adapters/codex.d.ts.map +1 -0
  1365. package/dist/surfaces/adapters/codex.js +61 -0
  1366. package/dist/surfaces/adapters/codex.js.map +1 -0
  1367. package/dist/surfaces/adapters/copilot.d.ts +3 -0
  1368. package/dist/surfaces/adapters/copilot.d.ts.map +1 -0
  1369. package/dist/surfaces/adapters/copilot.js +59 -0
  1370. package/dist/surfaces/adapters/copilot.js.map +1 -0
  1371. package/dist/surfaces/adapters/cursor.d.ts +3 -0
  1372. package/dist/surfaces/adapters/cursor.d.ts.map +1 -0
  1373. package/dist/surfaces/adapters/cursor.js +78 -0
  1374. package/dist/surfaces/adapters/cursor.js.map +1 -0
  1375. package/dist/surfaces/registry.d.ts +76 -0
  1376. package/dist/surfaces/registry.d.ts.map +1 -0
  1377. package/dist/surfaces/registry.js +117 -0
  1378. package/dist/surfaces/registry.js.map +1 -0
  1379. package/dist/surfaces/telemetry.d.ts +17 -0
  1380. package/dist/surfaces/telemetry.d.ts.map +1 -0
  1381. package/dist/surfaces/telemetry.js +31 -0
  1382. package/dist/surfaces/telemetry.js.map +1 -0
  1383. package/package.json +9 -5
  1384. package/templates/method-registry.json +16 -0
  1385. package/dist/__tests__/promote.test.d.ts +0 -2
  1386. package/dist/__tests__/promote.test.d.ts.map +0 -1
  1387. package/dist/__tests__/promote.test.js +0 -161
  1388. package/dist/__tests__/promote.test.js.map +0 -1
  1389. package/dist/__tests__/setup.test.d.ts +0 -2
  1390. package/dist/__tests__/setup.test.d.ts.map +0 -1
  1391. package/dist/__tests__/setup.test.js +0 -141
  1392. package/dist/__tests__/setup.test.js.map +0 -1
  1393. package/dist/commands/promote.d.ts +0 -12
  1394. package/dist/commands/promote.d.ts.map +0 -1
  1395. package/dist/commands/promote.js +0 -90
  1396. package/dist/commands/promote.js.map +0 -1
  1397. package/dist/commands/setup.d.ts +0 -15
  1398. package/dist/commands/setup.d.ts.map +0 -1
  1399. package/dist/commands/setup.js +0 -148
  1400. package/dist/commands/setup.js.map +0 -1
  1401. package/dist/formatters/promote.d.ts +0 -30
  1402. package/dist/formatters/promote.d.ts.map +0 -1
  1403. package/dist/formatters/promote.js +0 -39
  1404. package/dist/formatters/promote.js.map +0 -1
  1405. package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
  1406. package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
  1407. package/dist/generators/__tests__/surface-profiles.test.js +0 -89
  1408. package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
  1409. package/dist/generators/chain-classifier.test.d.ts +0 -2
  1410. package/dist/generators/chain-classifier.test.d.ts.map +0 -1
  1411. package/dist/generators/chain-classifier.test.js +0 -257
  1412. package/dist/generators/chain-classifier.test.js.map +0 -1
  1413. package/dist/lib/onboarding-phases.d.ts +0 -9
  1414. package/dist/lib/onboarding-phases.d.ts.map +0 -1
  1415. package/dist/lib/onboarding-phases.js +0 -120
  1416. package/dist/lib/onboarding-phases.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ /**
2
+ * M5 local-pull drift unit tests (A5, DEC-1284).
3
+ *
4
+ * Exercises computeLocalDrift over a real temp `.productbrain/` so the stat path is genuinely
5
+ * driven (not mocked): a config-bearing root (so findProjectRoot resolves) + a projection file
6
+ * whose mtime is the local pull. Asserts the lag/age math, the clamp, and the fail-soft branches.
7
+ */
8
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
9
+ import { mkdtempSync, mkdirSync, writeFileSync, utimesSync, rmSync } from 'fs';
10
+ import { tmpdir } from 'os';
11
+ import { resolve } from 'path';
12
+ import { computeLocalDrift } from './localDrift.js';
13
+ let root;
14
+ function setMtime(path, ms) {
15
+ const secs = ms / 1000;
16
+ utimesSync(path, secs, secs);
17
+ }
18
+ beforeEach(() => {
19
+ root = mkdtempSync(resolve(tmpdir(), 'pb-m5-'));
20
+ const pb = resolve(root, '.productbrain');
21
+ mkdirSync(pb, { recursive: true });
22
+ // config.json makes this a CLI project root (findProjectRoot requires it).
23
+ writeFileSync(resolve(pb, 'config.json'), JSON.stringify({ siteUrl: 'https://example.test' }));
24
+ });
25
+ afterEach(() => {
26
+ rmSync(root, { recursive: true, force: true });
27
+ });
28
+ describe('computeLocalDrift', () => {
29
+ it('fails soft to unavailable when no projection files exist', () => {
30
+ const d = computeLocalDrift(5_000, 10_000, root);
31
+ expect(d.localProjectionMtime).toBeNull();
32
+ expect(d.localLagMs).toBeNull();
33
+ expect(d.localAgeMs).toBeNull();
34
+ expect(d.unavailableReason).toMatch(/projection files/);
35
+ });
36
+ it('computes lag (server − local) and age (now − local) from the newest projection mtime', () => {
37
+ const pb = resolve(root, '.productbrain');
38
+ const ctx = resolve(pb, 'context.md');
39
+ writeFileSync(ctx, '# context');
40
+ setMtime(ctx, 1_000);
41
+ // Also write a newer briefing — newest mtime should win.
42
+ const brief = resolve(pb, 'briefing.md');
43
+ writeFileSync(brief, '# briefing');
44
+ setMtime(brief, 3_000);
45
+ const d = computeLocalDrift(5_000 /* server */, 10_000 /* now */, root);
46
+ expect(d.localProjectionMtime).toBe(3_000);
47
+ expect(d.serverMaterializedAt).toBe(5_000);
48
+ expect(d.localLagMs).toBe(2_000); // 5000 − 3000
49
+ expect(d.localAgeMs).toBe(7_000); // 10000 − 3000
50
+ expect(d.unavailableReason).toBeUndefined();
51
+ });
52
+ it('clamps lag at 0 when the local pull is newer than the server materialization', () => {
53
+ const pb = resolve(root, '.productbrain');
54
+ const ctx = resolve(pb, 'context.md');
55
+ writeFileSync(ctx, '# context');
56
+ setMtime(ctx, 9_000);
57
+ const d = computeLocalDrift(5_000, 10_000, root);
58
+ expect(d.localLagMs).toBe(0); // max(0, 5000 − 9000)
59
+ expect(d.localAgeMs).toBe(1_000);
60
+ });
61
+ it('returns null lag when the server never materialized', () => {
62
+ const pb = resolve(root, '.productbrain');
63
+ const ctx = resolve(pb, 'context.md');
64
+ writeFileSync(ctx, '# context');
65
+ setMtime(ctx, 2_000);
66
+ const d = computeLocalDrift(null, 10_000, root);
67
+ expect(d.localLagMs).toBeNull();
68
+ expect(d.localAgeMs).toBe(8_000);
69
+ });
70
+ it('reports unavailable when no project root is found', () => {
71
+ const bare = mkdtempSync(resolve(tmpdir(), 'pb-noroot-'));
72
+ try {
73
+ const d = computeLocalDrift(5_000, 10_000, bare);
74
+ expect(d.localProjectionMtime).toBeNull();
75
+ expect(d.unavailableReason).toMatch(/project root|missing/i);
76
+ }
77
+ finally {
78
+ rmSync(bare, { recursive: true, force: true });
79
+ }
80
+ });
81
+ });
82
+ //# sourceMappingURL=localDrift.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localDrift.test.js","sourceRoot":"","sources":["../../src/scoreboard/localDrift.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../src/surfaces/__tests__/adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * SurfaceAdapter contract tests — WP-421 S2c (DEC-952).
3
+ *
4
+ * Verifies every adapter:
5
+ * - has identity, displayName, detect, paths, transform, goldens, canonicalPathFor.
6
+ * - has at least one golden fixture and transform(canonical) === expected.
7
+ * - canonicalPathFor returns null for paths not belonging to that surface.
8
+ */
9
+ import { describe, expect, it } from 'vitest';
10
+ import { SURFACE_ADAPTERS, SURFACE_ADAPTER_LIST } from '../registry.js';
11
+ import { claudeAdapter } from '../adapters/claude.js';
12
+ import { cursorAdapter } from '../adapters/cursor.js';
13
+ import { codexAdapter } from '../adapters/codex.js';
14
+ import { copilotAdapter } from '../adapters/copilot.js';
15
+ describe('SurfaceAdapter contract', () => {
16
+ it('registers all four adapters', () => {
17
+ expect(SURFACE_ADAPTER_LIST).toHaveLength(4);
18
+ expect(Object.keys(SURFACE_ADAPTERS).sort()).toEqual(['claude', 'codex', 'copilot', 'cursor']);
19
+ });
20
+ it.each(SURFACE_ADAPTER_LIST.map((a) => [a.name, a]))('%s adapter exposes the full interface', (_name, adapter) => {
21
+ expect(typeof adapter.name).toBe('string');
22
+ expect(typeof adapter.displayName).toBe('string');
23
+ expect(typeof adapter.detect).toBe('function');
24
+ expect(typeof adapter.paths).toBe('function');
25
+ expect(typeof adapter.transform).toBe('function');
26
+ expect(typeof adapter.canonicalPathFor).toBe('function');
27
+ expect(Array.isArray(adapter.goldens)).toBe(true);
28
+ expect(adapter.goldens.length).toBeGreaterThan(0);
29
+ });
30
+ it.each(SURFACE_ADAPTER_LIST.map((a) => [a.name, a]))('%s goldens round-trip transform === expected', (_name, adapter) => {
31
+ for (const golden of adapter.goldens) {
32
+ const out = adapter.transform({ canonical: golden.canonical });
33
+ expect(out).toBe(golden.expected);
34
+ }
35
+ });
36
+ });
37
+ describe('canonicalPathFor — per-surface mapping', () => {
38
+ it('claude maps .claude/skills/orient.md → .productbrain/skills/orient.md', () => {
39
+ expect(claudeAdapter.canonicalPathFor('.claude/skills/orient.md')).toBe('.productbrain/skills/orient.md');
40
+ });
41
+ it('claude returns null for the rule kind (DEC-1736 — no claude rule projection) and non-claude paths', () => {
42
+ expect(claudeAdapter.canonicalPathFor('.claude/rules/foo.md')).toBeNull();
43
+ expect(claudeAdapter.canonicalPathFor('.cursor/rules/foo.mdc')).toBeNull();
44
+ expect(claudeAdapter.canonicalPathFor('.github/copilot-instructions.md')).toBeNull();
45
+ expect(claudeAdapter.canonicalPathFor('AGENTS.md')).toBeNull();
46
+ });
47
+ it('cursor flips .mdc → .md (the headline cursor signature)', () => {
48
+ expect(cursorAdapter.canonicalPathFor('.cursor/rules/foo.mdc')).toBe('.productbrain/rules/foo.md');
49
+ });
50
+ it('cursor maps .cursor/skills/<name>/SKILL.md → .productbrain/skills/<name>.md', () => {
51
+ expect(cursorAdapter.canonicalPathFor('.cursor/skills/sample/SKILL.md')).toBe('.productbrain/skills/sample.md');
52
+ });
53
+ it('cursor returns null for non-cursor paths and the wrong extension', () => {
54
+ expect(cursorAdapter.canonicalPathFor('.cursor/rules/foo.md')).toBeNull();
55
+ expect(cursorAdapter.canonicalPathFor('.claude/rules/foo.md')).toBeNull();
56
+ });
57
+ it('codex maps .codex/skills/orient.md → .productbrain/skills/orient.md', () => {
58
+ expect(codexAdapter.canonicalPathFor('.codex/skills/orient.md')).toBe('.productbrain/skills/orient.md');
59
+ });
60
+ it('codex returns null for AGENTS.md and non-codex paths', () => {
61
+ expect(codexAdapter.canonicalPathFor('AGENTS.md')).toBeNull();
62
+ expect(codexAdapter.canonicalPathFor('.cursor/rules/foo.mdc')).toBeNull();
63
+ });
64
+ it('copilot returns null for its aggregate file (no defensible 1:1 reverse map)', () => {
65
+ expect(copilotAdapter.canonicalPathFor('.github/copilot-instructions.md')).toBeNull();
66
+ expect(copilotAdapter.canonicalPathFor('.claude/rules/foo.md')).toBeNull();
67
+ });
68
+ });
69
+ describe('canonicalPathFor — forward project then reverse map round-trips', () => {
70
+ it.each([
71
+ [cursorAdapter, 'rule', 'foo'],
72
+ [cursorAdapter, 'skill', 'sample'],
73
+ [codexAdapter, 'skill', 'orient'],
74
+ ])('%s adapter %s "%s" projects forward then reverse-maps back to .productbrain', (adapter, kind, basename) => {
75
+ const projection = adapter.paths({ kind, basename }).projectionPath;
76
+ const reverse = adapter.canonicalPathFor(projection);
77
+ const expected = `.productbrain/${kind === 'rule' ? 'rules' : 'skills'}/${basename}.md`;
78
+ expect(reverse).toBe(expected);
79
+ });
80
+ it('copilot forward-projects to the aggregate file but reverse-maps to null (telemetry fallback)', () => {
81
+ const projection = copilotAdapter.paths({ kind: 'rule', basename: 'foo' }).projectionPath;
82
+ expect(projection).toBe('.github/copilot-instructions.md');
83
+ expect(copilotAdapter.canonicalPathFor(projection)).toBeNull();
84
+ });
85
+ });
86
+ //# sourceMappingURL=adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.js","sourceRoot":"","sources":["../../../src/surfaces/__tests__/adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=claude-skill-pointer-drift.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-skill-pointer-drift.test.d.ts","sourceRoot":"","sources":["../../../src/surfaces/__tests__/claude-skill-pointer-drift.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Claude skill pointer drift test — WP-761 E4a (TASK-251).
3
+ *
4
+ * PR #1039 review round 2 found three canonical skill bodies wrong or
5
+ * dangerous to invoke (git-cleanup, create-blog, prototype). Round 3 found
6
+ * three more (flag-cleanup, community-post, retro) plus a fourth
7
+ * (triage) already fixed content-wise but never load-bearing for this WP,
8
+ * plus a real gap in this test's own body-match assertion. The mechanism
9
+ * that kept drawing these findings — "expose every canonical skill as a
10
+ * Claude pointer, unaudited" — is cut here, not patched again: **a delivery
11
+ * route ships ONLY the skills WP-761 itself makes load-bearing.**
12
+ *
13
+ * INCLUDED is the whole population. Four skills today — `shaping` (WP-761
14
+ * TASK-245 / E1 edits this file directly), `defect-driven-review` (WP-761
15
+ * TASK-242 / E2 edits this file directly), and `after-merge` / `handover`
16
+ * (WP-761 E0 moved both out of `.claude/rules/` and into
17
+ * `.productbrain/skills/` as on-demand skills — landed). No other canonical
18
+ * skill gets a pointer from this test's population, regardless of how good
19
+ * its content is — being exposed here is not "this skill happens to be
20
+ * fine," it's "this WP depends on it," and nothing else has been audited
21
+ * well enough yet to make that claim.
22
+ *
23
+ * EXCLUDED_SKILLS is kept as the historical record of skills that were
24
+ * exposed and then found broken (round 2's three) — not consulted by the
25
+ * population logic below (INCLUDED already leaves them out), but still
26
+ * asserted to have no pointer, so a future edit can't silently re-expose
27
+ * a known-broken skill by, say, copy-pasting an old INCLUDED entry.
28
+ *
29
+ * Each pointer's frontmatter `name` and `description`, and its body's
30
+ * target line, are a deliberate denormalized copy of the canonical's
31
+ * (constitution §12):
32
+ *
33
+ * - Source of truth: .productbrain/skills/<name>.md's `name:`/`description:`
34
+ * and its being the file the pointer's body names.
35
+ * - Query need: the loader must see a name and description in the pointer
36
+ * to auto-match a request, and it cannot read a file it has not loaded.
37
+ * - Sync contract: this test. It parses both frontmatter blocks and
38
+ * asserts the name and description strings are equal, and that the
39
+ * pointer body (frontmatter stripped) is EXACTLY the expected one-line
40
+ * target — not merely contains it, so nothing can be prepended,
41
+ * appended, or hidden in frontmatter — in both directions, naming the
42
+ * skill on drift.
43
+ *
44
+ * Never imports the production frontmatter parser (WP-431 S4 precedent, see
45
+ * pb-setup-passthrough.test.ts) — an independent reader means this test
46
+ * doesn't share a blind spot with whatever a future generator produces.
47
+ * It does use the generic `yaml` library (already a repo dependency,
48
+ * root package.json, resolved via workspace hoisting) to parse the
49
+ * frontmatter block itself — that's a third-party parser, not production
50
+ * code, so it doesn't reintroduce the shared-blind-spot risk WP-431 S4
51
+ * guarded against; see readFrontmatter below (TEN-3784 finding 4: the old
52
+ * whitespace-joining reader couldn't tell a folded (`>-`) description from
53
+ * a literal (`|-`) one, or preserve a paragraph break).
54
+ */
55
+ import { describe, expect, it } from 'vitest';
56
+ import { existsSync, readFileSync, readdirSync } from 'fs';
57
+ import { dirname, join } from 'path';
58
+ import { fileURLToPath } from 'url';
59
+ import { parse as parseYaml } from 'yaml';
60
+ const __dirname = dirname(fileURLToPath(import.meta.url));
61
+ // repo root: packages/cli/src/surfaces/__tests__ -> ../../../../..
62
+ const REPO_ROOT = join(__dirname, '..', '..', '..', '..', '..');
63
+ const CANONICAL_DIR = join(REPO_ROOT, '.productbrain', 'skills');
64
+ const POINTER_ROOT = join(REPO_ROOT, '.claude', 'skills');
65
+ /**
66
+ * The whole pointer population: name -> which WP-761 slice makes it
67
+ * load-bearing. Add an entry only when a slice of THIS work package edits
68
+ * or depends on the file directly — never for "this skill looks fine."
69
+ */
70
+ const INCLUDED_SKILLS = {
71
+ shaping: 'WP-761 TASK-245 (E1) edits this file directly — adds a canonical subtraction step and RULE-288/RULE-419 citations.',
72
+ 'defect-driven-review': 'WP-761 TASK-242 (E2) edits this file directly — adds Reviewer 2 item 9 and the Artifact clause.',
73
+ 'after-merge': 'WP-761 E0 moves this rule out of .claude/rules/ into .productbrain/skills/ as an on-demand skill — the largest single subtraction of always-loaded bytes available to this WP.',
74
+ handover: 'WP-761 E0 moves this rule out of .claude/rules/ into .productbrain/skills/ as an on-demand skill, alongside after-merge.',
75
+ };
76
+ /**
77
+ * Historical record only (PR #1039 review round 2) — these were exposed,
78
+ * found wrong or dangerous to invoke, and removed. Not consulted by
79
+ * INCLUDED_SKILLS above (which already excludes them by omission); asserted
80
+ * below so a future edit can't silently re-expose one.
81
+ *
82
+ * `prototype` (round 2's third finding) is NOT here: E4a-2 deleted the
83
+ * canonical skill outright (no scaffold/manifest/sync-script has ever
84
+ * existed in this repo — confirmed live), so there is no file left to
85
+ * exclude a pointer for. https://github.com/ProductBrain/Product-OS/pull/1039#discussion_r4070378892
86
+ */
87
+ const EXCLUDED_SKILLS = {
88
+ 'git-cleanup': 'Step 7 pushes `git push origin main` directly — the forbidden direct-to-main path (worktree contract, .claude/rules/git-workflow.md). https://github.com/ProductBrain/Product-OS/pull/1039#discussion_r4070378871',
89
+ 'create-blog': 'Step 3 hardcodes an absolute Mac path ("/Users/randyhereman/Coding/Product-OS/docs/blog/readme.md") for the mandatory voice-guide gate — fails on any other checkout. https://github.com/ProductBrain/Product-OS/pull/1039#discussion_r4070378884',
90
+ };
91
+ /**
92
+ * Parses one canonical/pointer file's frontmatter block via the `yaml`
93
+ * library (TEN-3784 finding 4) and returns it as a plain object. Folded
94
+ * (`>-`) vs literal (`|-`) block scalars and paragraph breaks are resolved
95
+ * per real YAML semantics, unlike the old whitespace-joining reader this
96
+ * replaces.
97
+ */
98
+ function readFrontmatter(raw) {
99
+ const fmMatch = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/);
100
+ if (!fmMatch)
101
+ return {};
102
+ const parsed = parseYaml(fmMatch[1]);
103
+ return parsed && typeof parsed === 'object' ? parsed : {};
104
+ }
105
+ /** Strips the frontmatter block, returning only the body, trimmed. */
106
+ function stripFrontmatter(raw) {
107
+ const fmMatch = raw.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);
108
+ return (fmMatch ? raw.slice(fmMatch[0].length) : raw).trim();
109
+ }
110
+ describe('Claude skill pointer drift (WP-761 E4a)', () => {
111
+ it('INCLUDED_SKILLS <-> pointer: every listed skill has a pointer with matching name, description, and exact body', () => {
112
+ const names = Object.keys(INCLUDED_SKILLS).sort();
113
+ const mismatches = [];
114
+ const failedNames = new Set();
115
+ for (const name of names) {
116
+ const canonicalPath = join(CANONICAL_DIR, `${name}.md`);
117
+ const pointerPath = join(POINTER_ROOT, name, 'SKILL.md');
118
+ if (!existsSync(canonicalPath)) {
119
+ mismatches.push(`${name}: INCLUDED but no canonical file at .productbrain/skills/${name}.md`);
120
+ failedNames.add(name);
121
+ continue;
122
+ }
123
+ if (!existsSync(pointerPath)) {
124
+ mismatches.push(`${name}: INCLUDED but no pointer at .claude/skills/${name}/SKILL.md`);
125
+ failedNames.add(name);
126
+ continue;
127
+ }
128
+ const canonicalRaw = readFileSync(canonicalPath, 'utf8');
129
+ const pointerRaw = readFileSync(pointerPath, 'utf8');
130
+ const canonicalFm = readFrontmatter(canonicalRaw);
131
+ const pointerFm = readFrontmatter(pointerRaw);
132
+ const canonicalName = canonicalFm.name;
133
+ const pointerName = pointerFm.name;
134
+ if (pointerName !== name) {
135
+ mismatches.push(`${name}: pointer name field is "${String(pointerName)}", expected "${name}"`);
136
+ failedNames.add(name);
137
+ }
138
+ if (canonicalName !== name) {
139
+ mismatches.push(`${name}: canonical name field is "${String(canonicalName)}", expected "${name}"`);
140
+ failedNames.add(name);
141
+ }
142
+ const canonicalDesc = canonicalFm.description;
143
+ const pointerDesc = pointerFm.description;
144
+ if (canonicalDesc !== pointerDesc) {
145
+ mismatches.push(`${name}: description drift — canonical="${canonicalDesc}" pointer="${pointerDesc}"`);
146
+ failedNames.add(name);
147
+ }
148
+ // Exact body match (frontmatter stripped) — not `.includes()`. A
149
+ // pointer that prepends/appends stale or unsafe instructions, or
150
+ // hides the target line inside frontmatter, must go red here.
151
+ const expectedBody = `Read and follow .productbrain/skills/${name}.md`;
152
+ const actualBody = stripFrontmatter(pointerRaw);
153
+ if (actualBody !== expectedBody) {
154
+ mismatches.push(`${name}: pointer body is "${actualBody}", expected exactly "${expectedBody}"`);
155
+ failedNames.add(name);
156
+ }
157
+ }
158
+ const matched = names.length - failedNames.size;
159
+ expect(mismatches, `${matched}/${names.length} INCLUDED skills have a fully matching pointer`).toEqual([]);
160
+ expect(names.length).toBeGreaterThan(0);
161
+ });
162
+ it('pointer -> INCLUDED_SKILLS: every pointer directory is a declared INCLUDED entry (no undeclared exposure)', () => {
163
+ const includedNames = new Set(Object.keys(INCLUDED_SKILLS));
164
+ const pointerNames = existsSync(POINTER_ROOT)
165
+ ? readdirSync(POINTER_ROOT, { withFileTypes: true })
166
+ .filter((e) => e.isDirectory())
167
+ .map((e) => e.name)
168
+ .sort()
169
+ : [];
170
+ const undeclared = pointerNames.filter((name) => !includedNames.has(name));
171
+ expect(undeclared, `${pointerNames.length - undeclared.length}/${pointerNames.length} pointers are declared in INCLUDED_SKILLS`).toEqual([]);
172
+ expect(pointerNames.length, `pointer count (${pointerNames.length}) vs INCLUDED count (${includedNames.size})`).toBe(includedNames.size);
173
+ });
174
+ it('EXCLUDED_SKILLS stay excluded: no pointer directory exists for any historical-record entry', () => {
175
+ const stillExposed = Object.keys(EXCLUDED_SKILLS).filter((name) => existsSync(join(POINTER_ROOT, name, 'SKILL.md')));
176
+ expect(stillExposed, `${Object.keys(EXCLUDED_SKILLS).length - stillExposed.length}/${Object.keys(EXCLUDED_SKILLS).length} excluded skills correctly have no pointer`).toEqual([]);
177
+ });
178
+ });
179
+ //# sourceMappingURL=claude-skill-pointer-drift.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-skill-pointer-drift.test.js","sourceRoot":"","sources":["../../../src/surfaces/__tests__/claude-skill-pointer-drift.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=telemetry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.test.d.ts","sourceRoot":"","sources":["../../../src/surfaces/__tests__/telemetry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Reverse-map telemetry fallback — WP-421 S2c.
3
+ * When canonicalPathFor returns null on a known surface, the consumer must
4
+ * emit `surface-reverse-map-missing` telemetry and surface the generic upstream
5
+ * message ("edit upstream in .productbrain/skills|rules|hooks/").
6
+ */
7
+ import { describe, expect, it, vi, beforeEach } from 'vitest';
8
+ const trackEventMock = vi.fn();
9
+ vi.mock('../../lib/telemetry.js', () => ({
10
+ trackEvent: (...args) => trackEventMock(...args),
11
+ }));
12
+ import { reportReverseMapMissing, getReverseMapFallbackMessage, } from '../telemetry.js';
13
+ import { canonicalPathForAnySurface } from '../registry.js';
14
+ describe('reportReverseMapMissing', () => {
15
+ beforeEach(() => {
16
+ trackEventMock.mockClear();
17
+ });
18
+ it('emits surface-reverse-map-missing with surface + projectionPath', () => {
19
+ const warnings = [];
20
+ reportReverseMapMissing({ surface: 'copilot', projectionPath: '.github/copilot-instructions.md' }, (msg) => warnings.push(msg));
21
+ expect(trackEventMock).toHaveBeenCalledWith('surface-reverse-map-missing', {
22
+ surface: 'copilot',
23
+ projectionPath: '.github/copilot-instructions.md',
24
+ });
25
+ expect(warnings).toHaveLength(1);
26
+ expect(warnings[0]).toContain('[surface-reverse-map-missing]');
27
+ expect(warnings[0]).toContain('copilot');
28
+ expect(warnings[0]).toContain(getReverseMapFallbackMessage());
29
+ });
30
+ it('exposes the canonical fallback message', () => {
31
+ expect(getReverseMapFallbackMessage()).toContain('.productbrain/skills');
32
+ expect(getReverseMapFallbackMessage()).toContain('rules');
33
+ expect(getReverseMapFallbackMessage()).toContain('hooks');
34
+ });
35
+ });
36
+ describe('canonicalPathForAnySurface', () => {
37
+ it('returns the first matching adapter for a known projection path', () => {
38
+ const cursorMatch = canonicalPathForAnySurface('.cursor/rules/foo.mdc');
39
+ expect(cursorMatch).toEqual({
40
+ surface: 'cursor',
41
+ canonicalPath: '.productbrain/rules/foo.md',
42
+ });
43
+ const claudeMatch = canonicalPathForAnySurface('.claude/skills/orient.md');
44
+ expect(claudeMatch).toEqual({
45
+ surface: 'claude',
46
+ canonicalPath: '.productbrain/skills/orient.md',
47
+ });
48
+ });
49
+ it('returns null for an unknown projection path (caller emits telemetry)', () => {
50
+ expect(canonicalPathForAnySurface('some/unknown/path.txt')).toBeNull();
51
+ // Copilot's aggregate file legitimately has no reverse map → null.
52
+ expect(canonicalPathForAnySurface('.github/copilot-instructions.md')).toBeNull();
53
+ });
54
+ });
55
+ //# sourceMappingURL=telemetry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../../../src/surfaces/__tests__/telemetry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * SurfaceAdapter — WP-421 S2c (DEC-952).
3
+ *
4
+ * One canonical asset in `.productbrain/{skills,rules,hooks}/`; per-surface adapters
5
+ * detect/paths/transform/goldens. New surface = adapter file + registry line.
6
+ *
7
+ * canonicalPathFor is the REVERSE map: given a projection path on a surface
8
+ * (e.g. `.cursor/rules/foo.mdc`), return the canonical authoring path
9
+ * (e.g. `.productbrain/rules/foo.md`). Returns null when the path does not
10
+ * belong to this adapter — callers should use the telemetry fallback in
11
+ * `surfaces/telemetry.ts` to emit `surface-reverse-map-missing`.
12
+ */
13
+ import type { CanonicalRule, CanonicalSkill } from '../generators/portable-knowledge.js';
14
+ /** Discriminated union covering canonical asset bodies the adapters consume. */
15
+ export type CanonicalAssetBody = ({
16
+ kind: 'skill';
17
+ } & CanonicalSkill) | ({
18
+ kind: 'rule';
19
+ } & CanonicalRule);
20
+ /** Optional Chain grounding context the transform may consult when shaping output. */
21
+ export interface ChainGroundingContext {
22
+ workspaceStage?: string;
23
+ totalRelations?: number;
24
+ detectedStack?: string[];
25
+ /** Free-form context bag for future grounding signals — adapters MUST tolerate unknown keys. */
26
+ [key: string]: unknown;
27
+ }
28
+ export interface SurfaceAssetRef {
29
+ kind: 'skill' | 'rule' | 'hook';
30
+ basename: string;
31
+ }
32
+ export interface SurfacePaths {
33
+ /** Path relative to repoRoot where the projection is written. */
34
+ projectionPath: string;
35
+ }
36
+ export interface SurfaceAdapter {
37
+ /** Stable machine identity (matches SurfaceName in registry.ts). */
38
+ name: string;
39
+ /** Human-friendly display label. */
40
+ displayName: string;
41
+ /**
42
+ * Does this surface exist in the project? Used to decide whether to project at all.
43
+ * Pure: only inspects repoRoot — no network, no Chain calls.
44
+ */
45
+ detect(repoRoot: string): Promise<boolean> | boolean;
46
+ /** Where the projection is written for a given canonical asset. */
47
+ paths(asset: SurfaceAssetRef): SurfacePaths;
48
+ /** Take a canonical asset (+ optional grounding) and produce surface-formatted content. */
49
+ transform(input: {
50
+ canonical: CanonicalAssetBody;
51
+ grounding?: ChainGroundingContext;
52
+ }): string;
53
+ /**
54
+ * Round-trip golden fixtures: pinned (canonical, expected) pairs.
55
+ * Each adapter MUST define at least one. Tests assert transform(canonical) === expected.
56
+ */
57
+ goldens: SurfaceGolden[];
58
+ /**
59
+ * REVERSE map from a projection path back to the canonical authoring path
60
+ * in `.productbrain/`. Used by tampered-bucket prompts to point users at the
61
+ * upstream source. Returns null when the path is unknown to this adapter.
62
+ */
63
+ canonicalPathFor(projectionPath: string): string | null;
64
+ }
65
+ export interface SurfaceGolden {
66
+ name: string;
67
+ canonical: CanonicalAssetBody;
68
+ expected: string;
69
+ }
70
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/surfaces/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAEzF,gFAAgF;AAChF,MAAM,MAAM,kBAAkB,GAC1B,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,cAAc,CAAC,GACpC,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC;AAEvC,sFAAsF;AACtF,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gGAAgG;IAChG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAErD,mEAAmE;IACnE,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAAC;IAE5C,2FAA2F;IAC3F,SAAS,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,kBAAkB,CAAC;QAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;KAAE,GAAG,MAAM,CAAC;IAE/F;;;OAGG;IACH,OAAO,EAAE,aAAa,EAAE,CAAC;IAEzB;;;;OAIG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/surfaces/adapter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceAdapter } from '../adapter.js';
2
+ export declare const claudeAdapter: SurfaceAdapter;
3
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/surfaces/adapters/claude.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAGV,cAAc,EAIf,MAAM,eAAe,CAAC;AAoDvB,eAAO,MAAM,aAAa,EAAE,cAQ3B,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Claude Code SurfaceAdapter — WP-421 S2c (DEC-952).
3
+ *
4
+ * Projects:
5
+ * - hooks → .claude/settings.json (handled outside the per-asset transform path)
6
+ *
7
+ * The skill kind has no claude WRITE projection (E4b, WP-761/TASK-249): the repo's one
8
+ * statement of where a Claude skill is written is the directory-form pointer file
9
+ * (.claude/skills/<name>/SKILL.md, E4a); canonicalPathFor below still reverse-maps the
10
+ * legacy flat form for orphan detection.
11
+ *
12
+ * Rules (`.claude/rules/<name>.md`) and the skill router (`.claude/rules/skill-router.md`)
13
+ * are NOT projected here or anywhere else — DEC-1736 (WP-759/TASK-234): `pb handshake`
14
+ * stops writing `.claude/rules/*`.
15
+ */
16
+ import { existsSync } from 'fs';
17
+ import { join } from 'path';
18
+ function transform(input) {
19
+ const { canonical } = input;
20
+ if (canonical.kind === 'rule') {
21
+ // The rule kind has no claude projection (DEC-1736, WP-759/TASK-234) — an unhandled kind
22
+ // here is a caller bug, not a silent no-op.
23
+ throw new Error('claude adapter does not project the rule kind');
24
+ }
25
+ // Skill kind: transform still returns the canonical body verbatim (used by goldens and by
26
+ // callers projecting through other means); there is no claude WRITE path for it (see paths()).
27
+ return canonical.body;
28
+ }
29
+ function paths(asset) {
30
+ switch (asset.kind) {
31
+ case 'hook':
32
+ return { projectionPath: '.claude/settings.json' };
33
+ default:
34
+ // DEC-1736: the rule kind has no claude projection path.
35
+ // E4b (WP-761/TASK-249): the skill kind has no claude WRITE path either — the
36
+ // flat .claude/skills/<name>.md declaration is deleted so the repo holds exactly
37
+ // one statement of where a Claude skill is written (the E4a directory-form pointer).
38
+ throw new Error(`claude adapter has no projection path for asset kind "${asset.kind}"`);
39
+ }
40
+ }
41
+ const goldenSkill = {
42
+ name: 'sample-skill',
43
+ description: 'Sample skill for golden test',
44
+ triggers: ['/sample'],
45
+ body: 'Reference .productbrain/skills/other.md inside the body.\n',
46
+ sourcePath: '/abs/.productbrain/skills/sample-skill.md',
47
+ };
48
+ const goldens = [
49
+ {
50
+ name: 'skill-verbatim-body',
51
+ canonical: { kind: 'skill', ...goldenSkill },
52
+ expected: goldenSkill.body,
53
+ },
54
+ ];
55
+ function canonicalPathFor(projectionPath) {
56
+ // Normalize: accept paths with or without leading "./".
57
+ const p = projectionPath.replace(/^\.\//, '');
58
+ const m = p.match(/^\.claude\/skills\/(.+)\.md$/);
59
+ if (m)
60
+ return `.productbrain/skills/${m[1]}.md`;
61
+ return null;
62
+ }
63
+ export const claudeAdapter = {
64
+ name: 'claude',
65
+ displayName: 'Claude Code',
66
+ detect: (repoRoot) => existsSync(join(repoRoot, '.claude')),
67
+ paths,
68
+ transform,
69
+ goldens,
70
+ canonicalPathFor,
71
+ };
72
+ //# sourceMappingURL=claude.js.map