@aligndottech/cli 0.49.0 → 0.51.0

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 (825) hide show
  1. package/README.md +5 -3
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +32 -8
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +4 -1
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/check.d.ts.map +1 -1
  9. package/dist/commands/check.js +18 -2
  10. package/dist/commands/check.js.map +1 -1
  11. package/dist/commands/config.d.ts +8 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +33 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/connect-agents.d.ts.map +1 -1
  16. package/dist/commands/connect-agents.js +3 -1
  17. package/dist/commands/connect-agents.js.map +1 -1
  18. package/dist/commands/connect.d.ts +5 -0
  19. package/dist/commands/connect.d.ts.map +1 -1
  20. package/dist/commands/connect.js +24 -0
  21. package/dist/commands/connect.js.map +1 -1
  22. package/dist/commands/env.d.ts.map +1 -1
  23. package/dist/commands/env.js +11 -0
  24. package/dist/commands/env.js.map +1 -1
  25. package/dist/commands/import/confluence.d.ts.map +1 -1
  26. package/dist/commands/import/confluence.js +24 -5
  27. package/dist/commands/import/confluence.js.map +1 -1
  28. package/dist/commands/import/docs.js +2 -2
  29. package/dist/commands/import/git.d.ts.map +1 -1
  30. package/dist/commands/import/git.js +15 -5
  31. package/dist/commands/import/git.js.map +1 -1
  32. package/dist/commands/import/github.d.ts.map +1 -1
  33. package/dist/commands/import/github.js +34 -7
  34. package/dist/commands/import/github.js.map +1 -1
  35. package/dist/commands/import/gitlab.d.ts.map +1 -1
  36. package/dist/commands/import/gitlab.js +10 -5
  37. package/dist/commands/import/gitlab.js.map +1 -1
  38. package/dist/commands/import/jira.d.ts.map +1 -1
  39. package/dist/commands/import/jira.js +10 -5
  40. package/dist/commands/import/jira.js.map +1 -1
  41. package/dist/commands/import/linear.d.ts.map +1 -1
  42. package/dist/commands/import/linear.js +10 -5
  43. package/dist/commands/import/linear.js.map +1 -1
  44. package/dist/commands/import/notion.d.ts.map +1 -1
  45. package/dist/commands/import/notion.js +10 -5
  46. package/dist/commands/import/notion.js.map +1 -1
  47. package/dist/commands/import/sessions.js +2 -2
  48. package/dist/commands/import/slack.d.ts.map +1 -1
  49. package/dist/commands/import/slack.js +12 -7
  50. package/dist/commands/import/slack.js.map +1 -1
  51. package/dist/commands/import/teams.d.ts.map +1 -1
  52. package/dist/commands/import/teams.js +10 -5
  53. package/dist/commands/import/teams.js.map +1 -1
  54. package/dist/commands/import/zoom.d.ts.map +1 -1
  55. package/dist/commands/import/zoom.js +10 -5
  56. package/dist/commands/import/zoom.js.map +1 -1
  57. package/dist/commands/import.d.ts.map +1 -1
  58. package/dist/commands/import.js +43 -1
  59. package/dist/commands/import.js.map +1 -1
  60. package/dist/commands/invite.d.ts +8 -18
  61. package/dist/commands/invite.d.ts.map +1 -1
  62. package/dist/commands/invite.js +23 -46
  63. package/dist/commands/invite.js.map +1 -1
  64. package/dist/commands/join.d.ts +5 -0
  65. package/dist/commands/join.d.ts.map +1 -0
  66. package/dist/commands/join.js +49 -0
  67. package/dist/commands/join.js.map +1 -0
  68. package/dist/commands/local-relink.d.ts +35 -0
  69. package/dist/commands/local-relink.d.ts.map +1 -0
  70. package/dist/commands/local-relink.js +72 -0
  71. package/dist/commands/local-relink.js.map +1 -0
  72. package/dist/commands/local.d.ts.map +1 -1
  73. package/dist/commands/local.js +113 -4
  74. package/dist/commands/local.js.map +1 -1
  75. package/dist/commands/login.d.ts.map +1 -1
  76. package/dist/commands/login.js +21 -2
  77. package/dist/commands/login.js.map +1 -1
  78. package/dist/commands/mark.d.ts +37 -0
  79. package/dist/commands/mark.d.ts.map +1 -0
  80. package/dist/commands/mark.js +105 -0
  81. package/dist/commands/mark.js.map +1 -0
  82. package/dist/commands/mcp.d.ts +149 -2
  83. package/dist/commands/mcp.d.ts.map +1 -1
  84. package/dist/commands/mcp.js +80 -15
  85. package/dist/commands/mcp.js.map +1 -1
  86. package/dist/commands/registry.d.ts.map +1 -1
  87. package/dist/commands/registry.js +12 -2
  88. package/dist/commands/registry.js.map +1 -1
  89. package/dist/commands/setup.d.ts +39 -0
  90. package/dist/commands/setup.d.ts.map +1 -1
  91. package/dist/commands/setup.js +65 -50
  92. package/dist/commands/setup.js.map +1 -1
  93. package/dist/commands/share.d.ts +7 -0
  94. package/dist/commands/share.d.ts.map +1 -0
  95. package/dist/commands/share.js +129 -0
  96. package/dist/commands/share.js.map +1 -0
  97. package/dist/commands/status.d.ts.map +1 -1
  98. package/dist/commands/status.js +10 -0
  99. package/dist/commands/status.js.map +1 -1
  100. package/dist/commands/sync.d.ts +55 -0
  101. package/dist/commands/sync.d.ts.map +1 -0
  102. package/dist/commands/sync.js +278 -0
  103. package/dist/commands/sync.js.map +1 -0
  104. package/dist/commands/telemetry.d.ts +3 -3
  105. package/dist/commands/telemetry.js +6 -6
  106. package/dist/commands/telemetry.js.map +1 -1
  107. package/dist/commands/why.d.ts.map +1 -1
  108. package/dist/commands/why.js +6 -1
  109. package/dist/commands/why.js.map +1 -1
  110. package/dist/detector/detector-version.d.ts +16 -0
  111. package/dist/detector/detector-version.d.ts.map +1 -0
  112. package/dist/detector/detector-version.js +36 -0
  113. package/dist/detector/detector-version.js.map +1 -0
  114. package/dist/detector/relationship-contract.d.ts +30 -0
  115. package/dist/detector/relationship-contract.d.ts.map +1 -0
  116. package/dist/detector/relationship-contract.js +120 -0
  117. package/dist/detector/relationship-contract.js.map +1 -0
  118. package/dist/detector/relationship-contract.v1.json +53 -0
  119. package/dist/detector/relationship-prompt.d.ts +20 -0
  120. package/dist/detector/relationship-prompt.d.ts.map +1 -0
  121. package/dist/detector/relationship-prompt.js +55 -0
  122. package/dist/detector/relationship-prompt.js.map +1 -0
  123. package/dist/detector/relationship-prompt.v1.json +13 -0
  124. package/dist/detector/resolve-pair.d.ts +39 -0
  125. package/dist/detector/resolve-pair.d.ts.map +1 -0
  126. package/dist/detector/resolve-pair.js +345 -0
  127. package/dist/detector/resolve-pair.js.map +1 -0
  128. package/dist/detector/similar-item.d.ts +20 -0
  129. package/dist/detector/similar-item.d.ts.map +1 -0
  130. package/dist/detector/similar-item.js +16 -0
  131. package/dist/detector/similar-item.js.map +1 -0
  132. package/dist/index.d.ts +2 -0
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +31 -11
  135. package/dist/index.js.map +1 -1
  136. package/dist/lib/advisory-dedup.d.ts.map +1 -1
  137. package/dist/lib/advisory-dedup.js +16 -8
  138. package/dist/lib/advisory-dedup.js.map +1 -1
  139. package/dist/lib/advisory-verdict.d.ts +19 -0
  140. package/dist/lib/advisory-verdict.d.ts.map +1 -1
  141. package/dist/lib/advisory-verdict.js +6 -3
  142. package/dist/lib/advisory-verdict.js.map +1 -1
  143. package/dist/lib/backfill-state.d.ts +116 -0
  144. package/dist/lib/backfill-state.d.ts.map +1 -0
  145. package/dist/lib/backfill-state.js +342 -0
  146. package/dist/lib/backfill-state.js.map +1 -0
  147. package/dist/lib/backup-copy.d.ts +17 -0
  148. package/dist/lib/backup-copy.d.ts.map +1 -0
  149. package/dist/lib/backup-copy.js +13 -0
  150. package/dist/lib/backup-copy.js.map +1 -0
  151. package/dist/lib/backup-exclusion.d.ts +10 -0
  152. package/dist/lib/backup-exclusion.d.ts.map +1 -0
  153. package/dist/lib/backup-exclusion.js +58 -0
  154. package/dist/lib/backup-exclusion.js.map +1 -0
  155. package/dist/lib/capture-report.d.ts +22 -18
  156. package/dist/lib/capture-report.d.ts.map +1 -1
  157. package/dist/lib/capture-report.js +64 -2
  158. package/dist/lib/capture-report.js.map +1 -1
  159. package/dist/lib/cli-oauth.d.ts +2 -0
  160. package/dist/lib/cli-oauth.d.ts.map +1 -1
  161. package/dist/lib/cli-oauth.js +61 -10
  162. package/dist/lib/cli-oauth.js.map +1 -1
  163. package/dist/lib/config.d.ts +72 -1
  164. package/dist/lib/config.d.ts.map +1 -1
  165. package/dist/lib/config.js +245 -1
  166. package/dist/lib/config.js.map +1 -1
  167. package/dist/lib/confirm-timeout.d.ts +8 -0
  168. package/dist/lib/confirm-timeout.d.ts.map +1 -0
  169. package/dist/lib/confirm-timeout.js +18 -0
  170. package/dist/lib/confirm-timeout.js.map +1 -0
  171. package/dist/lib/curation/check-marks.d.ts +48 -0
  172. package/dist/lib/curation/check-marks.d.ts.map +1 -0
  173. package/dist/lib/curation/check-marks.js +81 -0
  174. package/dist/lib/curation/check-marks.js.map +1 -0
  175. package/dist/lib/curation/guardrail.d.ts +39 -0
  176. package/dist/lib/curation/guardrail.d.ts.map +1 -0
  177. package/dist/lib/curation/guardrail.js +95 -0
  178. package/dist/lib/curation/guardrail.js.map +1 -0
  179. package/dist/lib/curation/judge.d.ts +3 -0
  180. package/dist/lib/curation/judge.d.ts.map +1 -0
  181. package/dist/lib/curation/judge.js +9 -0
  182. package/dist/lib/curation/judge.js.map +1 -0
  183. package/dist/lib/curation/judgements-db.d.ts +97 -0
  184. package/dist/lib/curation/judgements-db.d.ts.map +1 -0
  185. package/dist/lib/curation/judgements-db.js +206 -0
  186. package/dist/lib/curation/judgements-db.js.map +1 -0
  187. package/dist/lib/curation/last-check.d.ts +32 -0
  188. package/dist/lib/curation/last-check.d.ts.map +1 -0
  189. package/dist/lib/curation/last-check.js +81 -0
  190. package/dist/lib/curation/last-check.js.map +1 -0
  191. package/dist/lib/curation/mark.d.ts +76 -0
  192. package/dist/lib/curation/mark.d.ts.map +1 -0
  193. package/dist/lib/curation/mark.js +361 -0
  194. package/dist/lib/curation/mark.js.map +1 -0
  195. package/dist/lib/curation/text.d.ts +6 -0
  196. package/dist/lib/curation/text.d.ts.map +1 -0
  197. package/dist/lib/curation/text.js +35 -0
  198. package/dist/lib/curation/text.js.map +1 -0
  199. package/dist/lib/destination-name.d.ts +24 -0
  200. package/dist/lib/destination-name.d.ts.map +1 -0
  201. package/dist/lib/destination-name.js +39 -0
  202. package/dist/lib/destination-name.js.map +1 -0
  203. package/dist/lib/destination-summary.d.ts +6 -0
  204. package/dist/lib/destination-summary.d.ts.map +1 -0
  205. package/dist/lib/destination-summary.js +27 -0
  206. package/dist/lib/destination-summary.js.map +1 -0
  207. package/dist/lib/destination-trust.d.ts +54 -0
  208. package/dist/lib/destination-trust.d.ts.map +1 -0
  209. package/dist/lib/destination-trust.js +107 -0
  210. package/dist/lib/destination-trust.js.map +1 -0
  211. package/dist/lib/env-resolver.d.ts.map +1 -1
  212. package/dist/lib/env-resolver.js +3 -0
  213. package/dist/lib/env-resolver.js.map +1 -1
  214. package/dist/lib/fatal.d.ts +11 -0
  215. package/dist/lib/fatal.d.ts.map +1 -0
  216. package/dist/lib/fatal.js +22 -0
  217. package/dist/lib/fatal.js.map +1 -0
  218. package/dist/lib/fetchers/capture.d.ts +49 -2
  219. package/dist/lib/fetchers/capture.d.ts.map +1 -1
  220. package/dist/lib/fetchers/capture.js +7 -1
  221. package/dist/lib/fetchers/capture.js.map +1 -1
  222. package/dist/lib/fetchers/confluence.d.ts +2 -2
  223. package/dist/lib/fetchers/confluence.d.ts.map +1 -1
  224. package/dist/lib/fetchers/confluence.js.map +1 -1
  225. package/dist/lib/fetchers/git.d.ts +1 -0
  226. package/dist/lib/fetchers/git.d.ts.map +1 -1
  227. package/dist/lib/fetchers/git.js +3 -1
  228. package/dist/lib/fetchers/git.js.map +1 -1
  229. package/dist/lib/fetchers/github.d.ts +44 -5
  230. package/dist/lib/fetchers/github.d.ts.map +1 -1
  231. package/dist/lib/fetchers/github.js +122 -5
  232. package/dist/lib/fetchers/github.js.map +1 -1
  233. package/dist/lib/fetchers/gitlab.d.ts +2 -2
  234. package/dist/lib/fetchers/gitlab.d.ts.map +1 -1
  235. package/dist/lib/fetchers/gitlab.js.map +1 -1
  236. package/dist/lib/fetchers/jira.d.ts +2 -2
  237. package/dist/lib/fetchers/jira.d.ts.map +1 -1
  238. package/dist/lib/fetchers/jira.js.map +1 -1
  239. package/dist/lib/fetchers/linear.d.ts +2 -2
  240. package/dist/lib/fetchers/linear.d.ts.map +1 -1
  241. package/dist/lib/fetchers/linear.js.map +1 -1
  242. package/dist/lib/fetchers/notion.d.ts +2 -2
  243. package/dist/lib/fetchers/notion.d.ts.map +1 -1
  244. package/dist/lib/fetchers/notion.js.map +1 -1
  245. package/dist/lib/fetchers/slack.d.ts +2 -3
  246. package/dist/lib/fetchers/slack.d.ts.map +1 -1
  247. package/dist/lib/fetchers/slack.js.map +1 -1
  248. package/dist/lib/fetchers/teams.d.ts +2 -2
  249. package/dist/lib/fetchers/teams.d.ts.map +1 -1
  250. package/dist/lib/fetchers/teams.js.map +1 -1
  251. package/dist/lib/fetchers/zoom.d.ts +2 -2
  252. package/dist/lib/fetchers/zoom.d.ts.map +1 -1
  253. package/dist/lib/fetchers/zoom.js.map +1 -1
  254. package/dist/lib/gateway-client.d.ts +40 -14
  255. package/dist/lib/gateway-client.d.ts.map +1 -1
  256. package/dist/lib/gateway-client.js +47 -19
  257. package/dist/lib/gateway-client.js.map +1 -1
  258. package/dist/lib/github-text.d.ts +3 -0
  259. package/dist/lib/github-text.d.ts.map +1 -0
  260. package/dist/lib/github-text.js +18 -0
  261. package/dist/lib/github-text.js.map +1 -0
  262. package/dist/lib/hook-context.d.ts +10 -0
  263. package/dist/lib/hook-context.d.ts.map +1 -1
  264. package/dist/lib/hook-context.js +14 -0
  265. package/dist/lib/hook-context.js.map +1 -1
  266. package/dist/lib/import-defaults.d.ts +39 -23
  267. package/dist/lib/import-defaults.d.ts.map +1 -1
  268. package/dist/lib/import-defaults.js +28 -26
  269. package/dist/lib/import-defaults.js.map +1 -1
  270. package/dist/lib/invite-prompt.d.ts +4 -4
  271. package/dist/lib/invite-prompt.d.ts.map +1 -1
  272. package/dist/lib/invite-prompt.js +4 -4
  273. package/dist/lib/invite-prompt.js.map +1 -1
  274. package/dist/lib/invite-settings.d.ts +18 -0
  275. package/dist/lib/invite-settings.d.ts.map +1 -0
  276. package/dist/lib/invite-settings.js +29 -0
  277. package/dist/lib/invite-settings.js.map +1 -0
  278. package/dist/lib/join-flow.d.ts +60 -0
  279. package/dist/lib/join-flow.d.ts.map +1 -0
  280. package/dist/lib/join-flow.js +282 -0
  281. package/dist/lib/join-flow.js.map +1 -0
  282. package/dist/lib/launch/adapters/aider.d.ts +17 -0
  283. package/dist/lib/launch/adapters/aider.d.ts.map +1 -0
  284. package/dist/lib/launch/adapters/aider.js +30 -0
  285. package/dist/lib/launch/adapters/aider.js.map +1 -0
  286. package/dist/lib/launch/adapters/auggie.d.ts +18 -0
  287. package/dist/lib/launch/adapters/auggie.d.ts.map +1 -0
  288. package/dist/lib/launch/adapters/auggie.js +34 -0
  289. package/dist/lib/launch/adapters/auggie.js.map +1 -0
  290. package/dist/lib/launch/adapters/cline.d.ts +10 -0
  291. package/dist/lib/launch/adapters/cline.d.ts.map +1 -0
  292. package/dist/lib/launch/adapters/cline.js +41 -0
  293. package/dist/lib/launch/adapters/cline.js.map +1 -0
  294. package/dist/lib/launch/adapters/continue.d.ts +22 -0
  295. package/dist/lib/launch/adapters/continue.d.ts.map +1 -0
  296. package/dist/lib/launch/adapters/continue.js +46 -0
  297. package/dist/lib/launch/adapters/continue.js.map +1 -0
  298. package/dist/lib/launch/adapters/gemini-cli.d.ts +13 -14
  299. package/dist/lib/launch/adapters/gemini-cli.d.ts.map +1 -1
  300. package/dist/lib/launch/adapters/gemini-cli.js +38 -53
  301. package/dist/lib/launch/adapters/gemini-cli.js.map +1 -1
  302. package/dist/lib/launch/adapters/goose.d.ts +20 -0
  303. package/dist/lib/launch/adapters/goose.d.ts.map +1 -0
  304. package/dist/lib/launch/adapters/goose.js +47 -0
  305. package/dist/lib/launch/adapters/goose.js.map +1 -0
  306. package/dist/lib/launch/adapters/notes.d.ts +7 -0
  307. package/dist/lib/launch/adapters/notes.d.ts.map +1 -0
  308. package/dist/lib/launch/adapters/notes.js +5 -0
  309. package/dist/lib/launch/adapters/notes.js.map +1 -0
  310. package/dist/lib/launch/agents.d.ts +2 -0
  311. package/dist/lib/launch/agents.d.ts.map +1 -1
  312. package/dist/lib/launch/agents.js +3 -1
  313. package/dist/lib/launch/agents.js.map +1 -1
  314. package/dist/lib/launch/auggie-state.d.ts +25 -0
  315. package/dist/lib/launch/auggie-state.d.ts.map +1 -0
  316. package/dist/lib/launch/auggie-state.js +74 -0
  317. package/dist/lib/launch/auggie-state.js.map +1 -0
  318. package/dist/lib/launch/cline-state.d.ts +32 -0
  319. package/dist/lib/launch/cline-state.d.ts.map +1 -0
  320. package/dist/lib/launch/cline-state.js +108 -0
  321. package/dist/lib/launch/cline-state.js.map +1 -0
  322. package/dist/lib/launch/config-writes.d.ts +4 -0
  323. package/dist/lib/launch/config-writes.d.ts.map +1 -1
  324. package/dist/lib/launch/config-writes.js +8 -3
  325. package/dist/lib/launch/config-writes.js.map +1 -1
  326. package/dist/lib/launch/continue-state.d.ts +41 -0
  327. package/dist/lib/launch/continue-state.d.ts.map +1 -0
  328. package/dist/lib/launch/continue-state.js +142 -0
  329. package/dist/lib/launch/continue-state.js.map +1 -0
  330. package/dist/lib/launch/detect.d.ts.map +1 -1
  331. package/dist/lib/launch/detect.js +3 -1
  332. package/dist/lib/launch/detect.js.map +1 -1
  333. package/dist/lib/launch/gemini-state.d.ts +26 -20
  334. package/dist/lib/launch/gemini-state.d.ts.map +1 -1
  335. package/dist/lib/launch/gemini-state.js +95 -37
  336. package/dist/lib/launch/gemini-state.js.map +1 -1
  337. package/dist/lib/launch/gemini-system-file.d.ts +17 -0
  338. package/dist/lib/launch/gemini-system-file.d.ts.map +1 -0
  339. package/dist/lib/launch/gemini-system-file.js +55 -0
  340. package/dist/lib/launch/gemini-system-file.js.map +1 -0
  341. package/dist/lib/launch/gemini-trust.d.ts +3 -1
  342. package/dist/lib/launch/gemini-trust.d.ts.map +1 -1
  343. package/dist/lib/launch/gemini-trust.js +10 -3
  344. package/dist/lib/launch/gemini-trust.js.map +1 -1
  345. package/dist/lib/launch/goose-state.d.ts +53 -0
  346. package/dist/lib/launch/goose-state.d.ts.map +1 -0
  347. package/dist/lib/launch/goose-state.js +137 -0
  348. package/dist/lib/launch/goose-state.js.map +1 -0
  349. package/dist/lib/launch/launch-files.d.ts.map +1 -1
  350. package/dist/lib/launch/launch-files.js +3 -2
  351. package/dist/lib/launch/launch-files.js.map +1 -1
  352. package/dist/lib/launch/launch.d.ts +17 -2
  353. package/dist/lib/launch/launch.d.ts.map +1 -1
  354. package/dist/lib/launch/launch.js +36 -3
  355. package/dist/lib/launch/launch.js.map +1 -1
  356. package/dist/lib/launch/mcp-child-env.d.ts +30 -0
  357. package/dist/lib/launch/mcp-child-env.d.ts.map +1 -0
  358. package/dist/lib/launch/mcp-child-env.js +154 -0
  359. package/dist/lib/launch/mcp-child-env.js.map +1 -0
  360. package/dist/lib/launch/pick-agent.d.ts.map +1 -1
  361. package/dist/lib/launch/pick-agent.js +4 -4
  362. package/dist/lib/launch/pick-agent.js.map +1 -1
  363. package/dist/lib/launch/picker-options.d.ts.map +1 -1
  364. package/dist/lib/launch/picker-options.js +7 -2
  365. package/dist/lib/launch/picker-options.js.map +1 -1
  366. package/dist/lib/launch/registry/agents/aider.d.ts +3 -0
  367. package/dist/lib/launch/registry/agents/aider.d.ts.map +1 -0
  368. package/dist/lib/launch/registry/agents/aider.js +13 -0
  369. package/dist/lib/launch/registry/agents/aider.js.map +1 -0
  370. package/dist/lib/launch/registry/agents/auggie.d.ts +3 -0
  371. package/dist/lib/launch/registry/agents/auggie.d.ts.map +1 -0
  372. package/dist/lib/launch/registry/agents/auggie.js +11 -0
  373. package/dist/lib/launch/registry/agents/auggie.js.map +1 -0
  374. package/dist/lib/launch/registry/agents/cline.d.ts +3 -0
  375. package/dist/lib/launch/registry/agents/cline.d.ts.map +1 -0
  376. package/dist/lib/launch/registry/agents/cline.js +19 -0
  377. package/dist/lib/launch/registry/agents/cline.js.map +1 -0
  378. package/dist/lib/launch/registry/agents/continue.d.ts +3 -0
  379. package/dist/lib/launch/registry/agents/continue.d.ts.map +1 -0
  380. package/dist/lib/launch/registry/agents/continue.js +20 -0
  381. package/dist/lib/launch/registry/agents/continue.js.map +1 -0
  382. package/dist/lib/launch/registry/agents/gemini-cli.js +2 -2
  383. package/dist/lib/launch/registry/agents/gemini-cli.js.map +1 -1
  384. package/dist/lib/launch/registry/agents/goose.d.ts +3 -0
  385. package/dist/lib/launch/registry/agents/goose.d.ts.map +1 -0
  386. package/dist/lib/launch/registry/agents/goose.js +20 -0
  387. package/dist/lib/launch/registry/agents/goose.js.map +1 -0
  388. package/dist/lib/launch/registry/index.d.ts +1 -1
  389. package/dist/lib/launch/registry/index.d.ts.map +1 -1
  390. package/dist/lib/launch/registry/index.js +7 -2
  391. package/dist/lib/launch/registry/index.js.map +1 -1
  392. package/dist/lib/launch/registry/types.d.ts +12 -1
  393. package/dist/lib/launch/registry/types.d.ts.map +1 -1
  394. package/dist/lib/launch/strict-entry.d.ts +22 -2
  395. package/dist/lib/launch/strict-entry.d.ts.map +1 -1
  396. package/dist/lib/launch/strict-entry.js +80 -2
  397. package/dist/lib/launch/strict-entry.js.map +1 -1
  398. package/dist/lib/launch/yaml-scan.d.ts +59 -0
  399. package/dist/lib/launch/yaml-scan.d.ts.map +1 -0
  400. package/dist/lib/launch/yaml-scan.js +275 -0
  401. package/dist/lib/launch/yaml-scan.js.map +1 -0
  402. package/dist/lib/lead-prompt.d.ts +106 -0
  403. package/dist/lib/lead-prompt.d.ts.map +1 -0
  404. package/dist/lib/lead-prompt.js +175 -0
  405. package/dist/lib/lead-prompt.js.map +1 -0
  406. package/dist/lib/local-candidate-classify.d.ts +26 -0
  407. package/dist/lib/local-candidate-classify.d.ts.map +1 -0
  408. package/dist/lib/local-candidate-classify.js +53 -0
  409. package/dist/lib/local-candidate-classify.js.map +1 -0
  410. package/dist/lib/local-db-epoch.d.ts +4 -0
  411. package/dist/lib/local-db-epoch.d.ts.map +1 -0
  412. package/dist/lib/local-db-epoch.js +19 -0
  413. package/dist/lib/local-db-epoch.js.map +1 -0
  414. package/dist/lib/local-db-migrate.d.ts +85 -0
  415. package/dist/lib/local-db-migrate.d.ts.map +1 -0
  416. package/dist/lib/local-db-migrate.js +528 -0
  417. package/dist/lib/local-db-migrate.js.map +1 -0
  418. package/dist/lib/local-db-v10.d.ts +28 -0
  419. package/dist/lib/local-db-v10.d.ts.map +1 -0
  420. package/dist/lib/local-db-v10.js +49 -0
  421. package/dist/lib/local-db-v10.js.map +1 -0
  422. package/dist/lib/local-db-v11.d.ts +24 -0
  423. package/dist/lib/local-db-v11.d.ts.map +1 -0
  424. package/dist/lib/local-db-v11.js +25 -0
  425. package/dist/lib/local-db-v11.js.map +1 -0
  426. package/dist/lib/local-db-v12.d.ts +17 -0
  427. package/dist/lib/local-db-v12.d.ts.map +1 -0
  428. package/dist/lib/local-db-v12.js +8 -0
  429. package/dist/lib/local-db-v12.js.map +1 -0
  430. package/dist/lib/local-db-v7.d.ts +30 -0
  431. package/dist/lib/local-db-v7.d.ts.map +1 -0
  432. package/dist/lib/local-db-v7.js +285 -0
  433. package/dist/lib/local-db-v7.js.map +1 -0
  434. package/dist/lib/local-db-v8.d.ts +22 -0
  435. package/dist/lib/local-db-v8.d.ts.map +1 -0
  436. package/dist/lib/local-db-v8.js +33 -0
  437. package/dist/lib/local-db-v8.js.map +1 -0
  438. package/dist/lib/local-db-v9.d.ts +10 -0
  439. package/dist/lib/local-db-v9.d.ts.map +1 -0
  440. package/dist/lib/local-db-v9.js +8 -0
  441. package/dist/lib/local-db-v9.js.map +1 -0
  442. package/dist/lib/local-db.d.ts +73 -23
  443. package/dist/lib/local-db.d.ts.map +1 -1
  444. package/dist/lib/local-db.js +225 -375
  445. package/dist/lib/local-db.js.map +1 -1
  446. package/dist/lib/local-embeddings.d.ts.map +1 -1
  447. package/dist/lib/local-embeddings.js +2 -2
  448. package/dist/lib/local-embeddings.js.map +1 -1
  449. package/dist/lib/local-gateway-client.d.ts +31 -87
  450. package/dist/lib/local-gateway-client.d.ts.map +1 -1
  451. package/dist/lib/local-gateway-client.js +209 -187
  452. package/dist/lib/local-gateway-client.js.map +1 -1
  453. package/dist/lib/local-ingest.d.ts +131 -0
  454. package/dist/lib/local-ingest.d.ts.map +1 -0
  455. package/dist/lib/local-ingest.js +81 -0
  456. package/dist/lib/local-ingest.js.map +1 -0
  457. package/dist/lib/local-link-pass.d.ts +15 -0
  458. package/dist/lib/local-link-pass.d.ts.map +1 -0
  459. package/dist/lib/local-link-pass.js +57 -0
  460. package/dist/lib/local-link-pass.js.map +1 -0
  461. package/dist/lib/local-llm.d.ts +1 -1
  462. package/dist/lib/local-llm.d.ts.map +1 -1
  463. package/dist/lib/local-llm.js +3 -2
  464. package/dist/lib/local-llm.js.map +1 -1
  465. package/dist/lib/local-mode.d.ts +9 -2
  466. package/dist/lib/local-mode.d.ts.map +1 -1
  467. package/dist/lib/local-mode.js +27 -7
  468. package/dist/lib/local-mode.js.map +1 -1
  469. package/dist/lib/local-provenance.d.ts +14 -0
  470. package/dist/lib/local-provenance.d.ts.map +1 -0
  471. package/dist/lib/local-provenance.js +14 -0
  472. package/dist/lib/local-provenance.js.map +1 -0
  473. package/dist/lib/local-relationship-classifier.d.ts +4 -0
  474. package/dist/lib/local-relationship-classifier.d.ts.map +1 -1
  475. package/dist/lib/local-relationship-classifier.js +9 -4
  476. package/dist/lib/local-relationship-classifier.js.map +1 -1
  477. package/dist/lib/local-relink.d.ts +59 -0
  478. package/dist/lib/local-relink.d.ts.map +1 -0
  479. package/dist/lib/local-relink.js +171 -0
  480. package/dist/lib/local-relink.js.map +1 -0
  481. package/dist/lib/local-set-classifier.d.ts +36 -0
  482. package/dist/lib/local-set-classifier.d.ts.map +1 -0
  483. package/dist/lib/local-set-classifier.js +81 -0
  484. package/dist/lib/local-set-classifier.js.map +1 -0
  485. package/dist/lib/local-snapshot-loader.d.ts +29 -0
  486. package/dist/lib/local-snapshot-loader.d.ts.map +1 -0
  487. package/dist/lib/local-snapshot-loader.js +108 -0
  488. package/dist/lib/local-snapshot-loader.js.map +1 -0
  489. package/dist/lib/local-thresholds.d.ts +70 -0
  490. package/dist/lib/local-thresholds.d.ts.map +1 -0
  491. package/dist/lib/local-thresholds.js +79 -0
  492. package/dist/lib/local-thresholds.js.map +1 -0
  493. package/dist/lib/login-flow.d.ts +15 -0
  494. package/dist/lib/login-flow.d.ts.map +1 -1
  495. package/dist/lib/login-flow.js +80 -4
  496. package/dist/lib/login-flow.js.map +1 -1
  497. package/dist/lib/mcp/mark-tool.d.ts +27 -0
  498. package/dist/lib/mcp/mark-tool.d.ts.map +1 -0
  499. package/dist/lib/mcp/mark-tool.js +103 -0
  500. package/dist/lib/mcp/mark-tool.js.map +1 -0
  501. package/dist/lib/mcp/share-status-tool.d.ts +13 -0
  502. package/dist/lib/mcp/share-status-tool.d.ts.map +1 -0
  503. package/dist/lib/mcp/share-status-tool.js +116 -0
  504. package/dist/lib/mcp/share-status-tool.js.map +1 -0
  505. package/dist/lib/mcp/share-tool.d.ts +50 -0
  506. package/dist/lib/mcp/share-tool.d.ts.map +1 -0
  507. package/dist/lib/mcp/share-tool.js +174 -0
  508. package/dist/lib/mcp/share-tool.js.map +1 -0
  509. package/dist/lib/mcp/tool-rules.d.ts +30 -0
  510. package/dist/lib/mcp/tool-rules.d.ts.map +1 -0
  511. package/dist/lib/mcp/tool-rules.js +84 -0
  512. package/dist/lib/mcp/tool-rules.js.map +1 -0
  513. package/dist/lib/mcp-backfill.d.ts +89 -0
  514. package/dist/lib/mcp-backfill.d.ts.map +1 -0
  515. package/dist/lib/mcp-backfill.js +194 -0
  516. package/dist/lib/mcp-backfill.js.map +1 -0
  517. package/dist/lib/mcp-scope.d.ts +90 -0
  518. package/dist/lib/mcp-scope.d.ts.map +1 -0
  519. package/dist/lib/mcp-scope.js +125 -0
  520. package/dist/lib/mcp-scope.js.map +1 -0
  521. package/dist/lib/mcp-sync.d.ts +64 -0
  522. package/dist/lib/mcp-sync.d.ts.map +1 -0
  523. package/dist/lib/mcp-sync.js +183 -0
  524. package/dist/lib/mcp-sync.js.map +1 -0
  525. package/dist/lib/model-cache.d.ts +10 -0
  526. package/dist/lib/model-cache.d.ts.map +1 -0
  527. package/dist/lib/model-cache.js +35 -0
  528. package/dist/lib/model-cache.js.map +1 -0
  529. package/dist/lib/next-step.d.ts.map +1 -1
  530. package/dist/lib/next-step.js +2 -1
  531. package/dist/lib/next-step.js.map +1 -1
  532. package/dist/lib/personal-import.d.ts +7 -0
  533. package/dist/lib/personal-import.d.ts.map +1 -1
  534. package/dist/lib/personal-import.js +13 -1
  535. package/dist/lib/personal-import.js.map +1 -1
  536. package/dist/lib/private-files.d.ts +33 -0
  537. package/dist/lib/private-files.d.ts.map +1 -0
  538. package/dist/lib/private-files.js +96 -0
  539. package/dist/lib/private-files.js.map +1 -0
  540. package/dist/lib/redaction-notice.d.ts +7 -0
  541. package/dist/lib/redaction-notice.d.ts.map +1 -0
  542. package/dist/lib/redaction-notice.js +32 -0
  543. package/dist/lib/redaction-notice.js.map +1 -0
  544. package/dist/lib/relink-estimate.d.ts +16 -0
  545. package/dist/lib/relink-estimate.d.ts.map +1 -0
  546. package/dist/lib/relink-estimate.js +30 -0
  547. package/dist/lib/relink-estimate.js.map +1 -0
  548. package/dist/lib/resolve-env.d.ts +15 -1
  549. package/dist/lib/resolve-env.d.ts.map +1 -1
  550. package/dist/lib/resolve-env.js +27 -7
  551. package/dist/lib/resolve-env.js.map +1 -1
  552. package/dist/lib/safe-config-write.d.ts.map +1 -1
  553. package/dist/lib/safe-config-write.js +39 -2
  554. package/dist/lib/safe-config-write.js.map +1 -1
  555. package/dist/lib/scope-choices.d.ts +51 -0
  556. package/dist/lib/scope-choices.d.ts.map +1 -0
  557. package/dist/lib/scope-choices.js +193 -0
  558. package/dist/lib/scope-choices.js.map +1 -0
  559. package/dist/lib/scope-connect.d.ts +82 -0
  560. package/dist/lib/scope-connect.d.ts.map +1 -0
  561. package/dist/lib/scope-connect.js +258 -0
  562. package/dist/lib/scope-connect.js.map +1 -0
  563. package/dist/lib/scope-defaults.d.ts +3 -0
  564. package/dist/lib/scope-defaults.d.ts.map +1 -0
  565. package/dist/lib/scope-defaults.js +44 -0
  566. package/dist/lib/scope-defaults.js.map +1 -0
  567. package/dist/lib/scope-real.d.ts +280 -0
  568. package/dist/lib/scope-real.d.ts.map +1 -0
  569. package/dist/lib/scope-real.js +58 -0
  570. package/dist/lib/scope-real.js.map +1 -0
  571. package/dist/lib/scope-values.d.ts +76 -0
  572. package/dist/lib/scope-values.d.ts.map +1 -0
  573. package/dist/lib/scope-values.js +169 -0
  574. package/dist/lib/scope-values.js.map +1 -0
  575. package/dist/lib/scope.d.ts +161 -0
  576. package/dist/lib/scope.d.ts.map +1 -0
  577. package/dist/lib/scope.js +323 -0
  578. package/dist/lib/scope.js.map +1 -0
  579. package/dist/lib/setup-route.d.ts +4 -2
  580. package/dist/lib/setup-route.d.ts.map +1 -1
  581. package/dist/lib/setup-route.js +12 -6
  582. package/dist/lib/setup-route.js.map +1 -1
  583. package/dist/lib/share/approval.d.ts +71 -0
  584. package/dist/lib/share/approval.d.ts.map +1 -0
  585. package/dist/lib/share/approval.js +139 -0
  586. package/dist/lib/share/approval.js.map +1 -0
  587. package/dist/lib/share/approve-link.d.ts +31 -0
  588. package/dist/lib/share/approve-link.d.ts.map +1 -0
  589. package/dist/lib/share/approve-link.js +46 -0
  590. package/dist/lib/share/approve-link.js.map +1 -0
  591. package/dist/lib/share/browser-flow.d.ts +85 -0
  592. package/dist/lib/share/browser-flow.d.ts.map +1 -0
  593. package/dist/lib/share/browser-flow.js +168 -0
  594. package/dist/lib/share/browser-flow.js.map +1 -0
  595. package/dist/lib/share/command.d.ts +65 -0
  596. package/dist/lib/share/command.d.ts.map +1 -0
  597. package/dist/lib/share/command.js +278 -0
  598. package/dist/lib/share/command.js.map +1 -0
  599. package/dist/lib/share/delivery-options.d.ts +15 -0
  600. package/dist/lib/share/delivery-options.d.ts.map +1 -0
  601. package/dist/lib/share/delivery-options.js +16 -0
  602. package/dist/lib/share/delivery-options.js.map +1 -0
  603. package/dist/lib/share/delivery.d.ts +83 -0
  604. package/dist/lib/share/delivery.d.ts.map +1 -0
  605. package/dist/lib/share/delivery.js +134 -0
  606. package/dist/lib/share/delivery.js.map +1 -0
  607. package/dist/lib/share/envelope.d.ts +61 -0
  608. package/dist/lib/share/envelope.d.ts.map +1 -0
  609. package/dist/lib/share/envelope.js +99 -0
  610. package/dist/lib/share/envelope.js.map +1 -0
  611. package/dist/lib/share/ledger.d.ts +59 -0
  612. package/dist/lib/share/ledger.d.ts.map +1 -0
  613. package/dist/lib/share/ledger.js +137 -0
  614. package/dist/lib/share/ledger.js.map +1 -0
  615. package/dist/lib/share/payload.d.ts +101 -0
  616. package/dist/lib/share/payload.d.ts.map +1 -0
  617. package/dist/lib/share/payload.js +147 -0
  618. package/dist/lib/share/payload.js.map +1 -0
  619. package/dist/lib/share/pending.d.ts +94 -0
  620. package/dist/lib/share/pending.d.ts.map +1 -0
  621. package/dist/lib/share/pending.js +256 -0
  622. package/dist/lib/share/pending.js.map +1 -0
  623. package/dist/lib/share/preview.d.ts +22 -0
  624. package/dist/lib/share/preview.d.ts.map +1 -0
  625. package/dist/lib/share/preview.js +74 -0
  626. package/dist/lib/share/preview.js.map +1 -0
  627. package/dist/lib/share/qr.d.ts +13 -0
  628. package/dist/lib/share/qr.d.ts.map +1 -0
  629. package/dist/lib/share/qr.js +77 -0
  630. package/dist/lib/share/qr.js.map +1 -0
  631. package/dist/lib/share/requests-client.d.ts +63 -0
  632. package/dist/lib/share/requests-client.d.ts.map +1 -0
  633. package/dist/lib/share/requests-client.js +69 -0
  634. package/dist/lib/share/requests-client.js.map +1 -0
  635. package/dist/lib/share/run.d.ts +134 -0
  636. package/dist/lib/share/run.d.ts.map +1 -0
  637. package/dist/lib/share/run.js +278 -0
  638. package/dist/lib/share/run.js.map +1 -0
  639. package/dist/lib/share/salt.d.ts +2 -0
  640. package/dist/lib/share/salt.d.ts.map +1 -0
  641. package/dist/lib/share/salt.js +44 -0
  642. package/dist/lib/share/salt.js.map +1 -0
  643. package/dist/lib/share/secret-patterns.json +100 -0
  644. package/dist/lib/share/secret-scan.d.ts +24 -0
  645. package/dist/lib/share/secret-scan.d.ts.map +1 -0
  646. package/dist/lib/share/secret-scan.js +116 -0
  647. package/dist/lib/share/secret-scan.js.map +1 -0
  648. package/dist/lib/share/target.d.ts +38 -0
  649. package/dist/lib/share/target.d.ts.map +1 -0
  650. package/dist/lib/share/target.js +80 -0
  651. package/dist/lib/share/target.js.map +1 -0
  652. package/dist/lib/share/tty.d.ts +12 -0
  653. package/dist/lib/share/tty.d.ts.map +1 -0
  654. package/dist/lib/share/tty.js +102 -0
  655. package/dist/lib/share/tty.js.map +1 -0
  656. package/dist/lib/share/visible.d.ts +4 -0
  657. package/dist/lib/share/visible.d.ts.map +1 -0
  658. package/dist/lib/share/visible.js +30 -0
  659. package/dist/lib/share/visible.js.map +1 -0
  660. package/dist/lib/share/wire.d.ts +98 -0
  661. package/dist/lib/share/wire.d.ts.map +1 -0
  662. package/dist/lib/share/wire.js +43 -0
  663. package/dist/lib/share/wire.js.map +1 -0
  664. package/dist/lib/similarity/embedding-matrix.d.ts +64 -0
  665. package/dist/lib/similarity/embedding-matrix.d.ts.map +1 -0
  666. package/dist/lib/similarity/embedding-matrix.js +119 -0
  667. package/dist/lib/similarity/embedding-matrix.js.map +1 -0
  668. package/dist/lib/since-flag.d.ts +11 -0
  669. package/dist/lib/since-flag.d.ts.map +1 -0
  670. package/dist/lib/since-flag.js +24 -0
  671. package/dist/lib/since-flag.js.map +1 -0
  672. package/dist/lib/since.d.ts +59 -0
  673. package/dist/lib/since.d.ts.map +1 -0
  674. package/dist/lib/since.js +86 -0
  675. package/dist/lib/since.js.map +1 -0
  676. package/dist/lib/source-key.d.ts +13 -0
  677. package/dist/lib/source-key.d.ts.map +1 -0
  678. package/dist/lib/source-key.js +60 -0
  679. package/dist/lib/source-key.js.map +1 -0
  680. package/dist/lib/source-sync-state.d.ts +12 -0
  681. package/dist/lib/source-sync-state.d.ts.map +1 -0
  682. package/dist/lib/source-sync-state.js +45 -0
  683. package/dist/lib/source-sync-state.js.map +1 -0
  684. package/dist/lib/startup-backfill-track.d.ts +2 -0
  685. package/dist/lib/startup-backfill-track.d.ts.map +1 -0
  686. package/dist/lib/startup-backfill-track.js +6 -0
  687. package/dist/lib/startup-backfill-track.js.map +1 -0
  688. package/dist/lib/startup-xdg.d.ts +2 -0
  689. package/dist/lib/startup-xdg.d.ts.map +1 -0
  690. package/dist/lib/startup-xdg.js +9 -0
  691. package/dist/lib/startup-xdg.js.map +1 -0
  692. package/dist/lib/sync/after-connect.d.ts +2 -0
  693. package/dist/lib/sync/after-connect.d.ts.map +1 -0
  694. package/dist/lib/sync/after-connect.js +18 -0
  695. package/dist/lib/sync/after-connect.js.map +1 -0
  696. package/dist/lib/sync/bg-claim.d.ts +14 -0
  697. package/dist/lib/sync/bg-claim.d.ts.map +1 -0
  698. package/dist/lib/sync/bg-claim.js +97 -0
  699. package/dist/lib/sync/bg-claim.js.map +1 -0
  700. package/dist/lib/sync/blocked.d.ts +8 -0
  701. package/dist/lib/sync/blocked.d.ts.map +1 -0
  702. package/dist/lib/sync/blocked.js +45 -0
  703. package/dist/lib/sync/blocked.js.map +1 -0
  704. package/dist/lib/sync/classify.d.ts +34 -0
  705. package/dist/lib/sync/classify.d.ts.map +1 -0
  706. package/dist/lib/sync/classify.js +93 -0
  707. package/dist/lib/sync/classify.js.map +1 -0
  708. package/dist/lib/sync/drain.d.ts +16 -0
  709. package/dist/lib/sync/drain.d.ts.map +1 -0
  710. package/dist/lib/sync/drain.js +33 -0
  711. package/dist/lib/sync/drain.js.map +1 -0
  712. package/dist/lib/sync/forget.d.ts +12 -0
  713. package/dist/lib/sync/forget.d.ts.map +1 -0
  714. package/dist/lib/sync/forget.js +32 -0
  715. package/dist/lib/sync/forget.js.map +1 -0
  716. package/dist/lib/sync/launch-hook.d.ts +42 -0
  717. package/dist/lib/sync/launch-hook.d.ts.map +1 -0
  718. package/dist/lib/sync/launch-hook.js +117 -0
  719. package/dist/lib/sync/launch-hook.js.map +1 -0
  720. package/dist/lib/sync/lock.d.ts +35 -0
  721. package/dist/lib/sync/lock.d.ts.map +1 -0
  722. package/dist/lib/sync/lock.js +175 -0
  723. package/dist/lib/sync/lock.js.map +1 -0
  724. package/dist/lib/sync/purge.d.ts +38 -0
  725. package/dist/lib/sync/purge.d.ts.map +1 -0
  726. package/dist/lib/sync/purge.js +61 -0
  727. package/dist/lib/sync/purge.js.map +1 -0
  728. package/dist/lib/sync/real-env.d.ts +265 -0
  729. package/dist/lib/sync/real-env.d.ts.map +1 -0
  730. package/dist/lib/sync/real-env.js +47 -0
  731. package/dist/lib/sync/real-env.js.map +1 -0
  732. package/dist/lib/sync/relink.d.ts +14 -0
  733. package/dist/lib/sync/relink.d.ts.map +1 -0
  734. package/dist/lib/sync/relink.js +36 -0
  735. package/dist/lib/sync/relink.js.map +1 -0
  736. package/dist/lib/sync/report.d.ts +3 -0
  737. package/dist/lib/sync/report.d.ts.map +1 -0
  738. package/dist/lib/sync/report.js +54 -0
  739. package/dist/lib/sync/report.js.map +1 -0
  740. package/dist/lib/sync/run-all.d.ts +23 -0
  741. package/dist/lib/sync/run-all.d.ts.map +1 -0
  742. package/dist/lib/sync/run-all.js +30 -0
  743. package/dist/lib/sync/run-all.js.map +1 -0
  744. package/dist/lib/sync/run-source.d.ts +73 -0
  745. package/dist/lib/sync/run-source.d.ts.map +1 -0
  746. package/dist/lib/sync/run-source.js +262 -0
  747. package/dist/lib/sync/run-source.js.map +1 -0
  748. package/dist/lib/sync/safe-read.d.ts +4 -0
  749. package/dist/lib/sync/safe-read.d.ts.map +1 -0
  750. package/dist/lib/sync/safe-read.js +40 -0
  751. package/dist/lib/sync/safe-read.js.map +1 -0
  752. package/dist/lib/sync/should-background-sync.d.ts +31 -0
  753. package/dist/lib/sync/should-background-sync.d.ts.map +1 -0
  754. package/dist/lib/sync/should-background-sync.js +69 -0
  755. package/dist/lib/sync/should-background-sync.js.map +1 -0
  756. package/dist/lib/sync/source-ids.d.ts +10 -0
  757. package/dist/lib/sync/source-ids.d.ts.map +1 -0
  758. package/dist/lib/sync/source-ids.js +9 -0
  759. package/dist/lib/sync/source-ids.js.map +1 -0
  760. package/dist/lib/sync/sources.d.ts +33 -0
  761. package/dist/lib/sync/sources.d.ts.map +1 -0
  762. package/dist/lib/sync/sources.js +37 -0
  763. package/dist/lib/sync/sources.js.map +1 -0
  764. package/dist/lib/sync/spawn-background.d.ts +27 -0
  765. package/dist/lib/sync/spawn-background.d.ts.map +1 -0
  766. package/dist/lib/sync/spawn-background.js +66 -0
  767. package/dist/lib/sync/spawn-background.js.map +1 -0
  768. package/dist/lib/sync/status.d.ts +57 -0
  769. package/dist/lib/sync/status.d.ts.map +1 -0
  770. package/dist/lib/sync/status.js +166 -0
  771. package/dist/lib/sync/status.js.map +1 -0
  772. package/dist/lib/sync/summary-read.d.ts +19 -0
  773. package/dist/lib/sync/summary-read.d.ts.map +1 -0
  774. package/dist/lib/sync/summary-read.js +39 -0
  775. package/dist/lib/sync/summary-read.js.map +1 -0
  776. package/dist/lib/sync/summary.d.ts +10 -0
  777. package/dist/lib/sync/summary.d.ts.map +1 -0
  778. package/dist/lib/sync/summary.js +80 -0
  779. package/dist/lib/sync/summary.js.map +1 -0
  780. package/dist/lib/sync/sync-state.d.ts +128 -0
  781. package/dist/lib/sync/sync-state.d.ts.map +1 -0
  782. package/dist/lib/sync/sync-state.js +255 -0
  783. package/dist/lib/sync/sync-state.js.map +1 -0
  784. package/dist/lib/sync/telemetry.d.ts +20 -0
  785. package/dist/lib/sync/telemetry.d.ts.map +1 -0
  786. package/dist/lib/sync/telemetry.js +31 -0
  787. package/dist/lib/sync/telemetry.js.map +1 -0
  788. package/dist/lib/sync/threads.d.ts +48 -0
  789. package/dist/lib/sync/threads.d.ts.map +1 -0
  790. package/dist/lib/sync/threads.js +82 -0
  791. package/dist/lib/sync/threads.js.map +1 -0
  792. package/dist/lib/sync/window.d.ts +72 -0
  793. package/dist/lib/sync/window.d.ts.map +1 -0
  794. package/dist/lib/sync/window.js +112 -0
  795. package/dist/lib/sync/window.js.map +1 -0
  796. package/dist/lib/team-cta.d.ts +11 -0
  797. package/dist/lib/team-cta.d.ts.map +1 -0
  798. package/dist/lib/team-cta.js +16 -0
  799. package/dist/lib/team-cta.js.map +1 -0
  800. package/dist/lib/telemetry-ci.d.ts +2 -0
  801. package/dist/lib/telemetry-ci.d.ts.map +1 -0
  802. package/dist/lib/telemetry-ci.js +21 -0
  803. package/dist/lib/telemetry-ci.js.map +1 -0
  804. package/dist/lib/telemetry-consent.d.ts +44 -23
  805. package/dist/lib/telemetry-consent.d.ts.map +1 -1
  806. package/dist/lib/telemetry-consent.js +74 -35
  807. package/dist/lib/telemetry-consent.js.map +1 -1
  808. package/dist/lib/telemetry-env.d.ts +1 -1
  809. package/dist/lib/usage-telemetry.d.ts +89 -24
  810. package/dist/lib/usage-telemetry.d.ts.map +1 -1
  811. package/dist/lib/usage-telemetry.js +283 -76
  812. package/dist/lib/usage-telemetry.js.map +1 -1
  813. package/dist/lib/xdg.d.ts +27 -0
  814. package/dist/lib/xdg.d.ts.map +1 -0
  815. package/dist/lib/xdg.js +56 -0
  816. package/dist/lib/xdg.js.map +1 -0
  817. package/package.json +6 -3
  818. package/dist/commands/push.d.ts +0 -25
  819. package/dist/commands/push.d.ts.map +0 -1
  820. package/dist/commands/push.js +0 -98
  821. package/dist/commands/push.js.map +0 -1
  822. package/dist/lib/personal-email-domains.d.ts +0 -8
  823. package/dist/lib/personal-email-domains.d.ts.map +0 -1
  824. package/dist/lib/personal-email-domains.js +0 -39
  825. package/dist/lib/personal-email-domains.js.map +0 -1
