@software-dlc/cli 0.157.2

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 (701) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +105 -0
  3. package/README.md +31 -0
  4. package/dist/checkout.d.ts +43 -0
  5. package/dist/checkout.d.ts.map +1 -0
  6. package/dist/checkout.js +92 -0
  7. package/dist/checkout.js.map +1 -0
  8. package/dist/cli-arguments.d.ts +13 -0
  9. package/dist/cli-arguments.d.ts.map +1 -0
  10. package/dist/cli-arguments.js +67 -0
  11. package/dist/cli-arguments.js.map +1 -0
  12. package/dist/cli-branch-history.d.ts +48 -0
  13. package/dist/cli-branch-history.d.ts.map +1 -0
  14. package/dist/cli-branch-history.js +319 -0
  15. package/dist/cli-branch-history.js.map +1 -0
  16. package/dist/cli-branches.d.ts +22 -0
  17. package/dist/cli-branches.d.ts.map +1 -0
  18. package/dist/cli-branches.js +59 -0
  19. package/dist/cli-branches.js.map +1 -0
  20. package/dist/cli-deploy.d.ts +14 -0
  21. package/dist/cli-deploy.d.ts.map +1 -0
  22. package/dist/cli-deploy.js +164 -0
  23. package/dist/cli-deploy.js.map +1 -0
  24. package/dist/cli-health.d.ts +3 -0
  25. package/dist/cli-health.d.ts.map +1 -0
  26. package/dist/cli-health.js +73 -0
  27. package/dist/cli-health.js.map +1 -0
  28. package/dist/cli-help.d.ts +21 -0
  29. package/dist/cli-help.d.ts.map +1 -0
  30. package/dist/cli-help.js +176 -0
  31. package/dist/cli-help.js.map +1 -0
  32. package/dist/cli-login.d.ts +76 -0
  33. package/dist/cli-login.d.ts.map +1 -0
  34. package/dist/cli-login.js +634 -0
  35. package/dist/cli-login.js.map +1 -0
  36. package/dist/cli-operation.d.ts +2 -0
  37. package/dist/cli-operation.d.ts.map +1 -0
  38. package/dist/cli-operation.js +66 -0
  39. package/dist/cli-operation.js.map +1 -0
  40. package/dist/cli-org.d.ts +12 -0
  41. package/dist/cli-org.d.ts.map +1 -0
  42. package/dist/cli-org.js +218 -0
  43. package/dist/cli-org.js.map +1 -0
  44. package/dist/cli-rebuild.d.ts +20 -0
  45. package/dist/cli-rebuild.d.ts.map +1 -0
  46. package/dist/cli-rebuild.js +29 -0
  47. package/dist/cli-rebuild.js.map +1 -0
  48. package/dist/cli-reset.d.ts +27 -0
  49. package/dist/cli-reset.d.ts.map +1 -0
  50. package/dist/cli-reset.js +44 -0
  51. package/dist/cli-reset.js.map +1 -0
  52. package/dist/cli-snapshot.d.ts +398 -0
  53. package/dist/cli-snapshot.d.ts.map +1 -0
  54. package/dist/cli-snapshot.js +45 -0
  55. package/dist/cli-snapshot.js.map +1 -0
  56. package/dist/cli-task-context.d.ts +3 -0
  57. package/dist/cli-task-context.d.ts.map +1 -0
  58. package/dist/cli-task-context.js +112 -0
  59. package/dist/cli-task-context.js.map +1 -0
  60. package/dist/cli.d.ts +3 -0
  61. package/dist/cli.d.ts.map +1 -0
  62. package/dist/cli.js +1004 -0
  63. package/dist/cli.js.map +1 -0
  64. package/dist/graph-packages-lock.d.ts +169 -0
  65. package/dist/graph-packages-lock.d.ts.map +1 -0
  66. package/dist/graph-packages-lock.js +503 -0
  67. package/dist/graph-packages-lock.js.map +1 -0
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +2 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/local/aggregate-preflight.d.ts +12 -0
  73. package/dist/local/aggregate-preflight.d.ts.map +1 -0
  74. package/dist/local/aggregate-preflight.js +22 -0
  75. package/dist/local/aggregate-preflight.js.map +1 -0
  76. package/dist/local/allow-mcp.d.ts +77 -0
  77. package/dist/local/allow-mcp.d.ts.map +1 -0
  78. package/dist/local/allow-mcp.js +394 -0
  79. package/dist/local/allow-mcp.js.map +1 -0
  80. package/dist/local/api-client.d.ts +15 -0
  81. package/dist/local/api-client.d.ts.map +1 -0
  82. package/dist/local/api-client.js +87 -0
  83. package/dist/local/api-client.js.map +1 -0
  84. package/dist/local/app-contract-readers.d.ts +229 -0
  85. package/dist/local/app-contract-readers.d.ts.map +1 -0
  86. package/dist/local/app-contract-readers.js +450 -0
  87. package/dist/local/app-contract-readers.js.map +1 -0
  88. package/dist/local/app-org-reader.d.ts +21 -0
  89. package/dist/local/app-org-reader.d.ts.map +1 -0
  90. package/dist/local/app-org-reader.js +66 -0
  91. package/dist/local/app-org-reader.js.map +1 -0
  92. package/dist/local/app-shell-readers.d.ts +96 -0
  93. package/dist/local/app-shell-readers.d.ts.map +1 -0
  94. package/dist/local/app-shell-readers.js +381 -0
  95. package/dist/local/app-shell-readers.js.map +1 -0
  96. package/dist/local/app-tasks-read.d.ts +202 -0
  97. package/dist/local/app-tasks-read.d.ts.map +1 -0
  98. package/dist/local/app-tasks-read.js +290 -0
  99. package/dist/local/app-tasks-read.js.map +1 -0
  100. package/dist/local/app-worktrees.d.ts +69 -0
  101. package/dist/local/app-worktrees.d.ts.map +1 -0
  102. package/dist/local/app-worktrees.js +554 -0
  103. package/dist/local/app-worktrees.js.map +1 -0
  104. package/dist/local/base-sync-manifest.d.ts +12 -0
  105. package/dist/local/base-sync-manifest.d.ts.map +1 -0
  106. package/dist/local/base-sync-manifest.js +57 -0
  107. package/dist/local/base-sync-manifest.js.map +1 -0
  108. package/dist/local/blast-radius.d.ts +191 -0
  109. package/dist/local/blast-radius.d.ts.map +1 -0
  110. package/dist/local/blast-radius.js +585 -0
  111. package/dist/local/blast-radius.js.map +1 -0
  112. package/dist/local/canonical.d.ts +2 -0
  113. package/dist/local/canonical.d.ts.map +1 -0
  114. package/dist/local/canonical.js +2 -0
  115. package/dist/local/canonical.js.map +1 -0
  116. package/dist/local/config.d.ts +22 -0
  117. package/dist/local/config.d.ts.map +1 -0
  118. package/dist/local/config.js +57 -0
  119. package/dist/local/config.js.map +1 -0
  120. package/dist/local/document-commands.d.ts +163 -0
  121. package/dist/local/document-commands.d.ts.map +1 -0
  122. package/dist/local/document-commands.js +620 -0
  123. package/dist/local/document-commands.js.map +1 -0
  124. package/dist/local/document-embeds.d.ts +21 -0
  125. package/dist/local/document-embeds.d.ts.map +1 -0
  126. package/dist/local/document-embeds.js +38 -0
  127. package/dist/local/document-embeds.js.map +1 -0
  128. package/dist/local/environment-context.d.ts +39 -0
  129. package/dist/local/environment-context.d.ts.map +1 -0
  130. package/dist/local/environment-context.js +193 -0
  131. package/dist/local/environment-context.js.map +1 -0
  132. package/dist/local/environment-exclude.d.ts +7 -0
  133. package/dist/local/environment-exclude.d.ts.map +1 -0
  134. package/dist/local/environment-exclude.js +82 -0
  135. package/dist/local/environment-exclude.js.map +1 -0
  136. package/dist/local/environment-sidecar.d.ts +126 -0
  137. package/dist/local/environment-sidecar.d.ts.map +1 -0
  138. package/dist/local/environment-sidecar.js +442 -0
  139. package/dist/local/environment-sidecar.js.map +1 -0
  140. package/dist/local/environment-switch.d.ts +22 -0
  141. package/dist/local/environment-switch.d.ts.map +1 -0
  142. package/dist/local/environment-switch.js +385 -0
  143. package/dist/local/environment-switch.js.map +1 -0
  144. package/dist/local/exact-remote-projection.d.ts +17 -0
  145. package/dist/local/exact-remote-projection.d.ts.map +1 -0
  146. package/dist/local/exact-remote-projection.js +53 -0
  147. package/dist/local/exact-remote-projection.js.map +1 -0
  148. package/dist/local/experimental/path-object-store.d.ts +66 -0
  149. package/dist/local/experimental/path-object-store.d.ts.map +1 -0
  150. package/dist/local/experimental/path-object-store.js +135 -0
  151. package/dist/local/experimental/path-object-store.js.map +1 -0
  152. package/dist/local/external-worktree-binding.d.ts +21 -0
  153. package/dist/local/external-worktree-binding.d.ts.map +1 -0
  154. package/dist/local/external-worktree-binding.js +56 -0
  155. package/dist/local/external-worktree-binding.js.map +1 -0
  156. package/dist/local/folder-members.d.ts +34 -0
  157. package/dist/local/folder-members.d.ts.map +1 -0
  158. package/dist/local/folder-members.js +168 -0
  159. package/dist/local/folder-members.js.map +1 -0
  160. package/dist/local/git-ref-authority.d.ts +11 -0
  161. package/dist/local/git-ref-authority.d.ts.map +1 -0
  162. package/dist/local/git-ref-authority.js +76 -0
  163. package/dist/local/git-ref-authority.js.map +1 -0
  164. package/dist/local/git.d.ts +88 -0
  165. package/dist/local/git.d.ts.map +1 -0
  166. package/dist/local/git.js +413 -0
  167. package/dist/local/git.js.map +1 -0
  168. package/dist/local/graph-read.d.ts +168 -0
  169. package/dist/local/graph-read.d.ts.map +1 -0
  170. package/dist/local/graph-read.js +360 -0
  171. package/dist/local/graph-read.js.map +1 -0
  172. package/dist/local/graph-sync.d.ts +39 -0
  173. package/dist/local/graph-sync.d.ts.map +1 -0
  174. package/dist/local/graph-sync.js +186 -0
  175. package/dist/local/graph-sync.js.map +1 -0
  176. package/dist/local/guide-commands.d.ts +79 -0
  177. package/dist/local/guide-commands.d.ts.map +1 -0
  178. package/dist/local/guide-commands.js +247 -0
  179. package/dist/local/guide-commands.js.map +1 -0
  180. package/dist/local/health-files.d.ts +24 -0
  181. package/dist/local/health-files.d.ts.map +1 -0
  182. package/dist/local/health-files.js +133 -0
  183. package/dist/local/health-files.js.map +1 -0
  184. package/dist/local/health-inspection.d.ts +12 -0
  185. package/dist/local/health-inspection.d.ts.map +1 -0
  186. package/dist/local/health-inspection.js +407 -0
  187. package/dist/local/health-inspection.js.map +1 -0
  188. package/dist/local/health-policy.d.ts +11 -0
  189. package/dist/local/health-policy.d.ts.map +1 -0
  190. package/dist/local/health-policy.js +257 -0
  191. package/dist/local/health-policy.js.map +1 -0
  192. package/dist/local/health-projection.d.ts +14 -0
  193. package/dist/local/health-projection.d.ts.map +1 -0
  194. package/dist/local/health-projection.js +102 -0
  195. package/dist/local/health-projection.js.map +1 -0
  196. package/dist/local/health-schema.d.ts +338 -0
  197. package/dist/local/health-schema.d.ts.map +1 -0
  198. package/dist/local/health-schema.js +213 -0
  199. package/dist/local/health-schema.js.map +1 -0
  200. package/dist/local/health-store.d.ts +61 -0
  201. package/dist/local/health-store.d.ts.map +1 -0
  202. package/dist/local/health-store.js +218 -0
  203. package/dist/local/health-store.js.map +1 -0
  204. package/dist/local/index.d.ts +66 -0
  205. package/dist/local/index.d.ts.map +1 -0
  206. package/dist/local/index.js +66 -0
  207. package/dist/local/index.js.map +1 -0
  208. package/dist/local/journey-commands.d.ts +65 -0
  209. package/dist/local/journey-commands.d.ts.map +1 -0
  210. package/dist/local/journey-commands.js +138 -0
  211. package/dist/local/journey-commands.js.map +1 -0
  212. package/dist/local/local-org-store.d.ts +46 -0
  213. package/dist/local/local-org-store.d.ts.map +1 -0
  214. package/dist/local/local-org-store.js +132 -0
  215. package/dist/local/local-org-store.js.map +1 -0
  216. package/dist/local/local-org.d.ts +389 -0
  217. package/dist/local/local-org.d.ts.map +1 -0
  218. package/dist/local/local-org.js +855 -0
  219. package/dist/local/local-org.js.map +1 -0
  220. package/dist/local/media-upload.d.ts +5 -0
  221. package/dist/local/media-upload.d.ts.map +1 -0
  222. package/dist/local/media-upload.js +41 -0
  223. package/dist/local/media-upload.js.map +1 -0
  224. package/dist/local/operation.d.ts +155 -0
  225. package/dist/local/operation.d.ts.map +1 -0
  226. package/dist/local/operation.js +340 -0
  227. package/dist/local/operation.js.map +1 -0
  228. package/dist/local/ownership-reader-schema.d.ts +117 -0
  229. package/dist/local/ownership-reader-schema.d.ts.map +1 -0
  230. package/dist/local/ownership-reader-schema.js +105 -0
  231. package/dist/local/ownership-reader-schema.js.map +1 -0
  232. package/dist/local/ownership-reader-worker.d.ts +2 -0
  233. package/dist/local/ownership-reader-worker.d.ts.map +1 -0
  234. package/dist/local/ownership-reader-worker.js +341 -0
  235. package/dist/local/ownership-reader-worker.js.map +1 -0
  236. package/dist/local/ownership-reader.d.ts +10 -0
  237. package/dist/local/ownership-reader.d.ts.map +1 -0
  238. package/dist/local/ownership-reader.js +93 -0
  239. package/dist/local/ownership-reader.js.map +1 -0
  240. package/dist/local/package-uses-check.d.ts +33 -0
  241. package/dist/local/package-uses-check.d.ts.map +1 -0
  242. package/dist/local/package-uses-check.js +62 -0
  243. package/dist/local/package-uses-check.js.map +1 -0
  244. package/dist/local/pending-recovery.d.ts +22 -0
  245. package/dist/local/pending-recovery.d.ts.map +1 -0
  246. package/dist/local/pending-recovery.js +171 -0
  247. package/dist/local/pending-recovery.js.map +1 -0
  248. package/dist/local/portable-commit-store.d.ts +28 -0
  249. package/dist/local/portable-commit-store.d.ts.map +1 -0
  250. package/dist/local/portable-commit-store.js +187 -0
  251. package/dist/local/portable-commit-store.js.map +1 -0
  252. package/dist/local/portable-commit.d.ts +109 -0
  253. package/dist/local/portable-commit.d.ts.map +1 -0
  254. package/dist/local/portable-commit.js +209 -0
  255. package/dist/local/portable-commit.js.map +1 -0
  256. package/dist/local/portable-remote.d.ts +432 -0
  257. package/dist/local/portable-remote.d.ts.map +1 -0
  258. package/dist/local/portable-remote.js +280 -0
  259. package/dist/local/portable-remote.js.map +1 -0
  260. package/dist/local/project-deleted.d.ts +4 -0
  261. package/dist/local/project-deleted.d.ts.map +1 -0
  262. package/dist/local/project-deleted.js +13 -0
  263. package/dist/local/project-deleted.js.map +1 -0
  264. package/dist/local/projection.d.ts +166 -0
  265. package/dist/local/projection.d.ts.map +1 -0
  266. package/dist/local/projection.js +709 -0
  267. package/dist/local/projection.js.map +1 -0
  268. package/dist/local/read-operation.d.ts +3 -0
  269. package/dist/local/read-operation.d.ts.map +1 -0
  270. package/dist/local/read-operation.js +19 -0
  271. package/dist/local/read-operation.js.map +1 -0
  272. package/dist/local/rebuild.d.ts +11 -0
  273. package/dist/local/rebuild.d.ts.map +1 -0
  274. package/dist/local/rebuild.js +42 -0
  275. package/dist/local/rebuild.js.map +1 -0
  276. package/dist/local/remote-base.d.ts +25 -0
  277. package/dist/local/remote-base.d.ts.map +1 -0
  278. package/dist/local/remote-base.js +68 -0
  279. package/dist/local/remote-base.js.map +1 -0
  280. package/dist/local/save-layout-worker.d.ts +19 -0
  281. package/dist/local/save-layout-worker.d.ts.map +1 -0
  282. package/dist/local/save-layout-worker.js +28 -0
  283. package/dist/local/save-layout-worker.js.map +1 -0
  284. package/dist/local/save-layout.d.ts +84 -0
  285. package/dist/local/save-layout.d.ts.map +1 -0
  286. package/dist/local/save-layout.js +221 -0
  287. package/dist/local/save-layout.js.map +1 -0
  288. package/dist/local/scope-impact.d.ts +31 -0
  289. package/dist/local/scope-impact.d.ts.map +1 -0
  290. package/dist/local/scope-impact.js +32 -0
  291. package/dist/local/scope-impact.js.map +1 -0
  292. package/dist/local/source-evidence/filesystem-worker.d.ts +2 -0
  293. package/dist/local/source-evidence/filesystem-worker.d.ts.map +1 -0
  294. package/dist/local/source-evidence/filesystem-worker.js +139 -0
  295. package/dist/local/source-evidence/filesystem-worker.js.map +1 -0
  296. package/dist/local/source-evidence/processes.d.ts +20 -0
  297. package/dist/local/source-evidence/processes.d.ts.map +1 -0
  298. package/dist/local/source-evidence/processes.js +133 -0
  299. package/dist/local/source-evidence/processes.js.map +1 -0
  300. package/dist/local/source-evidence/protocol.d.ts +52 -0
  301. package/dist/local/source-evidence/protocol.d.ts.map +1 -0
  302. package/dist/local/source-evidence/protocol.js +72 -0
  303. package/dist/local/source-evidence/protocol.js.map +1 -0
  304. package/dist/local/source-evidence/reader.d.ts +14 -0
  305. package/dist/local/source-evidence/reader.d.ts.map +1 -0
  306. package/dist/local/source-evidence/reader.js +308 -0
  307. package/dist/local/source-evidence/reader.js.map +1 -0
  308. package/dist/local/source-evidence/schema.d.ts +2504 -0
  309. package/dist/local/source-evidence/schema.d.ts.map +1 -0
  310. package/dist/local/source-evidence/schema.js +99 -0
  311. package/dist/local/source-evidence/schema.js.map +1 -0
  312. package/dist/local/source-policy/loader.d.ts +29 -0
  313. package/dist/local/source-policy/loader.d.ts.map +1 -0
  314. package/dist/local/source-policy/loader.js +209 -0
  315. package/dist/local/source-policy/loader.js.map +1 -0
  316. package/dist/local/source-policy/process.d.ts +7 -0
  317. package/dist/local/source-policy/process.d.ts.map +1 -0
  318. package/dist/local/source-policy/process.js +53 -0
  319. package/dist/local/source-policy/process.js.map +1 -0
  320. package/dist/local/source-policy/protocol.d.ts +27 -0
  321. package/dist/local/source-policy/protocol.d.ts.map +1 -0
  322. package/dist/local/source-policy/protocol.js +48 -0
  323. package/dist/local/source-policy/protocol.js.map +1 -0
  324. package/dist/local/source-policy/worker.d.ts +2 -0
  325. package/dist/local/source-policy/worker.d.ts.map +1 -0
  326. package/dist/local/source-policy/worker.js +100 -0
  327. package/dist/local/source-policy/worker.js.map +1 -0
  328. package/dist/local/state-directory.d.ts +17 -0
  329. package/dist/local/state-directory.d.ts.map +1 -0
  330. package/dist/local/state-directory.js +68 -0
  331. package/dist/local/state-directory.js.map +1 -0
  332. package/dist/local/store-database.d.ts +13 -0
  333. package/dist/local/store-database.d.ts.map +1 -0
  334. package/dist/local/store-database.js +187 -0
  335. package/dist/local/store-database.js.map +1 -0
  336. package/dist/local/store.d.ts +181 -0
  337. package/dist/local/store.d.ts.map +1 -0
  338. package/dist/local/store.js +585 -0
  339. package/dist/local/store.js.map +1 -0
  340. package/dist/local/sync.d.ts +47 -0
  341. package/dist/local/sync.d.ts.map +1 -0
  342. package/dist/local/sync.js +518 -0
  343. package/dist/local/sync.js.map +1 -0
  344. package/dist/local/task-context-inspection.d.ts +23 -0
  345. package/dist/local/task-context-inspection.d.ts.map +1 -0
  346. package/dist/local/task-context-inspection.js +165 -0
  347. package/dist/local/task-context-inspection.js.map +1 -0
  348. package/dist/local/task-context-observations.d.ts +9553 -0
  349. package/dist/local/task-context-observations.d.ts.map +1 -0
  350. package/dist/local/task-context-observations.js +232 -0
  351. package/dist/local/task-context-observations.js.map +1 -0
  352. package/dist/local/task-context-provider.d.ts +18 -0
  353. package/dist/local/task-context-provider.d.ts.map +1 -0
  354. package/dist/local/task-context-provider.js +231 -0
  355. package/dist/local/task-context-provider.js.map +1 -0
  356. package/dist/local/task-context-schema.d.ts +847 -0
  357. package/dist/local/task-context-schema.d.ts.map +1 -0
  358. package/dist/local/task-context-schema.js +305 -0
  359. package/dist/local/task-context-schema.js.map +1 -0
  360. package/dist/local/task-context-source.d.ts +16 -0
  361. package/dist/local/task-context-source.d.ts.map +1 -0
  362. package/dist/local/task-context-source.js +45 -0
  363. package/dist/local/task-context-source.js.map +1 -0
  364. package/dist/local/task-context.d.ts +14 -0
  365. package/dist/local/task-context.d.ts.map +1 -0
  366. package/dist/local/task-context.js +570 -0
  367. package/dist/local/task-context.js.map +1 -0
  368. package/dist/local/test-commands.d.ts +71 -0
  369. package/dist/local/test-commands.d.ts.map +1 -0
  370. package/dist/local/test-commands.js +292 -0
  371. package/dist/local/test-commands.js.map +1 -0
  372. package/dist/local/tree-save.d.ts +117 -0
  373. package/dist/local/tree-save.d.ts.map +1 -0
  374. package/dist/local/tree-save.js +615 -0
  375. package/dist/local/tree-save.js.map +1 -0
  376. package/dist/local/variants.d.ts +125 -0
  377. package/dist/local/variants.d.ts.map +1 -0
  378. package/dist/local/variants.js +267 -0
  379. package/dist/local/variants.js.map +1 -0
  380. package/dist/local/workspace-admission.d.ts +61 -0
  381. package/dist/local/workspace-admission.d.ts.map +1 -0
  382. package/dist/local/workspace-admission.js +112 -0
  383. package/dist/local/workspace-admission.js.map +1 -0
  384. package/dist/local/workspace-authority-guard.d.ts +18 -0
  385. package/dist/local/workspace-authority-guard.d.ts.map +1 -0
  386. package/dist/local/workspace-authority-guard.js +69 -0
  387. package/dist/local/workspace-authority-guard.js.map +1 -0
  388. package/dist/local/workspace-authority.d.ts +33 -0
  389. package/dist/local/workspace-authority.d.ts.map +1 -0
  390. package/dist/local/workspace-authority.js +33 -0
  391. package/dist/local/workspace-authority.js.map +1 -0
  392. package/dist/local/workspace-branch-runtime.d.ts +61 -0
  393. package/dist/local/workspace-branch-runtime.d.ts.map +1 -0
  394. package/dist/local/workspace-branch-runtime.js +216 -0
  395. package/dist/local/workspace-branch-runtime.js.map +1 -0
  396. package/dist/local/workspace-built-content.d.ts +137 -0
  397. package/dist/local/workspace-built-content.d.ts.map +1 -0
  398. package/dist/local/workspace-built-content.js +393 -0
  399. package/dist/local/workspace-built-content.js.map +1 -0
  400. package/dist/local/workspace-claim-status-read.d.ts +53 -0
  401. package/dist/local/workspace-claim-status-read.d.ts.map +1 -0
  402. package/dist/local/workspace-claim-status-read.js +118 -0
  403. package/dist/local/workspace-claim-status-read.js.map +1 -0
  404. package/dist/local/workspace-claim-status.d.ts +172 -0
  405. package/dist/local/workspace-claim-status.d.ts.map +1 -0
  406. package/dist/local/workspace-claim-status.js +721 -0
  407. package/dist/local/workspace-claim-status.js.map +1 -0
  408. package/dist/local/workspace-claim-views.d.ts +45 -0
  409. package/dist/local/workspace-claim-views.d.ts.map +1 -0
  410. package/dist/local/workspace-claim-views.js +45 -0
  411. package/dist/local/workspace-claim-views.js.map +1 -0
  412. package/dist/local/workspace-cli.d.ts +46 -0
  413. package/dist/local/workspace-cli.d.ts.map +1 -0
  414. package/dist/local/workspace-cli.js +1524 -0
  415. package/dist/local/workspace-cli.js.map +1 -0
  416. package/dist/local/workspace-commit-resolver.d.ts +19 -0
  417. package/dist/local/workspace-commit-resolver.d.ts.map +1 -0
  418. package/dist/local/workspace-commit-resolver.js +47 -0
  419. package/dist/local/workspace-commit-resolver.js.map +1 -0
  420. package/dist/local/workspace-decision-store.d.ts +184 -0
  421. package/dist/local/workspace-decision-store.d.ts.map +1 -0
  422. package/dist/local/workspace-decision-store.js +510 -0
  423. package/dist/local/workspace-decision-store.js.map +1 -0
  424. package/dist/local/workspace-environment-runtime.d.ts +107 -0
  425. package/dist/local/workspace-environment-runtime.d.ts.map +1 -0
  426. package/dist/local/workspace-environment-runtime.js +135 -0
  427. package/dist/local/workspace-environment-runtime.js.map +1 -0
  428. package/dist/local/workspace-evidence-drop.d.ts +21 -0
  429. package/dist/local/workspace-evidence-drop.d.ts.map +1 -0
  430. package/dist/local/workspace-evidence-drop.js +58 -0
  431. package/dist/local/workspace-evidence-drop.js.map +1 -0
  432. package/dist/local/workspace-evidence-sign-tool.d.ts +20 -0
  433. package/dist/local/workspace-evidence-sign-tool.d.ts.map +1 -0
  434. package/dist/local/workspace-evidence-sign-tool.js +85 -0
  435. package/dist/local/workspace-evidence-sign-tool.js.map +1 -0
  436. package/dist/local/workspace-evidence-status.d.ts +89 -0
  437. package/dist/local/workspace-evidence-status.d.ts.map +1 -0
  438. package/dist/local/workspace-evidence-status.js +141 -0
  439. package/dist/local/workspace-evidence-status.js.map +1 -0
  440. package/dist/local/workspace-evidence.d.ts +145 -0
  441. package/dist/local/workspace-evidence.d.ts.map +1 -0
  442. package/dist/local/workspace-evidence.js +347 -0
  443. package/dist/local/workspace-evidence.js.map +1 -0
  444. package/dist/local/workspace-graph-store.d.ts +32 -0
  445. package/dist/local/workspace-graph-store.d.ts.map +1 -0
  446. package/dist/local/workspace-graph-store.js +249 -0
  447. package/dist/local/workspace-graph-store.js.map +1 -0
  448. package/dist/local/workspace-handoff.d.ts +32 -0
  449. package/dist/local/workspace-handoff.d.ts.map +1 -0
  450. package/dist/local/workspace-handoff.js +144 -0
  451. package/dist/local/workspace-handoff.js.map +1 -0
  452. package/dist/local/workspace-history-journal.d.ts +70 -0
  453. package/dist/local/workspace-history-journal.d.ts.map +1 -0
  454. package/dist/local/workspace-history-journal.js +131 -0
  455. package/dist/local/workspace-history-journal.js.map +1 -0
  456. package/dist/local/workspace-history-store.d.ts +98 -0
  457. package/dist/local/workspace-history-store.d.ts.map +1 -0
  458. package/dist/local/workspace-history-store.js +632 -0
  459. package/dist/local/workspace-history-store.js.map +1 -0
  460. package/dist/local/workspace-history-types.d.ts +307 -0
  461. package/dist/local/workspace-history-types.d.ts.map +1 -0
  462. package/dist/local/workspace-history-types.js +2 -0
  463. package/dist/local/workspace-history-types.js.map +1 -0
  464. package/dist/local/workspace-integration-runtime.d.ts +48 -0
  465. package/dist/local/workspace-integration-runtime.d.ts.map +1 -0
  466. package/dist/local/workspace-integration-runtime.js +419 -0
  467. package/dist/local/workspace-integration-runtime.js.map +1 -0
  468. package/dist/local/workspace-lock.d.ts +7 -0
  469. package/dist/local/workspace-lock.d.ts.map +1 -0
  470. package/dist/local/workspace-lock.js +211 -0
  471. package/dist/local/workspace-lock.js.map +1 -0
  472. package/dist/local/workspace-merge.d.ts +77 -0
  473. package/dist/local/workspace-merge.d.ts.map +1 -0
  474. package/dist/local/workspace-merge.js +703 -0
  475. package/dist/local/workspace-merge.js.map +1 -0
  476. package/dist/local/workspace-mixed-history.d.ts +33 -0
  477. package/dist/local/workspace-mixed-history.d.ts.map +1 -0
  478. package/dist/local/workspace-mixed-history.js +107 -0
  479. package/dist/local/workspace-mixed-history.js.map +1 -0
  480. package/dist/local/workspace-overlap-allocation.d.ts +33 -0
  481. package/dist/local/workspace-overlap-allocation.d.ts.map +1 -0
  482. package/dist/local/workspace-overlap-allocation.js +69 -0
  483. package/dist/local/workspace-overlap-allocation.js.map +1 -0
  484. package/dist/local/workspace-overlap-impact.d.ts +46 -0
  485. package/dist/local/workspace-overlap-impact.d.ts.map +1 -0
  486. package/dist/local/workspace-overlap-impact.js +162 -0
  487. package/dist/local/workspace-overlap-impact.js.map +1 -0
  488. package/dist/local/workspace-overlap.d.ts +109 -0
  489. package/dist/local/workspace-overlap.d.ts.map +1 -0
  490. package/dist/local/workspace-overlap.js +327 -0
  491. package/dist/local/workspace-overlap.js.map +1 -0
  492. package/dist/local/workspace-paths.d.ts +4 -0
  493. package/dist/local/workspace-paths.d.ts.map +1 -0
  494. package/dist/local/workspace-paths.js +8 -0
  495. package/dist/local/workspace-paths.js.map +1 -0
  496. package/dist/local/workspace-pick-runtime.d.ts +70 -0
  497. package/dist/local/workspace-pick-runtime.d.ts.map +1 -0
  498. package/dist/local/workspace-pick-runtime.js +177 -0
  499. package/dist/local/workspace-pick-runtime.js.map +1 -0
  500. package/dist/local/workspace-pick-store.d.ts +33 -0
  501. package/dist/local/workspace-pick-store.d.ts.map +1 -0
  502. package/dist/local/workspace-pick-store.js +43 -0
  503. package/dist/local/workspace-pick-store.js.map +1 -0
  504. package/dist/local/workspace-pick.d.ts +73 -0
  505. package/dist/local/workspace-pick.d.ts.map +1 -0
  506. package/dist/local/workspace-pick.js +253 -0
  507. package/dist/local/workspace-pick.js.map +1 -0
  508. package/dist/local/workspace-portable-authoring.d.ts +43 -0
  509. package/dist/local/workspace-portable-authoring.d.ts.map +1 -0
  510. package/dist/local/workspace-portable-authoring.js +128 -0
  511. package/dist/local/workspace-portable-authoring.js.map +1 -0
  512. package/dist/local/workspace-prune.d.ts +63 -0
  513. package/dist/local/workspace-prune.d.ts.map +1 -0
  514. package/dist/local/workspace-prune.js +267 -0
  515. package/dist/local/workspace-prune.js.map +1 -0
  516. package/dist/local/workspace-remote-fetch.d.ts +82 -0
  517. package/dist/local/workspace-remote-fetch.d.ts.map +1 -0
  518. package/dist/local/workspace-remote-fetch.js +409 -0
  519. package/dist/local/workspace-remote-fetch.js.map +1 -0
  520. package/dist/local/workspace-remote-provider.d.ts +97 -0
  521. package/dist/local/workspace-remote-provider.d.ts.map +1 -0
  522. package/dist/local/workspace-remote-provider.js +400 -0
  523. package/dist/local/workspace-remote-provider.js.map +1 -0
  524. package/dist/local/workspace-remote-pull-request-journal.d.ts +49 -0
  525. package/dist/local/workspace-remote-pull-request-journal.d.ts.map +1 -0
  526. package/dist/local/workspace-remote-pull-request-journal.js +63 -0
  527. package/dist/local/workspace-remote-pull-request-journal.js.map +1 -0
  528. package/dist/local/workspace-remote-pull-request.d.ts +36 -0
  529. package/dist/local/workspace-remote-pull-request.d.ts.map +1 -0
  530. package/dist/local/workspace-remote-pull-request.js +158 -0
  531. package/dist/local/workspace-remote-pull-request.js.map +1 -0
  532. package/dist/local/workspace-remote-push.d.ts +88 -0
  533. package/dist/local/workspace-remote-push.d.ts.map +1 -0
  534. package/dist/local/workspace-remote-push.js +297 -0
  535. package/dist/local/workspace-remote-push.js.map +1 -0
  536. package/dist/local/workspace-remote-topic-journal.d.ts +56 -0
  537. package/dist/local/workspace-remote-topic-journal.d.ts.map +1 -0
  538. package/dist/local/workspace-remote-topic-journal.js +121 -0
  539. package/dist/local/workspace-remote-topic-journal.js.map +1 -0
  540. package/dist/local/workspace-remote-topic.d.ts +45 -0
  541. package/dist/local/workspace-remote-topic.d.ts.map +1 -0
  542. package/dist/local/workspace-remote-topic.js +204 -0
  543. package/dist/local/workspace-remote-topic.js.map +1 -0
  544. package/dist/local/workspace-remote-transfer.d.ts +76 -0
  545. package/dist/local/workspace-remote-transfer.d.ts.map +1 -0
  546. package/dist/local/workspace-remote-transfer.js +270 -0
  547. package/dist/local/workspace-remote-transfer.js.map +1 -0
  548. package/dist/local/workspace-resolution.d.ts +145 -0
  549. package/dist/local/workspace-resolution.d.ts.map +1 -0
  550. package/dist/local/workspace-resolution.js +479 -0
  551. package/dist/local/workspace-resolution.js.map +1 -0
  552. package/dist/local/workspace-resolver-provider.d.ts +72 -0
  553. package/dist/local/workspace-resolver-provider.d.ts.map +1 -0
  554. package/dist/local/workspace-resolver-provider.js +312 -0
  555. package/dist/local/workspace-resolver-provider.js.map +1 -0
  556. package/dist/local/workspace-runtime-handoff.d.ts +52 -0
  557. package/dist/local/workspace-runtime-handoff.d.ts.map +1 -0
  558. package/dist/local/workspace-runtime-handoff.js +237 -0
  559. package/dist/local/workspace-runtime-handoff.js.map +1 -0
  560. package/dist/local/workspace-runtime-lease.d.ts +26 -0
  561. package/dist/local/workspace-runtime-lease.d.ts.map +1 -0
  562. package/dist/local/workspace-runtime-lease.js +123 -0
  563. package/dist/local/workspace-runtime-lease.js.map +1 -0
  564. package/dist/local/workspace-runtime.d.ts +690 -0
  565. package/dist/local/workspace-runtime.d.ts.map +1 -0
  566. package/dist/local/workspace-runtime.js +2124 -0
  567. package/dist/local/workspace-runtime.js.map +1 -0
  568. package/dist/local/workspace-scope.d.ts +70 -0
  569. package/dist/local/workspace-scope.d.ts.map +1 -0
  570. package/dist/local/workspace-scope.js +206 -0
  571. package/dist/local/workspace-scope.js.map +1 -0
  572. package/dist/local/workspace-sources.d.ts +159 -0
  573. package/dist/local/workspace-sources.d.ts.map +1 -0
  574. package/dist/local/workspace-sources.js +570 -0
  575. package/dist/local/workspace-sources.js.map +1 -0
  576. package/dist/local/workspace-store-database.d.ts +5 -0
  577. package/dist/local/workspace-store-database.d.ts.map +1 -0
  578. package/dist/local/workspace-store-database.js +726 -0
  579. package/dist/local/workspace-store-database.js.map +1 -0
  580. package/dist/local/workspace-store.d.ts +261 -0
  581. package/dist/local/workspace-store.d.ts.map +1 -0
  582. package/dist/local/workspace-store.js +831 -0
  583. package/dist/local/workspace-store.js.map +1 -0
  584. package/dist/local/workspace-topology-runtime.d.ts +27 -0
  585. package/dist/local/workspace-topology-runtime.d.ts.map +1 -0
  586. package/dist/local/workspace-topology-runtime.js +396 -0
  587. package/dist/local/workspace-topology-runtime.js.map +1 -0
  588. package/dist/local/workspace-topology.d.ts +140 -0
  589. package/dist/local/workspace-topology.d.ts.map +1 -0
  590. package/dist/local/workspace-topology.js +359 -0
  591. package/dist/local/workspace-topology.js.map +1 -0
  592. package/dist/local/workspace-upstream-inspection.d.ts +60 -0
  593. package/dist/local/workspace-upstream-inspection.d.ts.map +1 -0
  594. package/dist/local/workspace-upstream-inspection.js +189 -0
  595. package/dist/local/workspace-upstream-inspection.js.map +1 -0
  596. package/dist/local/workspace-upstream-runtime.d.ts +91 -0
  597. package/dist/local/workspace-upstream-runtime.d.ts.map +1 -0
  598. package/dist/local/workspace-upstream-runtime.js +270 -0
  599. package/dist/local/workspace-upstream-runtime.js.map +1 -0
  600. package/dist/local/workspace-upstream-store.d.ts +51 -0
  601. package/dist/local/workspace-upstream-store.d.ts.map +1 -0
  602. package/dist/local/workspace-upstream-store.js +475 -0
  603. package/dist/local/workspace-upstream-store.js.map +1 -0
  604. package/dist/local/workspace-viewer-server.d.ts +136 -0
  605. package/dist/local/workspace-viewer-server.d.ts.map +1 -0
  606. package/dist/local/workspace-viewer-server.js +1097 -0
  607. package/dist/local/workspace-viewer-server.js.map +1 -0
  608. package/dist/local/workspace-viewer-snapshot.d.ts +49 -0
  609. package/dist/local/workspace-viewer-snapshot.d.ts.map +1 -0
  610. package/dist/local/workspace-viewer-snapshot.js +91 -0
  611. package/dist/local/workspace-viewer-snapshot.js.map +1 -0
  612. package/dist/local/worktree-projection.d.ts +76 -0
  613. package/dist/local/worktree-projection.d.ts.map +1 -0
  614. package/dist/local/worktree-projection.js +470 -0
  615. package/dist/local/worktree-projection.js.map +1 -0
  616. package/dist/mcp/client-identity.d.ts +8 -0
  617. package/dist/mcp/client-identity.d.ts.map +1 -0
  618. package/dist/mcp/client-identity.js +33 -0
  619. package/dist/mcp/client-identity.js.map +1 -0
  620. package/dist/mcp/graph-to-code.d.ts +53 -0
  621. package/dist/mcp/graph-to-code.d.ts.map +1 -0
  622. package/dist/mcp/graph-to-code.js +1624 -0
  623. package/dist/mcp/graph-to-code.js.map +1 -0
  624. package/dist/mcp/index.d.ts +3 -0
  625. package/dist/mcp/index.d.ts.map +1 -0
  626. package/dist/mcp/index.js +3 -0
  627. package/dist/mcp/index.js.map +1 -0
  628. package/dist/mcp/stdio/graph-to-code.d.ts +3 -0
  629. package/dist/mcp/stdio/graph-to-code.d.ts.map +1 -0
  630. package/dist/mcp/stdio/graph-to-code.js +55 -0
  631. package/dist/mcp/stdio/graph-to-code.js.map +1 -0
  632. package/dist/mcp/stdio/worktree.d.ts +3 -0
  633. package/dist/mcp/stdio/worktree.d.ts.map +1 -0
  634. package/dist/mcp/stdio/worktree.js +67 -0
  635. package/dist/mcp/stdio/worktree.js.map +1 -0
  636. package/dist/mcp/worktree-claim-status.d.ts +162 -0
  637. package/dist/mcp/worktree-claim-status.d.ts.map +1 -0
  638. package/dist/mcp/worktree-claim-status.js +113 -0
  639. package/dist/mcp/worktree-claim-status.js.map +1 -0
  640. package/dist/mcp/worktree-dispatch.d.ts +13 -0
  641. package/dist/mcp/worktree-dispatch.d.ts.map +1 -0
  642. package/dist/mcp/worktree-dispatch.js +52 -0
  643. package/dist/mcp/worktree-dispatch.js.map +1 -0
  644. package/dist/mcp/worktree-errors.d.ts +15 -0
  645. package/dist/mcp/worktree-errors.d.ts.map +1 -0
  646. package/dist/mcp/worktree-errors.js +17 -0
  647. package/dist/mcp/worktree-errors.js.map +1 -0
  648. package/dist/mcp/worktree-health.d.ts +12 -0
  649. package/dist/mcp/worktree-health.d.ts.map +1 -0
  650. package/dist/mcp/worktree-health.js +32 -0
  651. package/dist/mcp/worktree-health.js.map +1 -0
  652. package/dist/mcp/worktree-results.d.ts +15 -0
  653. package/dist/mcp/worktree-results.d.ts.map +1 -0
  654. package/dist/mcp/worktree-results.js +12 -0
  655. package/dist/mcp/worktree-results.js.map +1 -0
  656. package/dist/mcp/worktree-task-context.d.ts +57 -0
  657. package/dist/mcp/worktree-task-context.d.ts.map +1 -0
  658. package/dist/mcp/worktree-task-context.js +45 -0
  659. package/dist/mcp/worktree-task-context.js.map +1 -0
  660. package/dist/mcp/worktree-tools.d.ts +2648 -0
  661. package/dist/mcp/worktree-tools.d.ts.map +1 -0
  662. package/dist/mcp/worktree-tools.js +192 -0
  663. package/dist/mcp/worktree-tools.js.map +1 -0
  664. package/dist/mcp/worktree.d.ts +33 -0
  665. package/dist/mcp/worktree.d.ts.map +1 -0
  666. package/dist/mcp/worktree.js +551 -0
  667. package/dist/mcp/worktree.js.map +1 -0
  668. package/dist/own-package.d.ts +13 -0
  669. package/dist/own-package.d.ts.map +1 -0
  670. package/dist/own-package.js +32 -0
  671. package/dist/own-package.js.map +1 -0
  672. package/dist/packages-browse.d.ts +107 -0
  673. package/dist/packages-browse.d.ts.map +1 -0
  674. package/dist/packages-browse.js +646 -0
  675. package/dist/packages-browse.js.map +1 -0
  676. package/dist/packages-cli.d.ts +8 -0
  677. package/dist/packages-cli.d.ts.map +1 -0
  678. package/dist/packages-cli.js +184 -0
  679. package/dist/packages-cli.js.map +1 -0
  680. package/dist/packages-uses.d.ts +46 -0
  681. package/dist/packages-uses.d.ts.map +1 -0
  682. package/dist/packages-uses.js +737 -0
  683. package/dist/packages-uses.js.map +1 -0
  684. package/dist/portable.d.ts +7 -0
  685. package/dist/portable.d.ts.map +1 -0
  686. package/dist/portable.js +14 -0
  687. package/dist/portable.js.map +1 -0
  688. package/dist/quiet-warnings.d.ts +3 -0
  689. package/dist/quiet-warnings.d.ts.map +1 -0
  690. package/dist/quiet-warnings.js +21 -0
  691. package/dist/quiet-warnings.js.map +1 -0
  692. package/dist/view-seam.d.ts +62 -0
  693. package/dist/view-seam.d.ts.map +1 -0
  694. package/dist/view-seam.js +70 -0
  695. package/dist/view-seam.js.map +1 -0
  696. package/generated/graph-packages/index.json +5 -0
  697. package/graph-packages.lock.json +4 -0
  698. package/package.json +81 -0
  699. package/viewer/assets/index-BZKGDARF.css +1 -0
  700. package/viewer/assets/index-DWu0CbZZ.js +272 -0
  701. package/viewer/index.html +13 -0
