@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
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Keep the local graph out of backups and sync, best effort.
3
+ *
4
+ * The graph holds decision text from every connector a person imported, and it is not encrypted
5
+ * (by design, see docs/local-mode.md). A Time Machine disk or a backup service is a second copy of
6
+ * it, in a place the person may not think of as theirs to protect. So, once, the directory that
7
+ * holds it is:
8
+ * - excluded from Time Machine on macOS (`tmutil addexclusion`, a sticky exclusion that follows
9
+ * the folder, run only when /usr/bin/tmutil exists), and
10
+ * - tagged with CACHEDIR.TAG (https://bford.info/cachedir/), which borg, restic, tar and other
11
+ * backup tools skip when asked to exclude caches.
12
+ *
13
+ * There is no marker-FILE convention for iCloud or Dropbox: iCloud skips items whose NAME ends in
14
+ * `.nosync`, which would mean renaming the user's config directory. Neither syncs the config
15
+ * directory by default, so nothing is written for them. Undo: `tmutil removeexclusion <dir>` and
16
+ * delete the tag (docs/local-mode.md); a separate `.backup-exclusion-done` marker
17
+ * keeps that undo from being reversed.
18
+ *
19
+ * Never fatal: every step is wrapped, and nothing here can stop a command from running.
20
+ */
21
+ import { spawnSync } from 'node:child_process';
22
+ import fs from 'node:fs';
23
+ import path from 'node:path';
24
+ export const CACHEDIR_TAG_SIGNATURE = 'Signature: 8a477f597d28d172789f06886806bc55';
25
+ const TMUTIL = '/usr/bin/tmutil';
26
+ const defaultDeps = {
27
+ platform: process.platform,
28
+ hasTmutil: () => fs.existsSync(TMUTIL),
29
+ run: (cmd, args) => { spawnSync(cmd, args, { stdio: 'ignore', timeout: 5000 }); },
30
+ };
31
+ /** Exclude the directory holding `dbPath` from backups, once. A no-op until the graph exists. */
32
+ export function excludeGraphFromBackups(dbPath, deps = defaultDeps) {
33
+ try {
34
+ if (!fs.existsSync(dbPath))
35
+ return;
36
+ const dir = path.dirname(dbPath);
37
+ const tag = path.join(dir, 'CACHEDIR.TAG');
38
+ // Its own "already done" marker, not the tag: a person who deletes the tag to back the graph up again
39
+ // (the documented undo) must not have it, or the Time Machine exclusion, put back by the next command.
40
+ const done = path.join(dir, '.backup-exclusion-done');
41
+ if (fs.existsSync(done) || fs.existsSync(tag))
42
+ return;
43
+ try {
44
+ fs.writeFileSync(done, '', { mode: 0o600 });
45
+ }
46
+ catch { /* best effort */ }
47
+ if (deps.platform === 'darwin' && deps.hasTmutil()) {
48
+ try {
49
+ deps.run(TMUTIL, ['addexclusion', dir]);
50
+ }
51
+ catch { /* best effort */ }
52
+ }
53
+ const body = `${CACHEDIR_TAG_SIGNATURE}\n# This file marks the Align CLI local decision graph so backup tools can skip it.\n# See https://bford.info/cachedir/ and docs/local-mode.md in align-cli.\n`;
54
+ (deps.writeFile ?? ((p, d) => fs.writeFileSync(p, d, { mode: 0o600 })))(tag, body);
55
+ }
56
+ catch { /* best effort: never stop a command */ }
57
+ }
58
+ //# sourceMappingURL=backup-exclusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup-exclusion.js","sourceRoot":"","sources":["../../src/lib/backup-exclusion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,6CAA6C,CAAC;AACpF,MAAM,MAAM,GAAG,iBAAiB,CAAC;AASjC,MAAM,WAAW,GAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;CAClF,CAAC;AAEF,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,OAAmB,WAAW;IACpF,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC3C,sGAAsG;QACtG,uGAAuG;QACvG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QACtD,IAAI,CAAC;YAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,sBAAsB,gKAAgK,CAAC;QACvM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;AACrD,CAAC"}
@@ -1,19 +1,3 @@
1
- /**
2
- * ALI-827: what an import fetched, and what it could not reach.
3
- *
4
- * A thin connector looks like a thin tool. `align setup --local` produced 39 Slack
5
- * decisions on 2026-09-02 and nothing said why; the number this prints is the number the
6
- * user was about to ask about, and printing it costs nothing - no model call, no extra
7
- * request, only the counts the fetch already had in its hands.
8
- *
9
- * Pure: a sort and a string builder over plain numbers and strings, no I/O and no chalk,
10
- * so it is unit-testable without a graph or a terminal (the found-summary.ts shape).
11
- *
12
- * It never states a REASON it did not measure. "30 of up to 50 requested" is derived and
13
- * true; "Zoom caps a page at 30" is a fact owned by the fetcher, and duplicating it here
14
- * would be a second writer of it (code-style.md). A skip line arrives from whoever
15
- * measured it and is printed verbatim.
16
- */
17
1
  import type { CaptureFetchResult, CaptureSkip } from './fetchers/capture.js';
18
2
  export interface CaptureSource {
19
3
  label: string;
@@ -28,6 +12,23 @@ export interface CaptureSource {
28
12
  /** What the caller asked for, when it asked for anything. */
29
13
  requested?: number;
30
14
  skips: CaptureSkip[];
15
+ /** L3: the window this read covered, as the report prints it ("the last 6 months", from
16
+ * windowLabel). Present only for a windowed read; its presence is what switches the line
17
+ * to the "imported N ... from W" form, so a source without one prints exactly as before. */
18
+ window?: string;
19
+ /** L3: the SDK's `complete`. Anything but `false` reads as a complete windowed read. */
20
+ complete?: boolean;
21
+ /** L3: the oldest `updated_at` the read reached, named on an incomplete line. */
22
+ oldestReached?: string;
23
+ /** L3: what the gateway STORED, and how many batches failed. Absent means unknown, and the
24
+ * line then falls back to `fetched`. "Imported" is never claimed for more than was stored. */
25
+ stored?: number;
26
+ failedBatches?: number;
27
+ /** L3: whose items a team-scope read covered, printed as one line under the source. */
28
+ scopeNote?: string;
29
+ /** L3: GitHub items still without their discussion, of `discussionTotal` that could have had it. */
30
+ discussionPending?: number;
31
+ discussionTotal?: number;
31
32
  }
32
33
  export declare function renderCaptureReport(sources: CaptureSource[]): string;
33
34
  /** The report line's inputs, from one wrapper result. `fetched` is what came BACK, not
@@ -35,7 +36,10 @@ export declare function renderCaptureReport(sources: CaptureSource[]): string;
35
36
  export declare function toCaptureSource(source: {
36
37
  label: string;
37
38
  unit: string;
38
- }, result: CaptureFetchResult): CaptureSource;
39
+ }, result: CaptureFetchResult, window?: string, imported?: {
40
+ stored?: number;
41
+ failedBatches?: number;
42
+ }): CaptureSource;
39
43
  /**
40
44
  * Accumulates sources across the concurrent imports one `align setup` runs, so the report
41
45
  * prints once at the end instead of interleaved between spinners. Explicitly passed,
@@ -43,7 +47,7 @@ export declare function toCaptureSource(source: {
43
47
  * two commands in one process.
44
48
  */
45
49
  export declare function createCaptureCollector(): {
46
- add(source: CaptureSource): void;
50
+ add(source: CaptureSource): CaptureSource;
47
51
  render(): string;
48
52
  };
49
53
  //# sourceMappingURL=capture-report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capture-report.d.ts","sourceRoot":"","sources":["../../src/lib/capture-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd;mCAC+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;wFAEoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAsCpE;AAED;qFACqF;AACrF,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACvC,MAAM,EAAE,kBAAkB,GACzB,aAAa,CASf;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI;IAAE,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,MAAM,IAAI,MAAM,CAAA;CAAE,CAU/F"}
1
+ {"version":3,"file":"capture-report.d.ts","sourceRoot":"","sources":["../../src/lib/capture-report.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd;mCAC+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;wFAEoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB;;iGAE6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;mGAC+F;IAC/F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmCD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CAwCpE;AAED;qFACqF;AACrF,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACvC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,aAAa,CAiBf;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI;IAAE,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAAC;IAAC,MAAM,IAAI,MAAM,CAAA;CAAE,CAYxG"}
@@ -1,3 +1,52 @@
1
+ /**
2
+ * ALI-827: what an import fetched, and what it could not reach.
3
+ *
4
+ * A thin connector looks like a thin tool. `align setup --local` produced 39 Slack
5
+ * decisions on 2026-09-02 and nothing said why; the number this prints is the number the
6
+ * user was about to ask about, and printing it costs nothing - no model call, no extra
7
+ * request, only the counts the fetch already had in its hands.
8
+ *
9
+ * Pure: a sort and a string builder over plain numbers and strings, no I/O and no chalk,
10
+ * so it is unit-testable without a graph or a terminal (the found-summary.ts shape).
11
+ *
12
+ * It never states a REASON it did not measure. "30 of up to 50 requested" is derived and
13
+ * true; "Zoom caps a page at 30" is a fact owned by the fetcher, and duplicating it here
14
+ * would be a second writer of it (code-style.md). A skip line arrives from whoever
15
+ * measured it and is printed verbatim.
16
+ */
17
+ import { INCOMPLETE_SKIP_KINDS } from '@aligndottech/connector-core';
18
+ /**
19
+ * L3: the line for a windowed read. Complete: what was imported and over which window.
20
+ * Incomplete: the date actually reached and the skip that stopped it (Decision 5), so a thin
21
+ * result is never mistaken for a quiet six months. The reason is the fetcher's own words
22
+ * (verbatim, never a raw URL: the SDK redacts them and this adds nothing back).
23
+ */
24
+ function storedNote(s) {
25
+ const stored = s.stored ?? s.fetched;
26
+ const n = s.failedBatches ?? 0;
27
+ return {
28
+ count: stored < s.fetched || n > 0 ? `${stored} of ${s.fetched}` : String(s.fetched),
29
+ failed: n > 0 ? ` (${n === 1 ? 'a batch' : `${n} batches`} failed)` : '',
30
+ };
31
+ }
32
+ function windowedLine(s, window) {
33
+ const { count, failed } = storedNote(s);
34
+ const head = `${s.label}: imported ${count} ${s.unit}${failed}`;
35
+ // Said as a count, and promising nothing: the items the request budget did not reach stay thin
36
+ // until `align sync` finishes them. Until the background refresh exists (L6) the person runs it.
37
+ const tail = s.discussionPending !== undefined && s.discussionPending > 0 && s.discussionTotal !== undefined
38
+ ? `; discussion fetched for ${s.discussionTotal - s.discussionPending} of ${s.discussionTotal}, the rest stay thin until align sync reads them (run it now)`
39
+ : '';
40
+ if (s.complete !== false)
41
+ return `${head} from ${window}${tail}`;
42
+ const cut = s.skips.find((k) => k.kind !== undefined && INCOMPLETE_SKIP_KINDS.has(k.kind));
43
+ const refused = s.fetched === 0 ? s.skips.find((k) => k.kind === 'shape') : undefined;
44
+ const atCeiling = s.requested !== undefined && Math.max(s.fetched, s.scanned ?? 0) >= s.requested;
45
+ const reason = (cut ?? refused)?.detail
46
+ ?? (atCeiling ? `stopped at the ceiling of ${s.requested}` : 'the read did not reach the end of the window');
47
+ const reached = s.oldestReached !== undefined ? `back to ${s.oldestReached.slice(0, 10)}` : 'read stopped early';
48
+ return `${head}, ${reached} (not ${window}): ${reason}${tail}`;
49
+ }
1
50
  export function renderCaptureReport(sources) {
2
51
  // Never a bare header over nothing.
3
52
  if (sources.length === 0)
@@ -29,7 +78,10 @@ export function renderCaptureReport(sources) {
29
78
  ? ' (0 scanned)'
30
79
  : ` (0 kept of ${s.scanned} scanned)`;
31
80
  }
32
- lines.push(` ${s.label}: ${s.fetched} ${s.unit}${shortfall}${scannedNote}`);
81
+ const stored = storedNote(s);
82
+ lines.push(` ${s.window !== undefined ? windowedLine(s, s.window) : `${s.label}: ${stored.count} ${s.unit}${stored.failed}${shortfall}${scannedNote}`}`);
83
+ if (s.scopeNote !== undefined)
84
+ lines.push(` reads ${s.scopeNote}`);
33
85
  for (const skip of s.skips)
34
86
  lines.push(` ${skip.count} ${skip.detail}`);
35
87
  }
@@ -37,7 +89,7 @@ export function renderCaptureReport(sources) {
37
89
  }
38
90
  /** The report line's inputs, from one wrapper result. `fetched` is what came BACK, not
39
91
  * what was scanned: the user is counting decisions in their graph, not API rows. */
40
- export function toCaptureSource(source, result) {
92
+ export function toCaptureSource(source, result, window, imported) {
41
93
  return {
42
94
  label: source.label,
43
95
  unit: source.unit,
@@ -45,6 +97,14 @@ export function toCaptureSource(source, result) {
45
97
  scanned: result.report.scanned,
46
98
  ...(result.report.requested !== undefined ? { requested: result.report.requested } : {}),
47
99
  skips: result.report.skips,
100
+ ...(window !== undefined ? { window } : {}),
101
+ ...(imported?.stored !== undefined ? { stored: imported.stored } : {}),
102
+ ...(imported?.failedBatches !== undefined ? { failedBatches: imported.failedBatches } : {}),
103
+ ...(result.report.complete !== undefined ? { complete: result.report.complete } : {}),
104
+ ...(result.report.oldestReached !== undefined ? { oldestReached: result.report.oldestReached } : {}),
105
+ ...(result.report.discussionPending !== undefined ? { discussionPending: result.report.discussionPending } : {}),
106
+ ...(result.report.scopeNote !== undefined ? { scopeNote: result.report.scopeNote } : {}),
107
+ ...(result.report.discussionTotal !== undefined ? { discussionTotal: result.report.discussionTotal } : {}),
48
108
  };
49
109
  }
50
110
  /**
@@ -56,8 +116,10 @@ export function toCaptureSource(source, result) {
56
116
  export function createCaptureCollector() {
57
117
  const sources = [];
58
118
  return {
119
+ /** Returns the same object, so the import that follows can fill in what it stored (L3). */
59
120
  add(source) {
60
121
  sources.push(source);
122
+ return source;
61
123
  },
62
124
  render() {
63
125
  return renderCaptureReport(sources);
@@ -1 +1 @@
1
- {"version":3,"file":"capture-report.js","sourceRoot":"","sources":["../../src/lib/capture-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture-report.js","sourceRoot":"","sources":["../../src/lib/capture-report.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export declare function waitForCallback(opts: {
6
6
  ports: number[];
7
7
  timeoutMs: number;
8
8
  onBound?: (port: number, nonce: string) => void | Promise<void>;
9
+ /** Stops the wait: the listeners close and the promise rejects. */
10
+ signal?: AbortSignal;
9
11
  }): Promise<CallbackResult>;
10
12
  export declare const CLI_CALLBACK_PORTS: number[];
11
13
  //# sourceMappingURL=cli-oauth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-oauth.d.ts","sourceRoot":"","sources":["../../src/lib/cli-oauth.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE,GAAG,OAAO,CAAC,cAAc,CAAC,CAmE1B;AAED,eAAO,MAAM,kBAAkB,UAAiC,CAAC"}
1
+ {"version":3,"file":"cli-oauth.d.ts","sourceRoot":"","sources":["../../src/lib/cli-oauth.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,mEAAmE;IACnE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0G1B;AAED,eAAO,MAAM,kBAAkB,UAAiC,CAAC"}
@@ -1,11 +1,20 @@
1
1
  import http from 'node:http';
2
2
  import { randomBytes } from 'node:crypto';
3
+ /** The page posts a token and a nonce: well under this. Anything larger is not it. */
4
+ const MAX_BODY_BYTES = 8 * 1024;
3
5
  export function waitForCallback(opts) {
4
6
  return new Promise((resolve, reject) => {
5
- let server;
7
+ let servers = [];
8
+ const closeAll = () => { for (const x of servers)
9
+ x.close(); };
6
10
  const nonce = randomBytes(16).toString('hex');
11
+ opts.signal?.addEventListener('abort', () => {
12
+ clearTimeout(timer);
13
+ closeAll();
14
+ reject(new Error('cancelled'));
15
+ }, { once: true });
7
16
  const timer = setTimeout(() => {
8
- server?.close();
17
+ closeAll();
9
18
  reject(new Error('CLI OAuth timed out waiting for browser callback'));
10
19
  }, opts.timeoutMs);
11
20
  function tryPort(remaining) {
@@ -15,7 +24,7 @@ export function waitForCallback(opts) {
15
24
  return;
16
25
  }
17
26
  const [port, ...rest] = remaining;
18
- const s = http.createServer((req, res) => {
27
+ const onRequest = (req, res) => {
19
28
  const origin = req.headers['origin'];
20
29
  if (origin)
21
30
  res.setHeader('Access-Control-Allow-Origin', origin);
@@ -31,16 +40,34 @@ export function waitForCallback(opts) {
31
40
  res.writeHead(405).end();
32
41
  return;
33
42
  }
34
- let body = '';
35
- req.on('data', (chunk) => { body += chunk; });
43
+ // Any web page can POST here (a no-cors request needs no permission), so what arrives is read under a bound and a
44
+ // stray request is answered and ignored. Only the right nonce ends the wait.
45
+ const chunks = [];
46
+ let size = 0;
47
+ let tooBig = false;
48
+ req.on('data', (chunk) => {
49
+ if (tooBig)
50
+ return;
51
+ size += chunk.length;
52
+ if (size > MAX_BODY_BYTES) {
53
+ tooBig = true;
54
+ res.writeHead(413, { Connection: 'close' }).end(() => req.destroy());
55
+ return;
56
+ }
57
+ chunks.push(chunk);
58
+ });
36
59
  req.on('end', () => {
60
+ if (tooBig)
61
+ return;
37
62
  let parsed;
38
63
  try {
39
- parsed = JSON.parse(body);
64
+ const v = JSON.parse(Buffer.concat(chunks).toString('utf8'));
65
+ if (typeof v !== 'object' || v === null || Array.isArray(v))
66
+ throw new Error('not an object');
67
+ parsed = v;
40
68
  }
41
69
  catch {
42
70
  res.writeHead(400).end();
43
- reject(new Error('Invalid JSON received in CLI OAuth callback'));
44
71
  return;
45
72
  }
46
73
  if (parsed['cli_nonce'] !== nonce) {
@@ -50,10 +77,11 @@ export function waitForCallback(opts) {
50
77
  const { cli_nonce: _, ...payload } = parsed;
51
78
  res.writeHead(200, { 'Content-Type': 'application/json' }).end('{"ok":true}');
52
79
  clearTimeout(timer);
53
- s.close();
80
+ closeAll();
54
81
  resolve({ data: payload, port });
55
82
  });
56
- });
83
+ };
84
+ const s = http.createServer(onRequest);
57
85
  s.on('error', (err) => {
58
86
  if (err.code === 'EADDRINUSE') {
59
87
  tryPort(rest);
@@ -62,7 +90,30 @@ export function waitForCallback(opts) {
62
90
  clearTimeout(timer);
63
91
  reject(err);
64
92
  });
65
- s.listen(port, () => { server = s; void opts.onBound?.(port, nonce); });
93
+ // 127.0.0.1, not every interface: this socket accepts a credential, and on 0.0.0.0 anyone on the LAN can dial it (ALI-1504).
94
+ s.listen(port, '127.0.0.1', () => {
95
+ // The web page posts to http://localhost, which a browser may resolve to ::1. Answer there too, or the token goes to
96
+ // whatever else holds ::1 on this port. A port whose ::1 side is taken is skipped whole: never half of a pair.
97
+ const s6 = http.createServer(onRequest);
98
+ s6.once('error', (err) => {
99
+ if (err.code === 'EADDRINUSE') {
100
+ s.close();
101
+ tryPort(rest);
102
+ return;
103
+ }
104
+ // No IPv6 loopback on this machine (a container, a disabled stack): IPv4 alone is all there is to answer on.
105
+ servers = [s];
106
+ if (opts.signal?.aborted) {
107
+ closeAll();
108
+ return;
109
+ }
110
+ void opts.onBound?.(port, nonce);
111
+ });
112
+ s6.listen(port, '::1', () => { servers = [s, s6]; if (opts.signal?.aborted) {
113
+ closeAll();
114
+ return;
115
+ } void opts.onBound?.(port, nonce); });
116
+ });
66
117
  }
67
118
  tryPort(opts.ports);
68
119
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cli-oauth.js","sourceRoot":"","sources":["../../src/lib/cli-oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-oauth.js","sourceRoot":"","sources":["../../src/lib/cli-oauth.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { type WrittenConfig } from './safe-config-write.js';
2
2
  import { type StoredProviderId } from './llm-providers.js';
3
- export type EnvName = 'local' | 'preview' | 'prod';
3
+ import type { StoredScope } from './scope-values.js';
4
+ import { type TeamDestinationName } from './destination-name.js';
5
+ export type BuiltinEnv = 'local' | 'preview' | 'prod';
6
+ /** A builtin, or the name of a team destination saved by `align join`. */
7
+ export type EnvName = BuiltinEnv | TeamDestinationName;
4
8
  export interface EnvironmentConfig {
5
9
  gatewayUrl: string;
6
10
  authToken: string | null;
@@ -8,7 +12,16 @@ export interface EnvironmentConfig {
8
12
  ngrokUrl?: string;
9
13
  mode: 'demo' | 'auth' | 'local-embedded';
10
14
  localDbPath?: string;
15
+ /** 'team' for a destination saved by `align join`; absent for the three builtins. */
16
+ kind?: 'builtin' | 'team';
17
+ /** Team destinations: the web app the gateway named at join time (never guessed from the gateway URL). */
18
+ appUrl?: string;
19
+ /** Team destinations: the org name the SERVER claimed. Display only, never an identity. */
20
+ orgNameClaimed?: string;
21
+ joinedAt?: string;
11
22
  }
23
+ /** The gateway URL an environment uses when nothing overrides it (ALIGN_GATEWAY_URL, a saved value). */
24
+ export declare function defaultGatewayUrlFor(env: string): string;
12
25
  /**
13
26
  * ALI-618: local-embedded mode never makes an HTTP call for its own operations (it reads a
14
27
  * local embedded DB - see gateway-client.ts's `createLocalGatewayClient` branch), so the
@@ -74,11 +87,34 @@ export declare function savedLlmConfig(config: {
74
87
  provider?: string;
75
88
  model?: string;
76
89
  };
90
+ export type LeadPromptOutcome = 'declined' | 'submitted' | 'skipped';
91
+ export interface LeadState {
92
+ shownAt?: string;
93
+ version?: string;
94
+ outcome?: LeadPromptOutcome;
95
+ submittedAt?: string;
96
+ }
77
97
  export declare function createConfigStore(): {
78
98
  getEnvironment(env: EnvName): EnvironmentConfig;
99
+ /** One write: a crash cannot leave a token saved without the gateway it belongs to. */
100
+ saveTeamDestination(name: string, d: {
101
+ gatewayUrl: string;
102
+ appUrl: string;
103
+ authToken: string;
104
+ tenantId: string | null;
105
+ orgNameClaimed?: string;
106
+ }, now?: Date): void;
107
+ /** Logout for a team destination: the entry stays so `align login --env <name>` can renew it. */
108
+ clearTeamToken(name: string): void;
109
+ getShareDestination(): string | null;
110
+ setShareDestination(name: string): void;
111
+ clearShareDestination(): void;
79
112
  setAuthToken(env: EnvName, token: string): void;
80
113
  setTenantId(env: EnvName, tenantId: string): void;
81
114
  setNgrokUrl(url: string): void;
115
+ /** True only for a destination `align join` saved. A builtin name is never one. */
116
+ hasTeamDestination(name: string): boolean;
117
+ listTeamDestinationNames(): string[];
82
118
  setDefaultEnv(env: EnvName): void;
83
119
  getDefaultEnv(): EnvName;
84
120
  getConnectorToken(env: EnvName, connectorKey: string): string | null;
@@ -99,6 +135,19 @@ export declare function createConfigStore(): {
99
135
  setConnectorCloudId(env: EnvName, connectorKey: string, cloudId: string): void;
100
136
  getConnectorSiteBase(env: EnvName, connectorKey: string): string | null;
101
137
  setConnectorSiteBase(env: EnvName, connectorKey: string, siteBase: string): void;
138
+ /**
139
+ * L4: what the person chose to read for a source, kept beside its token under `<env>:<source>:scope` so forgetting the
140
+ * connector removes it too. Non-secret, and not a `:field:` key, so no fetch is ever handed it as a credential.
141
+ * An entry that is PRESENT but unreadable (truncated, or written by a newer CLI) reads as yours, never as "no choice": for GitHub
142
+ * and GitLab "no choice" means "widen from the folder", and a damaged record must not do that. Only an absent entry is null.
143
+ */
144
+ getConnectorScope(env: EnvName, connectorKey: string): StoredScope | null;
145
+ setConnectorScope(env: EnvName, connectorKey: string, scope: StoredScope): void;
146
+ clearConnectorScope(env: EnvName, connectorKey: string): void;
147
+ clearTeamScopeDisclosed(source: string): void;
148
+ getTeamScopeDisclosedFor(): string[];
149
+ isTeamScopeDisclosed(source: string, scopeKey: string): boolean;
150
+ markTeamScopeDisclosed(source: string, scopeKey: string): void;
102
151
  setLocalMode(dbPath: string): void;
103
152
  clearLocalMode(): void;
104
153
  clear(env: EnvName): void;
@@ -107,7 +156,16 @@ export declare function createConfigStore(): {
107
156
  setAgent(agent: string): void;
108
157
  isLaunchOff(): boolean;
109
158
  setLaunchOff(off: boolean): void;
159
+ /** The saved detector choice, or undefined when none is saved (the default then applies). */
160
+ getDetector(): string | undefined;
161
+ setDetector(detector: string): void;
110
162
  clearAgent(): void;
163
+ isBackgroundSyncOff(): boolean;
164
+ setBackgroundSyncOff(off: boolean): void;
165
+ backgroundSyncNoticeShown(): boolean;
166
+ markBackgroundSyncNoticeShown(at: string): void;
167
+ getReauthLineShownAt(): string | undefined;
168
+ markReauthLineShown(at: string): void;
111
169
  getWrittenConfigs(): Record<string, WrittenConfig>;
112
170
  recordWrittenConfig(file: string, entry: WrittenConfig): void;
113
171
  /** Forget only the files whose undo finished; a skipped file keeps its record. */
@@ -118,6 +176,17 @@ export declare function createConfigStore(): {
118
176
  markWriteRefused(file: string): void;
119
177
  getTelemetryConsent(): TelemetryConsent | undefined;
120
178
  setTelemetryConsent(value: TelemetryConsent): void;
179
+ setTelemetryOffByEnv(via: string, now?: Date): void;
180
+ getTelemetryOffByEnv(): {
181
+ via: string;
182
+ at: string;
183
+ } | undefined;
184
+ getTelemetryNoticeShownAt(): string | undefined;
185
+ markTelemetryNoticeShown(): void;
186
+ getLeadState(): LeadState;
187
+ markLeadPromptShown(version: string, now?: Date): void;
188
+ setLeadOutcome(outcome: LeadPromptOutcome, now?: Date): void;
189
+ clearLeadPromptShown(): void;
121
190
  getProviderKey(provider: GuidedProviderKey): string | null;
122
191
  setProviderKey(provider: GuidedProviderKey, key: string): void;
123
192
  clearProviderKey(provider: GuidedProviderKey): void;
@@ -127,6 +196,8 @@ export declare function createConfigStore(): {
127
196
  isAskKeyOfferDismissed(): boolean;
128
197
  setAskKeyOfferDismissed(dismissed: boolean): void;
129
198
  wasFunnelStageRecorded(stage: string): boolean;
199
+ claimFunnelStage(stage: string): boolean;
200
+ releaseFunnelStage(stage: string): boolean;
130
201
  markFunnelStageRecorded(stage: string): void;
131
202
  };
132
203
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}