@@ -1,5 +1,20 @@
1
+ import { type VerifiedIdentity } from './join-flow.js';
1
2
  import type { createConfigStore, EnvironmentConfig, EnvName } from './config.js';
2
3
  type ConfigStore = ReturnType<typeof createConfigStore>;
4
+ /**
5
+ * The address /auth/cli-init hands back is opened in a browser, so it is checked first: http(s) only, and for a team destination its
6
+ * origin must be the saved gateway's or web app's (a joined gateway is whatever was joined, so its word is not enough). A string
7
+ * starting with '!' is the reason it was refused.
8
+ */
9
+ export declare function checkLoginUrl(raw: unknown, env: EnvironmentConfig): string;
10
+ /**
11
+ * `align login --env <team> --token X`: the no-browser renewal. A person at a terminal only, never inside an agent, and the token is
12
+ * kept only once the destination's gateway says whose it is; the tenant saved is THAT one, never the previous token's.
13
+ */
14
+ export declare function saveTeamToken(env: EnvironmentConfig, envName: EnvName, token: string, config: ConfigStore, ctx: {
15
+ wrapped: boolean;
16
+ tty: boolean;
17
+ }): Promise<VerifiedIdentity | string>;
3
18
  export declare function loginInteractive(env: EnvironmentConfig, envName: EnvName, config: ConfigStore): Promise<boolean>;