@@ -0,0 +1,71 @@
1
+ import type { C4TestEnvironment } from '@software-dlc/graph/types';
2
+ /** The spec directories the importer reads, with what their tests are valid in. */
3
+ export declare const TEST_SPEC_SOURCES: ReadonlyArray<{
4
+ directory: string;
5
+ suffix: string;
6
+ environments: C4TestEnvironment[];
7
+ }>;
8
+ /** The first `describe` title in a spec file, else its file name. */
9
+ export declare function specLabel(source: string, path: string): string;
10
+ export type TestImportResult = {
11
+ version: 1;
12
+ dry_run: boolean;
13
+ created: Array<{
14
+ node_id: string;
15
+ path: string;
16
+ parent_id: string;
17
+ placed_by: 'spec' | 'parent';
18
+ }>;
19
+ existing: Array<{
20
+ node_id: string;
21
+ path: string;
22
+ }>;
23
+ unplaced: string[];
24
+ /** Spec files whose path no test locator may name (for example a backslash in the name). */
25
+ skipped: string[];
26
+ };
27
+ export declare function importTestNodes(input: {
28
+ projection_dir: string;
29
+ repository_root: string;
30
+ parent_id?: string;
31
+ dry_run?: boolean;
32
+ }): Promise<TestImportResult>;
33
+ export declare function linkTestNode(input: {
34
+ projection_dir: string;
35
+ node_id: string;
36
+ target_id: string;
37
+ edge_id?: string;
38
+ }): Promise<{
39
+ version: number;
40
+ status: string;
41
+ edge_id: string;
42
+ target_type?: undefined;
43
+ } | {
44
+ version: number;
45
+ status: string;
46
+ edge_id: string;
47
+ target_type: string;
48
+ }>;
49
+ /** The criterion verifications a test discharges; readiness reports coverage for these only. */
50
+ export declare const TEST_CRITERION_VERIFICATIONS: readonly ["unit_test", "integration_test", "e2e_test"];
51
+ /**
52
+ * `link <test> --criterion <node>#<criterion>`: ties a test to one acceptance
53
+ * criterion (docs/specs/testing-and-deployment-domain-model.md, Tying a test to
54
+ * one criterion). It adds the test to the criterion's `test_ids` and the
55
+ * `verifies` relationship to the criterion's node, which validation requires
56
+ * together. Everything is checked before anything is written; running it again
57
+ * changes nothing.
58
+ */
59
+ export declare function linkTestCriterion(input: {
60
+ projection_dir: string;
61
+ node_id: string;
62
+ criterion: string;
63
+ edge_id?: string;
64
+ }): Promise<{
65
+ version: number;
66
+ status: string;
67
+ criterion: string;
68
+ edge_id: string;
69
+ target_type: string;
70
+ }>;
71
+ //# sourceMappingURL=test-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-commands.d.ts","sourceRoot":"","sources":["../../src/local/test-commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAiBnF,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC,CAOA,CAAC;AAiDF,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AA0DD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC,CAAC;IACnG,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsF5B;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;GA0CA;AAID,gGAAgG;AAChG,eAAO,MAAM,4BAA4B,wDAAyD,CAAC;AAEnG;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;GAmDA"}
@@ -0,0 +1,292 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { access, readdir, readFile } from 'node:fs/promises';
3
+ import { basename, join } from 'node:path';
4
+ import { isRepositoryRelativePath } from '@software-dlc/graph/schema';
5
+ import { getAllowedEdgeTypes } from '@software-dlc/graph/validator';
6
+ import { writeJsonAtomically } from './projection.js';
7
+ /**
8
+ * `sdlc workspace test`: test nodes in a local workspace projection
9
+ * (docs/specs/environment-verification.md, EV-06). `import` proposes one test
10
+ * per e2e and staging spec file; `link` adds the verifies relationships agents
11
+ * make while planning, and with `--criterion` ties a test to one acceptance
12
+ * criterion. The commands edit projection files only; `sdlc
13
+ * workspace commit` validates as usual.
14
+ */
15
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
16
+ /** The spec directories the importer reads, with what their tests are valid in. */
17
+ export const TEST_SPEC_SOURCES = [
18
+ { directory: 'tests/e2e', suffix: '.e2e.spec.ts', environments: ['local'] },
19
+ {
20
+ directory: 'tests/e2e-staging',
21
+ suffix: '.staging.spec.ts',
22
+ environments: ['staging']
23
+ }
24
+ ];
25
+ async function readJsonDirectory(directory) {
26
+ let names;
27
+ try {
28
+ names = await readdir(directory);
29
+ }
30
+ catch (error) {
31
+ if (error.code === 'ENOENT')
32
+ return [];
33
+ throw error;
34
+ }
35
+ return Promise.all(names
36
+ .filter((name) => name.endsWith('.json'))
37
+ .sort()
38
+ .map(async (name) => JSON.parse(await readFile(join(directory, name), 'utf8'))));
39
+ }
40
+ async function exists(path) {
41
+ try {
42
+ await access(path);
43
+ return true;
44
+ }
45
+ catch {
46
+ return false;
47
+ }
48
+ }
49
+ /** The first `describe` title in a spec file, else its file name. */
50
+ export function specLabel(source, path) {
51
+ const match = /\b(?:test\.)?describe(?:\.\w+)?\(\s*(['"`])((?:(?!\1)[^\\]|\\.)+)\1/.exec(source);
52
+ return match?.[2]?.trim() || basename(path);
53
+ }
54
+ class ProjectionFacts {
55
+ nodes = new Map();
56
+ implementers = new Map();
57
+ tests_by_path = new Map();
58
+ constructor(nodes, edges) {
59
+ for (const node of nodes) {
60
+ this.nodes.set(node.id, node);
61
+ const locator = node.type === 'test' ? node.data.data.test?.locator : undefined;
62
+ if (locator && !locator.title)
63
+ this.tests_by_path.set(locator.path, node.id);
64
+ }
65
+ for (const edge of edges) {
66
+ if (edge.data?.data?.type !== 'implements')
67
+ continue;
68
+ this.implementers.set(edge.target, [
69
+ ...(this.implementers.get(edge.target) ?? []),
70
+ edge.source
71
+ ]);
72
+ }
73
+ }
74
+ /** The story a node is, or belongs to through its parent chain. */
75
+ storyOf(node_id) {
76
+ let current = this.nodes.get(node_id);
77
+ for (let depth = 0; current && depth < 32; depth++) {
78
+ if (current.type === 'story')
79
+ return current.id;
80
+ current = current.parentId ? this.nodes.get(current.parentId) : undefined;
81
+ }
82
+ return undefined;
83
+ }
84
+ /**
85
+ * The story a spec belongs to: the story of a node that is the spec (a
86
+ * function labelled with its file name) or whose source references name
87
+ * the file, or of a story or step that implements such a node.
88
+ */
89
+ placement(path) {
90
+ const name = basename(path).replace(/\.ts$/, '');
91
+ const stories = new Set();
92
+ for (const node of this.nodes.values()) {
93
+ if (node.type === 'test')
94
+ continue;
95
+ const is_spec = node.data.data.label === name ||
96
+ (node.data.meta?.evidence?.references ?? []).some((reference) => reference.resource?.id === path);
97
+ if (!is_spec)
98
+ continue;
99
+ for (const id of [node.id, ...(this.implementers.get(node.id) ?? [])]) {
100
+ const story = this.storyOf(id);
101
+ if (story)
102
+ stories.add(story);
103
+ }
104
+ }
105
+ // Deterministic when several stories claim the spec.
106
+ return [...stories].sort()[0];
107
+ }
108
+ }
109
+ export async function importTestNodes(input) {
110
+ const facts = new ProjectionFacts(await readJsonDirectory(join(input.projection_dir, 'nodes')), await readJsonDirectory(join(input.projection_dir, 'edges')));
111
+ if (input.parent_id !== undefined) {
112
+ const parent = facts.nodes.get(input.parent_id);
113
+ if (!parent)
114
+ throw new Error(`No node ${input.parent_id} in this projection.`);
115
+ if (parent.type !== 'feature' && parent.type !== 'story') {
116
+ throw new Error(`A test sits under a feature or story; ${input.parent_id} is a ${parent.type}.`);
117
+ }
118
+ }
119
+ const result = {
120
+ version: 1,
121
+ dry_run: input.dry_run === true,
122
+ created: [],
123
+ existing: [],
124
+ unplaced: [],
125
+ skipped: []
126
+ };
127
+ for (const source of TEST_SPEC_SOURCES) {
128
+ const names = (await readdir(join(input.repository_root, source.directory)).catch((error) => {
129
+ if (error.code === 'ENOENT')
130
+ return [];
131
+ throw error;
132
+ }))
133
+ .filter((name) => name.endsWith(source.suffix))
134
+ .sort();
135
+ for (const name of names) {
136
+ const path = `${source.directory}/${name}`;
137
+ if (!isRepositoryRelativePath(path)) {
138
+ // A locator must name it exactly; validation would refuse the node.
139
+ result.skipped.push(path);
140
+ continue;
141
+ }
142
+ const existing = facts.tests_by_path.get(path);
143
+ if (existing) {
144
+ result.existing.push({ node_id: existing, path });
145
+ continue;
146
+ }
147
+ const story = facts.placement(path);
148
+ const parent_id = story ?? input.parent_id;
149
+ if (!parent_id) {
150
+ result.unplaced.push(path);
151
+ continue;
152
+ }
153
+ const node_id = randomUUID();
154
+ result.created.push({
155
+ node_id,
156
+ path,
157
+ parent_id,
158
+ placed_by: story ? 'spec' : 'parent'
159
+ });
160
+ if (input.dry_run)
161
+ continue;
162
+ const label = specLabel(await readFile(join(input.repository_root, path), 'utf8'), path);
163
+ const test = {
164
+ kind: 'e2e',
165
+ locator: { path },
166
+ environments: [...source.environments]
167
+ };
168
+ await writeJsonAtomically(join(input.projection_dir, 'nodes', `${node_id}.json`), {
169
+ data: {
170
+ data: {
171
+ label,
172
+ description: `Proposed from ${path} by sdlc workspace test import.`,
173
+ test
174
+ },
175
+ style: {},
176
+ view: {}
177
+ },
178
+ id: node_id,
179
+ parentId: parent_id,
180
+ position: { x: 0, y: 0 },
181
+ type: 'test'
182
+ });
183
+ }
184
+ }
185
+ return result;
186
+ }
187
+ export async function linkTestNode(input) {
188
+ for (const id of [input.node_id, input.target_id]) {
189
+ if (!UUID.test(id))
190
+ throw new Error(`${id} is not a node id.`);
191
+ }
192
+ const read = async (id) => {
193
+ const path = join(input.projection_dir, 'nodes', `${id}.json`);
194
+ if (!(await exists(path)))
195
+ throw new Error(`No node ${id} in this projection.`);
196
+ return JSON.parse(await readFile(path, 'utf8'));
197
+ };
198
+ const test = await read(input.node_id);
199
+ if (test.type !== 'test') {
200
+ throw new Error(`Node ${input.node_id} is a ${test.type}, not a test.`);
201
+ }
202
+ const target = await read(input.target_id);
203
+ if (!getAllowedEdgeTypes('test', target.type).includes('verifies')) {
204
+ throw new Error(`A test cannot verify a ${target.type} node.`);
205
+ }
206
+ const edges_dir = join(input.projection_dir, 'edges');
207
+ for (const edge of await readJsonDirectory(edges_dir)) {
208
+ if (edge.source === input.node_id &&
209
+ edge.target === input.target_id &&
210
+ edge.data?.data?.type === 'verifies') {
211
+ return { version: 1, status: 'exists', edge_id: edge.id };
212
+ }
213
+ }
214
+ const edge_id = input.edge_id ?? randomUUID();
215
+ if (!UUID.test(edge_id))
216
+ throw new Error(`${edge_id} is not an edge id.`);
217
+ if (await exists(join(edges_dir, `${edge_id}.json`))) {
218
+ throw new Error(`Edge ${edge_id} already exists; choose another id.`);
219
+ }
220
+ await writeJsonAtomically(join(edges_dir, `${edge_id}.json`), {
221
+ data: { data: { type: 'verifies', label: 'verifies' }, style: {}, view: {} },
222
+ id: edge_id,
223
+ source: input.node_id,
224
+ style: { stroke: '#fff' },
225
+ target: input.target_id,
226
+ type: 'standard',
227
+ zIndex: 1
228
+ });
229
+ return { version: 1, status: 'linked', edge_id, target_type: target.type };
230
+ }
231
+ /** The criterion verifications a test discharges; readiness reports coverage for these only. */
232
+ export const TEST_CRITERION_VERIFICATIONS = ['unit_test', 'integration_test', 'e2e_test'];
233
+ /**
234
+ * `link <test> --criterion <node>#<criterion>`: ties a test to one acceptance
235
+ * criterion (docs/specs/testing-and-deployment-domain-model.md, Tying a test to
236
+ * one criterion). It adds the test to the criterion's `test_ids` and the
237
+ * `verifies` relationship to the criterion's node, which validation requires
238
+ * together. Everything is checked before anything is written; running it again
239
+ * changes nothing.
240
+ */
241
+ export async function linkTestCriterion(input) {
242
+ const separator = input.criterion.indexOf('#');
243
+ const target_id = separator > 0 ? input.criterion.slice(0, separator) : '';
244
+ const criterion_id = separator > 0 ? input.criterion.slice(separator + 1) : '';
245
+ if (!target_id || !criterion_id) {
246
+ throw new Error(`${input.criterion} is not a criterion address; write <node>#<criterion>.`);
247
+ }
248
+ for (const id of [input.node_id, target_id]) {
249
+ if (!UUID.test(id))
250
+ throw new Error(`${id} is not a node id.`);
251
+ }
252
+ const target_path = join(input.projection_dir, 'nodes', `${target_id}.json`);
253
+ if (!(await exists(target_path)))
254
+ throw new Error(`No node ${target_id} in this projection.`);
255
+ const target = JSON.parse(await readFile(target_path, 'utf8'));
256
+ const criteria = target.data.data.acceptance_criteria;
257
+ const criterion = Array.isArray(criteria)
258
+ ? criteria.find((candidate) => candidate?.id === criterion_id)
259
+ : undefined;
260
+ if (!criterion) {
261
+ throw new Error(`Node ${target_id} has no acceptance criterion ${criterion_id}.`);
262
+ }
263
+ // Readiness counts only these criteria, so a link to any other would never be reported.
264
+ if (!TEST_CRITERION_VERIFICATIONS.includes(criterion.verification)) {
265
+ const verification = typeof criterion.verification === 'string' ? criterion.verification : 'nothing named';
266
+ throw new Error(`Criterion ${input.criterion} is verified by ${verification}, not a unit, integration or e2e test, so no test can be linked to it.`);
267
+ }
268
+ if (criterion.test_ids !== undefined && !Array.isArray(criterion.test_ids)) {
269
+ throw new Error(`Criterion ${input.criterion} has test_ids that are not a list.`);
270
+ }
271
+ // linkTestNode checks the test and the target type before it writes.
272
+ const edge = await linkTestNode({
273
+ projection_dir: input.projection_dir,
274
+ node_id: input.node_id,
275
+ target_id,
276
+ edge_id: input.edge_id
277
+ });
278
+ const test_ids = criterion.test_ids ?? [];
279
+ const listed = test_ids.includes(input.node_id);
280
+ if (!listed) {
281
+ criterion.test_ids = [...test_ids, input.node_id];
282
+ await writeJsonAtomically(target_path, target);
283
+ }
284
+ return {
285
+ version: 1,
286
+ status: listed && edge.status === 'exists' ? 'exists' : 'linked',
287
+ criterion: `${target_id}#${criterion_id}`,
288
+ edge_id: edge.edge_id,
289
+ target_type: target.type
290
+ };
291
+ }
292
+ //# sourceMappingURL=test-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-commands.js","sourceRoot":"","sources":["../../src/local/test-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { type GraphClientOptions, type GraphClientRequestOptions } from '@software-dlc/graph/client';
2
+ import type { GraphSyncBinding, GraphSyncHash, GraphSyncManifest, WorktreeChangeResponse, WorktreeTreeSavePrepareRequest } from '@software-dlc/graph/types';
3
+ import type { LocalSdlcStore, PendingWorktreeChange } from './store.js';
4
+ /**
5
+ * The client side of a manifest version 2 worktree save
6
+ * (docs/specs/bulk-graph-transfer.md, rollout step 2). The save opens from
7
+ * roots alone, asks which manifest nodes and objects the server lacks,
8
+ * uploads those, and finalizes, so no request grows with the change.
9
+ */
10
+ export declare const TREE_SAVE_PROTOCOL = "graph-sync-v2";
11
+ /** The exit status of a save left finalizing in the background (EX_TEMPFAIL). */
12
+ export declare const TREE_SAVE_STILL_FINALIZING_EXIT_CODE = 75;
13
+ /**
14
+ * The server is still finalizing the save in the background. Nothing is lost:
15
+ * the change stays pending, and `sdlc sync` resumes by polling.
16
+ */
17
+ export declare class TreeSaveStillFinalizingError extends Error {
18
+ readonly exit_code = 75;
19
+ readonly transaction_id: string;
20
+ constructor(transaction_id: string);
21
+ }
22
+ export type TreeSavePayload = {
23
+ protocol: typeof TREE_SAVE_PROTOCOL;
24
+ prepare_request: WorktreeTreeSavePrepareRequest;
25
+ /** The version 1 root of the base the save was built on. */
26
+ base_sync_root_hash: GraphSyncHash;
27
+ /** The target tree's nodes the base tree lacks. */
28
+ changed_manifest_node_hashes: GraphSyncHash[];
29
+ /** The objects of the bindings the save changes. */
30
+ changed_object_hashes: GraphSyncHash[];
31
+ target_manifest: GraphSyncManifest;
32
+ };
33
+ /** Why a save is sent with manifest version 1. */
34
+ export type TreeSaveUnavailable = {
35
+ reason: 'not_advertised';
36
+ } | {
37
+ reason: 'negotiation_failed';
38
+ status: number;
39
+ detail: string | null;
40
+ } | {
41
+ reason: 'state_entity_id';
42
+ entity_id: string | null;
43
+ } | {
44
+ reason: 'tree_root_unavailable';
45
+ } | {
46
+ reason: 'target_entity_id';
47
+ detail: string;
48
+ } | {
49
+ reason: 'worktree_moved';
50
+ current_revision: number | null;
51
+ current_sync_revision: number | null;
52
+ };
53
+ export declare function operationRequestOptions(options?: GraphClientRequestOptions): GraphClientRequestOptions | undefined;
54
+ /**
55
+ * Asks the server which manifest versions a save may use, offering the base
56
+ * the session holds so an unchanged worktree answers with no graph content.
57
+ * Returns the base's version 2 root when the save can use version 2. The
58
+ * response is read field by field: a server may add keys this client does
59
+ * not know.
60
+ */
61
+ export declare function negotiateTreeSave(input: {
62
+ client: GraphClientOptions;
63
+ worktree_id: string;
64
+ sync_revision: number;
65
+ sync_root_hash: GraphSyncHash;
66
+ request_options?: GraphClientRequestOptions;
67
+ }): Promise<{
68
+ available: true;
69
+ base_tree_root_hash: GraphSyncHash;
70
+ /** The node layout versions a prepare request may carry; [] from an older server. */
71
+ supported_save_layout_versions: number[];
72
+ } | ({
73
+ available: false;
74
+ /**
75
+ * What the server declared when it answered; absent when it did not
76
+ * answer (negotiation_failed, or an empty answer).
77
+ */
78
+ supported_save_layout_versions?: number[];
79
+ } & TreeSaveUnavailable)>;
80
+ /**
81
+ * Builds the base and target trees and names what the save changes. The base
82
+ * tree's root must be the one the server gave for the same state: the two
83
+ * parties compute a tree from its bindings alone.
84
+ */
85
+ export declare function planTreeSave(input: {
86
+ base_manifest: GraphSyncManifest;
87
+ base_tree_root_hash: GraphSyncHash;
88
+ target_manifest: GraphSyncManifest;
89
+ changed_bindings: GraphSyncBinding[];
90
+ /** The canonical JSON byte count of each object of the target graph. */
91
+ object_byte_counts: ReadonlyMap<GraphSyncHash, number>;
92
+ }): {
93
+ available: true;
94
+ base_tree_root_hash: GraphSyncHash;
95
+ target_tree_root_hash: GraphSyncHash;
96
+ changed_manifest_node_hashes: GraphSyncHash[];
97
+ changed_object_hashes: GraphSyncHash[];
98
+ } | ({
99
+ available: false;
100
+ } & TreeSaveUnavailable);
101
+ export declare function parseTreeSavePayload(payload_json: string): TreeSavePayload | null;
102
+ /**
103
+ * Sends a journaled version 2 save, or resumes one from the transaction the
104
+ * pending change recorded. Every step may be repeated: the server answers a
105
+ * finished save with its receipt, and holds what was already uploaded.
106
+ */
107
+ export declare function executeTreeSave(input: {
108
+ store: LocalSdlcStore;
109
+ client: GraphClientOptions;
110
+ worktree_id: string;
111
+ pending_change: PendingWorktreeChange;
112
+ payload: TreeSavePayload;
113
+ request_options?: GraphClientRequestOptions;
114
+ /** The save negotiated just before it was journaled, so it prepares as built. */
115
+ just_negotiated?: boolean;
116
+ }): Promise<WorktreeChangeResponse>;
117
+ //# sourceMappingURL=tree-save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-save.d.ts","sourceRoot":"","sources":["../../src/local/tree-save.ts"],"names":[],"mappings":"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"}