@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,413 @@
1
+ import { checkOperation, currentOperation } from './operation.js';
2
+ import { execFile } from 'node:child_process';
3
+ import { existsSync } from 'node:fs';
4
+ import { lstat, readFile } from 'node:fs/promises';
5
+ import { homedir } from 'node:os';
6
+ import { isAbsolute, join, resolve } from 'node:path';
7
+ import { promisify } from 'node:util';
8
+ const execFileAsync = promisify(execFile);
9
+ async function gitValue(cwd, args, input) {
10
+ checkOperation();
11
+ const command = execFileAsync('git', args, {
12
+ cwd,
13
+ encoding: 'utf8',
14
+ signal: currentOperation()?.signal
15
+ });
16
+ if (input !== undefined) {
17
+ // A git that exits before reading it all fails the command, not the process.
18
+ command.child.stdin?.on('error', () => { });
19
+ command.child.stdin?.end(input);
20
+ }
21
+ const signal = currentOperation()?.signal;
22
+ let kill_timer;
23
+ const on_abort = () => {
24
+ kill_timer = setTimeout(() => command.child.kill('SIGKILL'), 1000);
25
+ };
26
+ const closed = new Promise((resolve) => command.child.once('close', () => {
27
+ clearTimeout(kill_timer);
28
+ signal?.removeEventListener('abort', on_abort);
29
+ resolve();
30
+ }));
31
+ signal?.addEventListener('abort', on_abort, { once: true });
32
+ if (signal?.aborted)
33
+ on_abort();
34
+ const [result] = await Promise.allSettled([command, closed]);
35
+ checkOperation();
36
+ if (result.status === 'rejected')
37
+ throw result.reason;
38
+ return result.value.stdout.trim();
39
+ }
40
+ export async function discoverGitWorktree(cwd = process.cwd()) {
41
+ const [repository_root, git_dir, git_common_dir, head, ref, status] = await Promise.allSettled([
42
+ gitValue(cwd, ['rev-parse', '--show-toplevel']),
43
+ gitValue(cwd, ['rev-parse', '--path-format=absolute', '--git-dir']),
44
+ gitValue(cwd, [
45
+ 'rev-parse',
46
+ '--path-format=absolute',
47
+ '--git-common-dir'
48
+ ]),
49
+ gitValue(cwd, ['rev-parse', 'HEAD']),
50
+ gitValue(cwd, ['symbolic-ref', '--quiet', 'HEAD']).catch(() => ''),
51
+ gitValue(cwd, ['status', '--porcelain=v1'])
52
+ ]);
53
+ const results = [repository_root, git_dir, git_common_dir, head, ref, status];
54
+ const failure = results.find((result) => result.status === 'rejected');
55
+ if (failure?.status === 'rejected')
56
+ throw failure.reason;
57
+ checkOperation();
58
+ const values = results.map((result) => result.status === 'fulfilled' ? result.value : '');
59
+ return {
60
+ repository_root: values[0],
61
+ git_dir: values[1],
62
+ git_common_dir: values[2],
63
+ ref: values[4] || null,
64
+ head: values[3],
65
+ is_dirty: values[5].length > 0
66
+ };
67
+ }
68
+ export function canonicalGitRepositoryIdentity(remote_url, cwd = process.cwd()) {
69
+ const value = remote_url.trim();
70
+ if (!value)
71
+ throw new Error('Git remote URL must not be empty.');
72
+ const scp = value.match(/^([^@\s]+@)?([^:/\s]+):(.+)$/);
73
+ if (scp && !value.includes('://')) {
74
+ const path = scp[3].replace(/^\/+|\/+$/g, '').replace(/\.git$/i, '');
75
+ return `${scp[2].toLowerCase()}/${path}`;
76
+ }
77
+ try {
78
+ const url = new URL(value);
79
+ if (url.protocol === 'file:') {
80
+ return `file://${resolve(decodeURIComponent(url.pathname))}`;
81
+ }
82
+ const path = url.pathname.replace(/^\/+|\/+$/g, '').replace(/\.git$/i, '');
83
+ return `${url.hostname.toLowerCase()}/${path}`;
84
+ }
85
+ catch {
86
+ return `file://${resolve(cwd, value.replace(/\.git$/i, ''))}`;
87
+ }
88
+ }
89
+ /**
90
+ * The project's integration branch (project.py INTEGRATION_BRANCH), from the
91
+ * coordination engine's project.json where engine_config.py finds it: beside
92
+ * an engine inside the repository (scripts/agent-coordination/), else in the
93
+ * worktree's sdlc-coordination/, else in the Git common dir's (a no-footprint
94
+ * repository's), which a repository the user's setup registered reads first.
95
+ * A file that is missing, unreadable, or names no valid branch gives main,
96
+ * the engine's default.
97
+ */
98
+ export async function integrationBranch(cwd = process.cwd()) {
99
+ const [top, common] = (await gitValue(cwd, [
100
+ 'rev-parse',
101
+ '--path-format=absolute',
102
+ '--show-toplevel',
103
+ '--git-common-dir'
104
+ ]).catch(() => '')).split('\n');
105
+ if (!top || !common)
106
+ return 'main';
107
+ const engine = join(top, 'scripts', 'agent-coordination', 'project.json');
108
+ const own = join(top, 'sdlc-coordination');
109
+ const shared = join(common, 'sdlc-coordination');
110
+ // engine_config.py folder: one folder, never the other as a fallback, and a
111
+ // shared one only when it is a real folder, not a link to one.
112
+ const sharedIsFolder = await lstat(shared).then((stat) => stat.isDirectory(), () => false);
113
+ const folder = sharedIsFolder && (!existsSync(own) || (await noFootprintListed(common)))
114
+ ? shared
115
+ : own;
116
+ const path = existsSync(engine) ? engine : join(folder, 'project.json');
117
+ let settings;
118
+ try {
119
+ settings = JSON.parse(await readFile(path, 'utf8'));
120
+ }
121
+ catch {
122
+ return 'main';
123
+ }
124
+ const branch = settings
125
+ ?.integration?.branch;
126
+ return typeof branch === 'string' &&
127
+ !branch.startsWith('refs/') &&
128
+ INTEGRATION_BRANCH.test(branch)
129
+ ? branch
130
+ : 'main';
131
+ }
132
+ // A plain branch name, as project.py BRANCH accepts it.
133
+ const INTEGRATION_BRANCH = /^(?!-)(?!.*\.\.)(?!.*\/\/)(?!.*@\{)(?!.*\.lock(\/|$))[A-Za-z0-9._/-]+(?<![./])$/;
134
+ // Whether the user's setup registered the repository of this Git common dir as
135
+ // no-footprint (engine_config.py listed). A list that is a link, not a plain
136
+ // file, or over 1 MiB registers nothing.
137
+ async function noFootprintListed(common) {
138
+ const base = process.env.XDG_CONFIG_HOME && isAbsolute(process.env.XDG_CONFIG_HOME)
139
+ ? process.env.XDG_CONFIG_HOME
140
+ : join(homedir(), '.config');
141
+ const path = join(base, 'softwaredlc', 'no-footprint.json');
142
+ try {
143
+ const stat = await lstat(path);
144
+ if (!stat.isFile() || stat.size > 1 << 20)
145
+ return false;
146
+ const doc = JSON.parse(await readFile(path, 'utf8'));
147
+ return (doc?.schema_version === 1 &&
148
+ Array.isArray(doc.repositories) &&
149
+ doc.repositories.includes(resolve(common)));
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ }
155
+ /**
156
+ * The remote a source reference's repository is named from: the one the local
157
+ * integration branch (integrationBranch), else main, else master tracks, else
158
+ * the one the current branch tracks, else origin (sources.py tracked_remote).
159
+ * In a fork setup origin is the developer's fork and the integration branch
160
+ * tracks upstream. Branch configuration is shared by every worktree, so a
161
+ * detached child workspace or an untracked thread branch names the repository
162
+ * as the main checkout does.
163
+ */
164
+ export async function trackedRemoteName(cwd = process.cwd()) {
165
+ const current = await gitValue(cwd, [
166
+ 'symbolic-ref',
167
+ '--quiet',
168
+ '--short',
169
+ 'HEAD'
170
+ ]).catch(() => '');
171
+ for (const branch of new Set([
172
+ await integrationBranch(cwd),
173
+ 'main',
174
+ 'master',
175
+ current
176
+ ])) {
177
+ if (!branch)
178
+ continue;
179
+ const tracked = await gitValue(cwd, [
180
+ 'config',
181
+ '--get',
182
+ `branch.${branch}.remote`
183
+ ]).catch(() => '');
184
+ if (tracked && tracked !== '.')
185
+ return tracked;
186
+ }
187
+ return 'origin';
188
+ }
189
+ /**
190
+ * `owner/name` from a hosted remote URL (https or ssh), or null for a local
191
+ * path or file URL, whose last two directories name no repository
192
+ * (sources.py owner_name). A hosted URL always has a colon (scheme or
193
+ * host:path); a relative path has none.
194
+ */
195
+ export function remoteOwnerName(url) {
196
+ if (!url || !url.includes(':') || /^(?:[/.~]|file:)/.test(url))
197
+ return null;
198
+ const match = url.match(/[:/]([^/:]+)\/([^/]+?)(?:\.git)?\/?$/);
199
+ return match ? `${match[1]}/${match[2]}` : null;
200
+ }
201
+ /**
202
+ * Every `owner/name` the repository at `cwd` goes by at `commit`, the one
203
+ * source references record first (sources.py repository_names, the same set).
204
+ * The remotes, in order, are its tracked remote (trackedRemoteName), origin,
205
+ * the other remotes a local branch tracks, then any other whose
206
+ * remote-tracking branches contain `commit` or its first-parent root commit
207
+ * (they share its history); the first of them naming an `owner/name` whose branches
208
+ * contain `commit` comes first, else the first naming one; origin, when first,
209
+ * gives way to a remote named upstream (Git's name for a fork's parent) when
210
+ * its main line (origin/HEAD, else main, else master) holds nothing past
211
+ * upstream's branches. A fork (origin, however it is named)
212
+ * and its upstream are one repository here: a fork whose only branch tracks
213
+ * the fork while upstream holds the commit, or whose main line sits level
214
+ * with or behind upstream, pushed feature branches or not, is named from
215
+ * upstream; a fork whose main line has commits upstream lacks, and a
216
+ * canonical origin beside a fork of another name, keep their own, and a
217
+ * commit no remote holds yet names origin first, upstream still one of its
218
+ * names.
219
+ * A remote that neither a branch tracks nor shares the commit's history is not.
220
+ */
221
+ export async function repositoryNames(cwd = process.cwd(), commit = 'HEAD') {
222
+ const { first, named } = await namedRemotes(cwd, commit);
223
+ return [
224
+ ...new Set([...(first ? [first.name] : []), ...named.map(({ name }) => name)])
225
+ ];
226
+ }
227
+ /**
228
+ * The remote whose `owner/name` source references record first
229
+ * (repositoryNames), or null when no remote names one. A source binding made
230
+ * with no remote named uses it, so a workspace commit's remote identity names
231
+ * the repository its references name.
232
+ */
233
+ export async function namingRemote(cwd = process.cwd(), commit = 'HEAD') {
234
+ const { first, named } = await namedRemotes(cwd, commit);
235
+ return (first ?? named[0])?.remote ?? null;
236
+ }
237
+ async function namedRemotes(cwd, commit) {
238
+ const remotes = await gitRemoteNames(cwd);
239
+ const tracked = (await gitValue(cwd, ['config', '--get-regexp', '^branch\\..*\\.remote$']).catch(() => ''))
240
+ .split('\n')
241
+ .map((line) => line.trim().split(/\s+/).pop() ?? '')
242
+ .filter(Boolean);
243
+ // A remote's name may hold a slash: match each ref by the longest prefix.
244
+ const byLength = [...remotes].sort((a, b) => b.length - a.length);
245
+ // Each remote's remote-tracking branch commits that contain `contained`, or
246
+ // all of them when it is null.
247
+ const remoteTips = async (contained) => {
248
+ const tips = new Map();
249
+ const lines = (await gitValue(cwd, [
250
+ 'for-each-ref',
251
+ ...(contained === null ? [] : ['--contains', contained]),
252
+ '--format=%(objectname) %(refname)',
253
+ 'refs/remotes'
254
+ ]).catch(() => '')).split('\n');
255
+ for (const line of lines) {
256
+ const [tip, ref = ''] = line.trim().split(' ');
257
+ const remote = byLength.find((name) => ref.startsWith(`refs/remotes/${name}/`));
258
+ if (remote)
259
+ tips.set(remote, [...(tips.get(remote) ?? []), tip]);
260
+ }
261
+ return tips;
262
+ };
263
+ const remotesWith = async (contained) => [
264
+ ...(await remoteTips(contained)).keys()
265
+ ];
266
+ const tips = await remoteTips(commit);
267
+ const containing = [...tips.keys()];
268
+ // Sharing history: a branch holds the commit's first-parent root, so a
269
+ // fork's upstream stays one after both move on, while a library merged in
270
+ // (a subtree) has a root of its own.
271
+ const root = (await gitValue(cwd, [
272
+ 'rev-list',
273
+ '--first-parent',
274
+ '--max-parents=0',
275
+ commit
276
+ ]).catch(() => ''))
277
+ .split(/\s+/)
278
+ .filter(Boolean)[0];
279
+ const sharing = root ? await remotesWith(root) : [];
280
+ const named = [];
281
+ for (const remote of new Set([
282
+ await trackedRemoteName(cwd),
283
+ 'origin',
284
+ ...tracked,
285
+ ...containing,
286
+ ...sharing
287
+ ])) {
288
+ if (!remotes.includes(remote))
289
+ continue;
290
+ const url = await gitValue(cwd, ['remote', 'get-url', '--', remote]).catch(() => '');
291
+ const name = remoteOwnerName(url);
292
+ if (name)
293
+ named.push({ remote, name });
294
+ }
295
+ const holders = named.filter(({ remote }) => tips.has(remote));
296
+ let first = holders[0];
297
+ // Origin level with or behind upstream: its main line holds nothing past
298
+ // upstream's branches; a pushed feature branch is no commits of the fork's
299
+ // own. The tips go on stdin, each left out as ^<commit> (git before 2.42
300
+ // takes no --not there): a fork mirroring upstream's branches has more
301
+ // than a command line holds.
302
+ const upstream = holders.find(({ remote }) => remote === 'upstream');
303
+ if (first?.remote === 'origin' && upstream) {
304
+ let main = '';
305
+ // The branch refs/remotes/origin/HEAD names, else main, else master.
306
+ for (const ref of ['HEAD', 'main', 'master']) {
307
+ main = await gitValue(cwd, [
308
+ 'rev-parse',
309
+ '--verify',
310
+ '--quiet',
311
+ `refs/remotes/origin/${ref}^{commit}`
312
+ ]).catch(() => '');
313
+ if (main)
314
+ break;
315
+ }
316
+ const revs = [
317
+ ...(main ? [main] : new Set(tips.get('origin'))),
318
+ ...[...new Set((await remoteTips(null)).get('upstream'))].map((tip) => `^${tip}`)
319
+ ];
320
+ const past = await gitValue(cwd, ['rev-list', '--count', '--stdin'], `${revs.join('\n')}\n`).catch(() => '');
321
+ if (past === '0')
322
+ first = upstream;
323
+ }
324
+ return { first, named };
325
+ }
326
+ /** The names of the repository's remotes. */
327
+ export async function gitRemoteNames(cwd = process.cwd()) {
328
+ return (await gitValue(cwd, ['remote']).catch(() => ''))
329
+ .split(/\s+/)
330
+ .filter(Boolean);
331
+ }
332
+ export async function discoverGitRemoteIdentity(cwd = process.cwd(), remote_name = 'origin') {
333
+ const normalized_name = remote_name.trim();
334
+ if (!normalized_name)
335
+ throw new Error('Git remote name must not be empty.');
336
+ let remote_url;
337
+ try {
338
+ remote_url = await gitValue(cwd, [
339
+ 'remote',
340
+ 'get-url',
341
+ '--',
342
+ normalized_name
343
+ ]);
344
+ }
345
+ catch {
346
+ throw new Error(`Git remote ${normalized_name} was not found.`);
347
+ }
348
+ return {
349
+ remote_name: normalized_name,
350
+ remote_url,
351
+ repository_identity: canonicalGitRepositoryIdentity(remote_url, cwd)
352
+ };
353
+ }
354
+ export async function assertLocalWorkspacePathsIgnored(cwd) {
355
+ for (const path of ['sdlc/', '.sdlc/state/']) {
356
+ try {
357
+ await execFileAsync('git', ['check-ignore', '--quiet', '--no-index', '--', path], { cwd, encoding: 'utf8' });
358
+ }
359
+ catch (error) {
360
+ const code = typeof error === 'object' && error !== null && 'code' in error
361
+ ? error.code
362
+ : null;
363
+ if (code === 1) {
364
+ throw new Error(`Refusing local workspace setup because ${path} is not ignored by Git.`);
365
+ }
366
+ throw error;
367
+ }
368
+ }
369
+ }
370
+ export async function createDetachedGitWorktree(input) {
371
+ if (!isAbsolute(input.target_path)) {
372
+ throw new Error('Git worktree target path must be absolute.');
373
+ }
374
+ const target_path = resolve(input.target_path);
375
+ const source = await discoverGitWorktree(input.source_cwd);
376
+ const commit_id = input.commit_id.trim();
377
+ if (!commit_id)
378
+ throw new Error('Git worktree commit must not be empty.');
379
+ await execFileAsync('git', ['worktree', 'add', '--detach', '--', target_path, commit_id], { cwd: source.repository_root, encoding: 'utf8' });
380
+ const created = await discoverGitWorktree(target_path);
381
+ if (created.git_common_dir !== source.git_common_dir ||
382
+ created.head !== commit_id ||
383
+ created.ref !== null) {
384
+ await removeGitWorktree({
385
+ repository_cwd: source.repository_root,
386
+ target_path,
387
+ force: true
388
+ }).catch(() => undefined);
389
+ throw new Error('Created Git worktree does not match its requested base.');
390
+ }
391
+ return created;
392
+ }
393
+ export async function removeGitWorktree(input) {
394
+ if (!isAbsolute(input.target_path)) {
395
+ throw new Error('Git worktree target path must be absolute.');
396
+ }
397
+ const args = ['worktree', 'remove'];
398
+ if (input.force)
399
+ args.push('--force');
400
+ args.push('--', resolve(input.target_path));
401
+ await execFileAsync('git', args, {
402
+ cwd: input.repository_cwd,
403
+ encoding: 'utf8'
404
+ });
405
+ }
406
+ export async function listGitWorktreeStatus(cwd, input = {}) {
407
+ const args = ['status', '--porcelain=v1', '--untracked-files=all'];
408
+ if (input.include_ignored)
409
+ args.push('--ignored');
410
+ const status = await gitValue(cwd, args);
411
+ return status ? status.split('\n') : [];
412
+ }
413
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/local/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import { type NodeOrigin, type NodeOriginResult, type PortableGraph } from '@software-dlc/graph/types';
2
+ import type { LocalClaimView } from './workspace-claim-views.js';
3
+ import type { LocalBuiltView } from './workspace-built-content.js';
4
+ /** Where a term matched a node, best first. */
5
+ export type FindReason = 'label' | 'id' | 'description' | 'criteria' | 'data';
6
+ export declare const DEFAULT_FIND_LIMIT = 20;
7
+ export declare const DEFAULT_SHOW_BUDGET = 2000;
8
+ /** Relations listed per direction before the rest are only counted. */
9
+ export declare const SHOW_RELATION_LIMIT = 50;
10
+ export type FindRow = {
11
+ id: string;
12
+ t: string;
13
+ l: string;
14
+ d?: string;
15
+ p?: string;
16
+ pl?: string;
17
+ /** Built here or off the shelf; absent when the node has no origin. */
18
+ o?: NodeOrigin;
19
+ r: FindReason[];
20
+ /** With --view built: still built, but a merged plan removes it. */
21
+ removed?: true;
22
+ };
23
+ export type FindResult = {
24
+ version: 1;
25
+ view: LocalClaimView;
26
+ workspace_id: string | null;
27
+ commit_id: string | null;
28
+ terms: string[];
29
+ types?: string[];
30
+ origin?: NodeOrigin;
31
+ summary: {
32
+ /** Rows returned. */
33
+ n: number;
34
+ /** Nodes matching at least one term. */
35
+ matched_n: number;
36
+ /** Nodes matching every term. */
37
+ all_terms_n: number;
38
+ /** Matching nodes left out by the limit. */
39
+ omitted_n: number;
40
+ /** Matching nodes built here, with or without --origin. */
41
+ built_n: number;
42
+ /** Matching nodes off the shelf, with or without --origin. */
43
+ shelf_n: number;
44
+ };
45
+ n: FindRow[];
46
+ projection_dirty?: boolean;
47
+ /** With --view built: what blast radius reports of the same view. */
48
+ marked_for_removal?: LocalBuiltView['marked_for_removal'];
49
+ validation?: LocalBuiltView['validation'];
50
+ warnings?: string[];
51
+ };
52
+ /**
53
+ * Words a find of several words leaves out: common English words, and graph words
54
+ * a question names that every node would match. Words under 3 characters go anyway.
55
+ */
56
+ export declare const FIND_STOP_WORDS: ReadonlySet<string>;
57
+ /**
58
+ * Search terms from find's arguments. An argument holding spaces counts as its
59
+ * words. A find of one word keeps it as given, so ids, short words and words
60
+ * after -- still match; once there are more, each loses edge punctuation and a
61
+ * trailing 's, and short and stop words are left out unless none would remain,
62
+ * so a pasted question gives the same terms quoted or not. Terms are lowercased
63
+ * and distinct; phrases are the arguments of several words, for ranking.
64
+ */
65
+ export declare function parseFindTerms(args: readonly string[]): {
66
+ terms: string[];
67
+ phrases: string[];
68
+ };
69
+ export declare function normalizeTerms(args: readonly string[]): string[];
70
+ export declare function findGraphEntities(input: {
71
+ graph: PortableGraph;
72
+ terms: readonly string[];
73
+ types?: readonly string[];
74
+ origin?: NodeOrigin;
75
+ limit?: number;
76
+ view?: LocalClaimView;
77
+ workspace_id?: string;
78
+ commit_id?: string;
79
+ /** Ids the built view marks for removal. */
80
+ removed?: ReadonlySet<string>;
81
+ }): FindResult;
82
+ /** A relation of a shown entity: the edge, its type, and the node at its other end. */
83
+ export type ShowRelation = {
84
+ e: string;
85
+ rel: string;
86
+ id: string;
87
+ t: string;
88
+ l: string;
89
+ };
90
+ export type ShowNode = {
91
+ kind: 'node';
92
+ id: string;
93
+ t: string;
94
+ l: string;
95
+ p?: string;
96
+ pl?: string;
97
+ /** Built here or off the shelf, and why; absent when the node has no origin. */
98
+ origin?: NodeOriginResult;
99
+ /** Domain data without label; a field longer than the budget gives its size in chars, and a text field its start. */
100
+ data: Record<string, unknown>;
101
+ /** The files the node's source references cite. */
102
+ sources?: Array<{
103
+ path: string;
104
+ repository?: string;
105
+ }>;
106
+ out: ShowRelation[];
107
+ in: ShowRelation[];
108
+ out_omitted?: number;
109
+ in_omitted?: number;
110
+ /** With --view built: still built, but a merged plan removes it. */
111
+ removed?: true;
112
+ };
113
+ export type ShowEdge = {
114
+ kind: 'edge';
115
+ id: string;
116
+ rel: string;
117
+ l?: string;
118
+ /** Domain data without type and label, budgeted as a node's is. */
119
+ data: Record<string, unknown>;
120
+ sources?: Array<{
121
+ path: string;
122
+ repository?: string;
123
+ }>;
124
+ s: {
125
+ id: string;
126
+ t: string;
127
+ l: string;
128
+ };
129
+ t: {
130
+ id: string;
131
+ t: string;
132
+ l: string;
133
+ };
134
+ removed?: true;
135
+ };
136
+ export type ShowResult = {
137
+ version: 1;
138
+ view: LocalClaimView;
139
+ workspace_id: string | null;
140
+ commit_id: string | null;
141
+ /** Per-field character budget, or null for --full. */
142
+ budget: number | null;
143
+ entities: Array<ShowNode | ShowEdge | {
144
+ kind: 'node' | 'edge';
145
+ id: string;
146
+ full: unknown;
147
+ origin?: NodeOriginResult;
148
+ removed?: true;
149
+ }>;
150
+ /** Ids that are no node or edge of the graph read. */
151
+ missing: string[];
152
+ projection_dirty?: boolean;
153
+ marked_for_removal?: LocalBuiltView['marked_for_removal'];
154
+ validation?: LocalBuiltView['validation'];
155
+ warnings?: string[];
156
+ };
157
+ export declare function showGraphEntities(input: {
158
+ graph: PortableGraph;
159
+ ids: readonly string[];
160
+ /** Per-field character budget; null returns each entity as stored. */
161
+ budget?: number | null;
162
+ view?: LocalClaimView;
163
+ workspace_id?: string;
164
+ commit_id?: string;
165
+ /** Ids the built view marks for removal. */
166
+ removed?: ReadonlySet<string>;
167
+ }): ShowResult;
168
+ //# sourceMappingURL=graph-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-read.d.ts","sourceRoot":"","sources":["../../src/local/graph-read.ts"],"names":[],"mappings":"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"}