4
19
  export {};
5
20
  //# sourceMappingURL=login-flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-flow.d.ts","sourceRoot":"","sources":["../../src/lib/login-flow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjF,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAMxD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAoElB"}
1
+ {"version":3,"file":"login-flow.d.ts","sourceRoot":"","sources":["../../src/lib/login-flow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AAKpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjF,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAMxD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GACpH,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAQpC;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CA+FlB"}
@@ -1,32 +1,92 @@
1
1
  import * as p from '@clack/prompts';
2
2
  import chalk from 'chalk';
3
+ import { assertTransport } from './destination-trust.js';
4
+ import { verifyToken } from './join-flow.js';
3
5
  import { tryOpenUrl } from './open-url.js';
6
+ import { visible } from './share/visible.js';
4
7
  import { createGatewayClient, GatewayError } from './gateway-client.js';
5
8
  import { CLI_CALLBACK_PORTS, waitForCallback } from './cli-oauth.js';
6
9
  // Browser-based CLI login. Starts a local callback server, opens the branded
7
10
  // login page, exchanges the returned token, verifies it, and persists the
8
11
  // token + tenant id. Returns true on success. Shared by `align login` and the
9
12
  // inline login on the cloud `align setup` path.
13
+ /**
14
+ * The address /auth/cli-init hands back is opened in a browser, so it is checked first: http(s) only, and for a team destination its
15
+ * origin must be the saved gateway's or web app's (a joined gateway is whatever was joined, so its word is not enough). A string
16
+ * starting with '!' is the reason it was refused.
17
+ */
18
+ export function checkLoginUrl(raw, env) {
19
+ if (typeof raw !== 'string' || raw === '')
20
+ return '!the gateway sent no login address';
21
+ let u;
22
+ try {
23
+ u = new URL(raw);
24
+ }
25
+ catch {
26
+ return '!the gateway sent something that is not a web address';
27
+ }
28
+ if (u.protocol !== 'https:' && u.protocol !== 'http:')
29
+ return `!it is not a web address (${visible(u.protocol)})`;
30
+ if (env.kind === 'team') {
31
+ let origin;
32
+ try {
33
+ origin = assertTransport(u.origin);
34
+ }
35
+ catch (e) {
36
+ return `!${visible(e.message)}`;
37
+ }
38
+ const own = [env.gatewayUrl, env.appUrl].filter((x) => typeof x === 'string').map((x) => x.replace(/\/+$/, ''));
39
+ if (!own.includes(origin))
40
+ return `!${visible(u.host)} is not this destination's gateway or web app`;
41
+ }
42
+ return raw;
43
+ }
44
+ /**
45
+ * `align login --env <team> --token X`: the no-browser renewal. A person at a terminal only, never inside an agent, and the token is
46
+ * kept only once the destination's gateway says whose it is; the tenant saved is THAT one, never the previous token's.
47
+ */
48
+ export async function saveTeamToken(env, envName, token, config, ctx) {
49
+ if (ctx.wrapped)
50
+ return 'A token for a team destination has to be saved by you, in your own terminal, not from inside an agent. Nothing was saved.';
51
+ if (!ctx.tty)
52
+ return 'Saving a token for a team destination needs a terminal. Nothing was saved.';
53
+ const who = await verifyToken(env.gatewayUrl, token);
54
+ if (typeof who === 'string')
55
+ return `${new URL(env.gatewayUrl).host} ${who}`;
56
+ config.setAuthToken(envName, token);
57
+ config.setTenantId(envName, who.tenantId);
58
+ return who;
59
+ }
10
60
  export async function loginInteractive(env, envName, config) {
11
61
  const spinner = p.spinner();
12
62
  spinner.start('Opening browser for login...');
13
63
  let loginUrl = '';
64
+ const stop = new AbortController();
65
+ let refused = '';
14
66
  const callbackPromise = waitForCallback({
15
67
  ports: CLI_CALLBACK_PORTS,
16
68
  timeoutMs: 120_000,
69
+ signal: stop.signal,
17
70
  onBound: async (port, nonce) => {
18
71
  try {
19
72
  const res = await fetch(`${env.gatewayUrl}/auth/cli-init?port=${port}&nonce=${nonce}`);
20
73
  if (!res.ok)
21
74
  throw new Error(`Gateway returned ${res.status}`);
22
75
  const body = await res.json();
23
- loginUrl = body.url;
76
+ const checked = checkLoginUrl(body.url, env);
77
+ if (typeof checked !== 'string' || checked.startsWith('!')) {
78
+ refused = typeof checked === 'string' ? checked.slice(1) : 'the gateway sent no login address';
79
+ spinner.stop(`Not opening that address: ${refused}`);
80
+ stop.abort();
81
+ return;
82
+ }
83
+ loginUrl = checked;
24
84
  const opened = await tryOpenUrl(loginUrl);
25
85
  // The message follows the boolean: claiming "Browser opened" over a detected
26
86
  // failure is the same lie the paste path told in 0.28.0.
27
87
  spinner.stop(opened
28
- ? `Browser opened. If nothing happened, visit:\n ${chalk.bold(loginUrl)}`
29
- : `Could not open a browser here. Log in at:\n ${chalk.bold(loginUrl)}`);
88
+ ? `Browser opened. If nothing happened, visit:\n ${chalk.bold(visible(loginUrl))}`
89
+ : `Could not open a browser here. Log in at:\n ${chalk.bold(visible(loginUrl))}`);
30
90
  p.log.info('Waiting for you to log in (2 min timeout)...');
31
91
  }
32
92
  catch (e) {
@@ -39,7 +99,7 @@ export async function loginInteractive(env, envName, config) {
39
99
  result = await callbackPromise;
40
100
  }
41
101
  catch (e) {
42
- p.log.error(`Login failed: ${e.message}`);
102
+ p.log.error(refused ? `Login stopped: ${refused}. Nothing was saved.` : `Login failed: ${e.message}`);
43
103
  return false;
44
104
  }
45
105
  const token = result.data['token'];
@@ -47,6 +107,22 @@ export async function loginInteractive(env, envName, config) {
47
107
  p.log.error('No token received. Try again or use: align login --token <token>');
48
108
  return false;
49
109
  }
110
+ // A team destination is renewed the way it was joined: the token is only kept once the gateway has answered who it belongs to,
111
+ // in the shape an Align gateway uses. "Unreachable" is not "verified" here, unlike the builtins below (join review F10).
112
+ if (env.kind === 'team') {
113
+ const spin = p.spinner();
114
+ spin.start('Verifying token...');
115
+ const who = await verifyToken(env.gatewayUrl, token);
116
+ if (typeof who === 'string') {
117
+ spin.stop('Login failed: the new token could not be verified.');
118
+ p.log.error(`${new URL(env.gatewayUrl).host} ${who}`);
119
+ return false;
120
+ }
121
+ config.setAuthToken(envName, token);
122
+ config.setTenantId(envName, who.tenantId);
123
+ spin.stop(`Logged in as ${visible(who.email)} (${visible(who.tenantName)}) [${envName}]`);
124
+ return true;
125
+ }
50
126
  const verifySpinner = p.spinner();
51
127
  verifySpinner.start('Verifying token...');
52
128
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"login-flow.js","sourceRoot":"","sources":["../../src/lib/login-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login-flow.js","sourceRoot":"","sources":["../../src/lib/login-flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Judge } from '../curation/judgements-db.js';
2
+ import type { EnvironmentConfig } from '../config.js';
3
+ export declare const MARK_TOOL = "align_mark";
4
+ /** What an agent may record. Hiding a decision, declaring one replaced and ratifying are the person's. */
5
+ export declare const MARK_KINDS: readonly ["verdict", "note"];
6
+ export declare const MARK_TOOL_SCHEMA: {
7
+ readonly name: "align_mark";
8
+ readonly annotations: {
9
+ readonly readOnlyHint: false;
10
+ readonly destructiveHint: true;
11
+ };
12
+ readonly description: string;
13
+ readonly inputSchema: Record<string, unknown>;
14
+ };
15
+ export interface MarkToolResult {
16
+ text: string;
17
+ [k: string]: unknown;
18
+ }
19
+ export interface MarkToolContext {
20
+ /** The MCP `initialize` clientInfo, as the SDK holds it. */
21
+ clientInfo?: {
22
+ name?: unknown;
23
+ };
24
+ judge?: () => Promise<Judge>;
25
+ }
26
+ export declare function runMarkTool(args: Record<string, unknown> | undefined, env: EnvironmentConfig, ctx?: MarkToolContext): Promise<MarkToolResult>;
27
+ //# sourceMappingURL=mark-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/mcp/mark-tool.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,eAAO,MAAM,SAAS,eAAe,CAAC;AACtC,0GAA0G;AAC1G,eAAO,MAAM,UAAU,8BAA+B,CAAC;AAoBvD,eAAO,MAAM,gBAAgB;;;;;;;;CAWnB,CAAC;AAEX,MAAM,WAAW,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AACtE,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;CAC9B;AA+BD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAuBvJ"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * LM: the MCP tool `align_mark` - the USER's judgement, recorded locally, relayed by their agent.
3
+ *
4
+ * What an agent may and may not do here:
5
+ * - It may record a verdict, a replacement, a "not a decision" and a note the user asked it to
6
+ * record. Each row carries `via = 'mcp'` and the agent's registry id (or 'unknown'), so the
7
+ * person sees later which answers came through an agent, and a share lists them separately.
8
+ * - It may NOT ratify. Ratifying is a person standing behind a decision; `align ratify` refuses
9
+ * anything that is not a terminal. `kind: "ratify"` gets the command for the user instead.
10
+ * - It may NOT pass a token or key: the schema is closed.
11
+ * - Nothing is sent anywhere and no model is asked. The tool reads and writes the local file.
12
+ */
13
+ import { applyJudgement, MarkError, MAX_CHECK_FILES, MAX_NOTE_CHARS } from '../curation/mark.js';
14
+ import { defaultJudge } from '../curation/judge.js';
15
+ import { agentIdFrom, cliCommandFor, jsonSchemaOf, strictInput } from './tool-rules.js';
16
+ export const MARK_TOOL = 'align_mark';
17
+ /** What an agent may record. Hiding a decision, declaring one replaced and ratifying are the person's. */
18
+ export const MARK_KINDS = ['verdict', 'note'];
19
+ const PERSON_ONLY = {
20
+ not_a_decision: (id) => `align mark ${id} not-a-decision`,
21
+ supersede: (id, other) => `align mark ${id} replaces ${other}`,
22
+ ratify: (id) => cliCommandFor('ratify', id),
23
+ };
24
+ const SPEC = {
25
+ tool: MARK_TOOL,
26
+ required: ['decision_id'],
27
+ properties: {
28
+ decision_id: { type: 'string', description: 'The decision the user is judging (its id from the check or from align_get_conflicts)', maxLength: 200 },
29
+ kind: { type: 'string', description: 'verdict (default) or note', enum: MARK_KINDS },
30
+ verdict: { type: 'string', description: 'With a verdict: real, or false (a false alarm), as the USER answered', enum: ['real', 'false'] },
31
+ counterpart_id: { type: 'string', description: 'A stored conflict: the other decision of the pair. ', maxLength: 200 },
32
+ check_files: { type: 'array', description: 'A check hit: the files the check covered, exactly as the check result listed them', maxItems: MAX_CHECK_FILES, itemMaxLength: 1024 },
33
+ text: { type: 'string', description: 'With note: the note', maxLength: MAX_NOTE_CHARS },
34
+ },
35
+ };
36
+ export const MARK_TOOL_SCHEMA = {
37
+ name: MARK_TOOL,
38
+ annotations: { readOnlyHint: false, destructiveHint: true },
39
+ description: 'Record the USER\'s judgement in the local graph on this machine. After a conflict from align_check_alignment or align_get_conflicts, ASK the user "Was that a real conflict?" and pass their answer; never decide for them. ' +
40
+ 'For a check hit: decision_id + verdict (real or false) + check_files (the files the check covered, as the check result lists them); a false verdict hides that decision only for a later check of the same files. ' +
41
+ 'For a stored conflict: decision_id + counterpart_id + verdict. ' +
42
+ 'Also kind note (text: one line of plain text, 500 characters at most). ' +
43
+ 'Each is recorded as passed on by you, under your agent name; the user sees it labelled that way, a hit you hide is shown as hidden by you, and every check says so. Nothing is shared or sent; sharing is a separate step the user confirms. ' +
44
+ 'You cannot hide a decision (not_a_decision), mark one replaced (supersede) or ratify: those are the user\'s own acts, and asking for one returns the exact `align mark` or `align ratify` command to give them. You cannot replace a mark the user made themselves. It never takes a token or key. The user can list or undo marks with `align mark --list` and `--undo`.',
45
+ inputSchema: jsonSchemaOf(SPEC),
46
+ };
47
+ function actionFrom(input) {
48
+ const id = input['decision_id'];
49
+ const kind = input['kind'] ?? 'verdict';
50
+ const counterpart = input['counterpart_id'];
51
+ const files = input['check_files'];
52
+ const verdict = input['verdict'];
53
+ const stray = (names) => names.find((n) => input[n] !== undefined);
54
+ switch (kind) {
55
+ case 'verdict': {
56
+ if (verdict === undefined)
57
+ throw new MarkError('usage', `${MARK_TOOL} needs "verdict" (real or false) for a verdict.`);
58
+ if (input['text'] !== undefined)
59
+ throw new MarkError('usage', `${MARK_TOOL} takes "text" only with kind "note".`);
60
+ const hasFiles = files !== undefined && files.length > 0;
61
+ if ((counterpart !== undefined) === hasFiles) {
62
+ throw new MarkError('usage', `${MARK_TOOL} verdict takes one of two shapes: a check hit (decision_id + verdict + check_files), or a stored conflict (decision_id + counterpart_id + verdict).`);
63
+ }
64
+ return counterpart !== undefined
65
+ ? { action: 'conflict', a: id, b: counterpart, verdict }
66
+ : { action: 'check', id, verdict, files: files ?? [] };
67
+ }
68
+ default: {
69
+ const text = input['text'];
70
+ if (typeof text !== 'string' || text.trim() === '')
71
+ throw new MarkError('usage', `${MARK_TOOL} kind note needs "text".`);
72
+ const other = stray(['verdict', 'check_files', 'counterpart_id']);
73
+ if (other)
74
+ throw new MarkError('usage', `${MARK_TOOL} kind note does not take "${other}".`);
75
+ return { action: 'note', id, text };
76
+ }
77
+ }
78
+ }
79
+ export async function runMarkTool(args, env, ctx = {}) {
80
+ // A friendly refusal ahead of the closed enum: these are the person's acts, not typos.
81
+ const kind = args?.['kind'];
82
+ if (typeof kind === 'string' && Object.prototype.hasOwnProperty.call(PERSON_ONLY, kind)) {
83
+ const clip = (v) => (typeof v === 'string' && /^[\w.:-]{1,80}$/.test(v) ? v : '<id>');
84
+ throw new Error(`${MARK_TOOL} cannot do ${kind}: only the person can, not an agent. Ask the user to run: ${PERSON_ONLY[kind](clip(args?.['decision_id']), clip(args?.['counterpart_id']))}`);
85
+ }
86
+ const input = strictInput(SPEC, args);
87
+ if (env.mode !== 'local-embedded' || !env.localDbPath) {
88
+ throw new Error(`${MARK_TOOL} records judgements in the local graph on this machine, and this server reads a hosted Align graph. ` +
89
+ 'Use the local Align server (align mcp --env local).');
90
+ }
91
+ const action = actionFrom(input);
92
+ const judge = await (ctx.judge ?? defaultJudge)();
93
+ try {
94
+ const out = applyJudgement({ dbPath: env.localDbPath, judge, origin: { via: 'mcp', agentId: agentIdFrom(ctx.clientInfo) } }, action);
95
+ return { recorded: true, kind: out.kind, replaced: out.replaced, text: out.text };
96
+ }
97
+ catch (e) {
98
+ if (e instanceof MarkError)
99
+ throw new Error(e.message);
100
+ throw e;
101
+ }
102
+ }
103
+ //# sourceMappingURL=mark-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-tool.js","sourceRoot":"","sources":["../../../src/lib/mcp/mark-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { EnvironmentConfig } from '../config.js';
2
+ import { type ShareToolContext, type ShareToolResult } from './share-tool.js';
3
+ export declare const SHARE_STATUS_TOOL_SCHEMA: {
4
+ readonly name: "align_share_status";
5
+ readonly annotations: {
6
+ readonly readOnlyHint: false;
7
+ readonly destructiveHint: false;
8
+ };
9
+ readonly description: string;
10
+ readonly inputSchema: Record<string, unknown>;
11
+ };
12
+ export declare function runShareStatusTool(args: Record<string, unknown> | undefined, env: EnvironmentConfig, ctx?: ShareToolContext): Promise<ShareToolResult>;
13
+ //# sourceMappingURL=share-status-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-status-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/mcp/share-status-tool.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQtD,OAAO,EAA6D,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASzI,eAAO,MAAM,wBAAwB;;;;;;;;CAU3B,CAAC;AAIX,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+DhK"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * ALI-1540: the MCP tool `align_share_status` - the second half of an approved share.
3
+ *
4
+ * `align_share` stages a request and hands the person a link. This tool reads where that request stands and, ONLY
5
+ * when the gateway says the person approved it, sends the exact bytes that were approved (the completion call).
6
+ * Everything else it does is read-only: waiting, declined, expired and cancelled change nothing on the team graph.
7
+ *
8
+ * It completes at most once: the pending file is taken by an atomic rename, so a second call finds nothing to
9
+ * complete. Before it completes it rebuilds the share from the local graph and refuses (and cancels the request)
10
+ * if what would be shared changed since the person was shown it, the same rule `--confirm` applies to a code.
11
+ *
12
+ * Input: one string, the request id. No token or key can be passed.
13
+ */
14
+ import { createHash } from 'node:crypto';
15
+ import { defaultJudge } from '../curation/judge.js';
16
+ import { defaultGatewayUrlFor } from '../config.js';
17
+ import { completeRequest, CompletionError } from '../share/approval.js';
18
+ import { buildPlaintext } from '../share/envelope.js';
19
+ import { getPromotion } from '../share/ledger.js';
20
+ import { claimRequest, combinedHash, deleteRequest, loadRequest, sweepPending } from '../share/pending.js';
21
+ import { REQUEST_ID_RE } from '../share/requests-client.js';
22
+ import { prepare, renderResults, send, ShareError } from '../share/run.js';
23
+ import { visible } from '../share/visible.js';
24
+ import { hasLogin, NO_LOGIN, resolveShareTarget, SHARE_STATUS_TOOL } from './share-tool.js';
25
+ import { jsonSchemaOf, strictInput } from './tool-rules.js';
26
+ const SPEC = {
27
+ tool: SHARE_STATUS_TOOL,
28
+ required: ['request_id'],
29
+ properties: { request_id: { type: 'string', description: 'The request_id align_share returned', maxLength: 64 } },
30
+ };
31
+ export const SHARE_STATUS_TOOL_SCHEMA = {
32
+ name: SHARE_STATUS_TOOL,
33
+ // It writes: once the user has approved, it completes the share, which creates or updates decisions on the team graph. It deletes nothing there.
34
+ annotations: { readOnlyHint: false, destructiveHint: false },
35
+ description: 'Check a share the user was asked to approve in their browser (from align_share), and finish it once they have. ' +
36
+ 'It reports waiting, declined, expired or cancelled, and changes nothing in those cases. When the user HAS approved, the first call sends exactly what they approved and returns the result; a second call sends nothing. ' +
37
+ 'A completed share stays with the team as its record, even if the user later leaves. It does not approve anything: approving is the user\'s act, in their browser, and you must not attempt it. Call it after the user says they approved, or to see whether they have. ' +
38
+ 'It never takes a token or key.',
39
+ inputSchema: jsonSchemaOf(SPEC),
40
+ };
41
+ const minutes = (iso, now = Date.now()) => Math.max(0, Math.round((Date.parse(iso) - now) / 60000));
42
+ export async function runShareStatusTool(args, env, ctx = {}) {
43
+ const input = strictInput(SPEC, args);
44
+ const id = input['request_id'];
45
+ const t = resolveShareTarget(env, ctx, SHARE_STATUS_TOOL);
46
+ sweepPending();
47
+ if (!hasLogin(t.cloudEnv))
48
+ return { text: NO_LOGIN(), shared: false };
49
+ if (!REQUEST_ID_RE.test(id))
50
+ return { text: 'That is not a share request id. Use the request_id align_share returned.', shared: false };
51
+ const rec = loadRequest(id);
52
+ if (rec === null)
53
+ return { text: 'No share is waiting under that id on this machine. It may already be finished, cancelled or expired. Call align_share again to start a new one.', shared: false, state: 'unknown' };
54
+ try {
55
+ const { state } = await t.client.getShareRequest(id);
56
+ const ended = (text, st) => { deleteRequest(id); return { text, shared: false, state: st }; };
57
+ switch (state) {
58
+ case 'pending': return { text: `Still waiting for the user to approve it in their browser. Code ${visible(rec.userCode)}; it expires in about ${minutes(rec.expiresAt)} minutes. Nothing has been sent. Ask the user to open the link align_share gave them.`, shared: false, state, request_id: id };
59
+ case 'declined': return ended('The user declined it in their browser. Nothing was sent.', state);
60
+ case 'expired': return ended('The request expired before it was approved. Nothing was sent. Call align_share again to start a new one.', state);
61
+ case 'cancelled': return ended('The request was cancelled. Nothing was sent.', state);
62
+ case 'failed': return ended('The gateway marked the request as failed. Nothing was sent. Call align_share again to start a new one.', state);
63
+ case 'completed': {
64
+ // Completed by this process (the answer was lost) or by another. If this machine has no ledger row for what it staged,
65
+ // say so: a later retract cannot find an unrecorded share, and "already completed" alone would read as fully done.
66
+ const unrecorded = rec.localIds.filter((l) => getPromotion(env.localDbPath, l, rec.envName, rec.tenantId) === null);
67
+ return ended(unrecorded.length === 0
68
+ ? 'That share was already completed, and this machine has the record of it.'
69
+ : 'The gateway says that share was completed (by this machine, whose answer was lost, or by another process). This machine has NO record of the result, so it is not in the local ledger and `align share --retract` cannot find it. Check the team graph. Sharing the same decision again is safe (it will not make a second copy) and records it here.', state);
70
+ }
71
+ case 'completing': return { text: 'The gateway is finishing that share now. Check again in a moment.', shared: false, state, request_id: id };
72
+ case 'approved': break;
73
+ }
74
+ // Approved: take the request (atomically), so two calls cannot both complete it.
75
+ const claim = claimRequest(id);
76
+ if (claim === null)
77
+ return { text: 'That share is already being completed or has been. Nothing more was sent by this call.', shared: false, state: 'completing', request_id: id };
78
+ try {
79
+ const shareCtx = { dbPath: env.localDbPath, envName: t.envName, client: t.client, judge: await (ctx.judge ?? defaultJudge)(), salt: t.salt, gatewayUrl: t.cloudEnv.gatewayUrl, defaultGatewayUrl: defaultGatewayUrlFor(t.envName) };
80
+ const prep = await prepare(shareCtx, claim.request.localIds);
81
+ // Rebuild what would be sent NOW and require it to be byte-for-byte what was approved, with the hash and the decisions this record names.
82
+ // A pending file edited to point at other decisions (or a stale copy) can never record one decision's share under another's id.
83
+ const rebuilt = prep.payloads.length === 0 ? null : buildPlaintext({ kind: 'share', tenantId: prep.tenantId, gatewayUrl: prep.gatewayUrl, payloads: prep.payloads });
84
+ const unchanged = rebuilt !== null
85
+ && rebuilt.equals(Buffer.from(claim.request.bytesB64, 'base64'))
86
+ && createHash('sha256').update(rebuilt).digest('hex') === claim.request.sha256
87
+ && prep.payloads.map((p) => p.localId).join('\n') === claim.request.localIds.join('\n');
88
+ if (prep.secrets.length || !unchanged || combinedHash(prep.payloads, prep) !== claim.request.hash || claim.request.envName !== t.envName) {
89
+ // What the user approved is no longer what this machine would send: do not send it.
90
+ await t.client.cancelShareRequest(id).catch(() => undefined);
91
+ claim.finish();
92
+ return { text: 'What would be shared, or where it would go, changed since the user was shown it, so nothing was sent and the request was cancelled. Call align_share to start again.', shared: false, state: 'changed' };
93
+ }
94
+ const response = await completeRequest(t.client, id, claim.request.bytesB64);
95
+ const rows = await send(shareCtx, prep, { post: async (_b, phase) => (phase === 'share' ? response : null) });
96
+ claim.finish();
97
+ const waiting = rows.some((r) => r.judgementFailures.some((f) => f.error === 'needs_confirmation'));
98
+ const more = waiting ? `\n\nSome of the user's judgements wait for the team's existing text to be confirmed. Tell the user to run align share ${visible(claim.request.localIds[0] ?? '<id>')} in their own terminal: they approve that second step in the browser too.` : '';
99
+ return { text: `Approved by the user, and sent:\n${renderResults(rows)}${more}`, shared: !rows.every((r) => r.outcome.kind === 'refused' || r.outcome.kind === 'unknown'), state: 'completed' };
100
+ }
101
+ catch (e) {
102
+ // No verdict from the gateway means the same bytes may be sent again; any other failure is final for this request.
103
+ if (e instanceof CompletionError && e.retryable)
104
+ claim.release();
105
+ else
106
+ claim.finish();
107
+ throw e;
108
+ }
109
+ }
110
+ catch (e) {
111
+ if (e instanceof ShareError)
112
+ throw new Error(e.message);
113
+ throw new Error(visible(e.message));
114
+ }
115
+ }
116
+ //# sourceMappingURL=share-status-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-status-tool.js","sourceRoot":"","sources":["../../../src/lib/mcp/share-status-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { EnvironmentConfig } from '../config.js';
2
+ import type { Judge } from '../curation/judgements-db.js';
3
+ import { type ShareClient } from '../share/run.js';
4
+ export declare const SHARE_TOOL = "align_share";
5
+ export declare const SHARE_STATUS_TOOL = "align_share_status";
6
+ export declare const SHARE_TOOL_SCHEMA: {
7
+ readonly name: "align_share";
8
+ readonly annotations: {
9
+ readonly readOnlyHint: false;
10
+ readonly destructiveHint: false;
11
+ };
12
+ readonly description: string;
13
+ readonly inputSchema: Record<string, unknown>;
14
+ };
15
+ export interface ShareToolContext {
16
+ clientInfo?: {
17
+ name?: unknown;
18
+ };
19
+ judge?: () => Promise<Judge>;
20
+ /** Test seam: the destination and the client. Production resolves the user's default cloud env. */
21
+ share?: {
22
+ cloudEnv: EnvironmentConfig;
23
+ envName: string;
24
+ client: ShareClient;
25
+ salt?: string;
26
+ appUrl?: string;
27
+ label?: string;
28
+ teamAppUrl?: string;
29
+ };
30
+ }
31
+ export interface ShareToolResult {
32
+ text: string;
33
+ code?: string;
34
+ [k: string]: unknown;
35
+ }
36
+ export interface ShareTarget {
37
+ cloudEnv: EnvironmentConfig;
38
+ envName: string;
39
+ client: ShareClient;
40
+ salt: string;
41
+ appUrl: string;
42
+ label: string; /** Set for a team destination: the web app saved at join time. */
43
+ teamAppUrl?: string;
44
+ }
45
+ /** The local graph this server reads, and the cloud environment a share goes to. Shared with align_share_status. */
46
+ export declare function resolveShareTarget(env: EnvironmentConfig, ctx: ShareToolContext, tool: string): ShareTarget;
47
+ export declare const NO_LOGIN: () => string;
48
+ export declare const hasLogin: (e: EnvironmentConfig) => boolean;
49
+ export declare function runShareTool(args: Record<string, unknown> | undefined, env: EnvironmentConfig, ctx?: ShareToolContext): Promise<ShareToolResult>;
50
+ //# sourceMappingURL=share-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/mcp/share-tool.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAS1D,OAAO,EAAyC,KAAK,WAAW,EAAc,MAAM,iBAAiB,CAAC;AAItG,eAAO,MAAM,UAAU,gBAAgB,CAAC;AACxC,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAQtD,eAAO,MAAM,iBAAiB;;;;;;;;CAcpB,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,mGAAmG;IACnG,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpJ;AAED,MAAM,WAAW,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AAEtF,MAAM,WAAW,WAAW;IAAG,QAAQ,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,kEAAkE;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AAEvO,oHAAoH;AACpH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAe3G;AAED,eAAO,MAAM,QAAQ,QAAO,MAA8G,CAAC;AAC3I,eAAO,MAAM,QAAQ,GAAI,GAAG,iBAAiB,KAAG,OAAgF,CAAC;AA0DjI,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC1J"}