@aligndottech/cli 0.48.0 → 0.50.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 (717) hide show
  1. package/README.md +10 -8
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +35 -26
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +7 -2
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/ai.d.ts +11 -0
  9. package/dist/commands/ai.d.ts.map +1 -0
  10. package/dist/commands/ai.js +121 -0
  11. package/dist/commands/ai.js.map +1 -0
  12. package/dist/commands/check.d.ts.map +1 -1
  13. package/dist/commands/check.js +18 -2
  14. package/dist/commands/check.js.map +1 -1
  15. package/dist/commands/connect.d.ts +5 -0
  16. package/dist/commands/connect.d.ts.map +1 -1
  17. package/dist/commands/connect.js +24 -0
  18. package/dist/commands/connect.js.map +1 -1
  19. package/dist/commands/default-action.js +2 -2
  20. package/dist/commands/default-action.js.map +1 -1
  21. package/dist/commands/import/confluence.d.ts.map +1 -1
  22. package/dist/commands/import/confluence.js +24 -5
  23. package/dist/commands/import/confluence.js.map +1 -1
  24. package/dist/commands/import/docs.js +2 -2
  25. package/dist/commands/import/git.d.ts.map +1 -1
  26. package/dist/commands/import/git.js +15 -5
  27. package/dist/commands/import/git.js.map +1 -1
  28. package/dist/commands/import/github.d.ts.map +1 -1
  29. package/dist/commands/import/github.js +34 -7
  30. package/dist/commands/import/github.js.map +1 -1
  31. package/dist/commands/import/gitlab.d.ts.map +1 -1
  32. package/dist/commands/import/gitlab.js +10 -5
  33. package/dist/commands/import/gitlab.js.map +1 -1
  34. package/dist/commands/import/jira.d.ts.map +1 -1
  35. package/dist/commands/import/jira.js +10 -5
  36. package/dist/commands/import/jira.js.map +1 -1
  37. package/dist/commands/import/linear.d.ts.map +1 -1
  38. package/dist/commands/import/linear.js +10 -5
  39. package/dist/commands/import/linear.js.map +1 -1
  40. package/dist/commands/import/notion.d.ts.map +1 -1
  41. package/dist/commands/import/notion.js +10 -5
  42. package/dist/commands/import/notion.js.map +1 -1
  43. package/dist/commands/import/sessions.js +2 -2
  44. package/dist/commands/import/slack.d.ts.map +1 -1
  45. package/dist/commands/import/slack.js +12 -7
  46. package/dist/commands/import/slack.js.map +1 -1
  47. package/dist/commands/import/teams.d.ts.map +1 -1
  48. package/dist/commands/import/teams.js +10 -5
  49. package/dist/commands/import/teams.js.map +1 -1
  50. package/dist/commands/import/zoom.d.ts.map +1 -1
  51. package/dist/commands/import/zoom.js +10 -5
  52. package/dist/commands/import/zoom.js.map +1 -1
  53. package/dist/commands/import.d.ts.map +1 -1
  54. package/dist/commands/import.js +43 -1
  55. package/dist/commands/import.js.map +1 -1
  56. package/dist/commands/local.d.ts.map +1 -1
  57. package/dist/commands/local.js +76 -4
  58. package/dist/commands/local.js.map +1 -1
  59. package/dist/commands/mark.d.ts +37 -0
  60. package/dist/commands/mark.d.ts.map +1 -0
  61. package/dist/commands/mark.js +105 -0
  62. package/dist/commands/mark.js.map +1 -0
  63. package/dist/commands/mcp.d.ts +141 -2
  64. package/dist/commands/mcp.d.ts.map +1 -1
  65. package/dist/commands/mcp.js +72 -14
  66. package/dist/commands/mcp.js.map +1 -1
  67. package/dist/commands/registry.d.ts.map +1 -1
  68. package/dist/commands/registry.js +12 -2
  69. package/dist/commands/registry.js.map +1 -1
  70. package/dist/commands/setup.d.ts +39 -0
  71. package/dist/commands/setup.d.ts.map +1 -1
  72. package/dist/commands/setup.js +118 -241
  73. package/dist/commands/setup.js.map +1 -1
  74. package/dist/commands/share.d.ts +7 -0
  75. package/dist/commands/share.d.ts.map +1 -0
  76. package/dist/commands/share.js +60 -0
  77. package/dist/commands/share.js.map +1 -0
  78. package/dist/commands/sync.d.ts +55 -0
  79. package/dist/commands/sync.d.ts.map +1 -0
  80. package/dist/commands/sync.js +278 -0
  81. package/dist/commands/sync.js.map +1 -0
  82. package/dist/commands/telemetry.d.ts +3 -3
  83. package/dist/commands/telemetry.js +6 -6
  84. package/dist/commands/telemetry.js.map +1 -1
  85. package/dist/commands/why.d.ts.map +1 -1
  86. package/dist/commands/why.js +27 -1
  87. package/dist/commands/why.js.map +1 -1
  88. package/dist/index.d.ts +3 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/lib/ask-key-offer.d.ts +38 -0
  93. package/dist/lib/ask-key-offer.d.ts.map +1 -0
  94. package/dist/lib/ask-key-offer.js +130 -0
  95. package/dist/lib/ask-key-offer.js.map +1 -0
  96. package/dist/lib/backfill-state.d.ts +116 -0
  97. package/dist/lib/backfill-state.d.ts.map +1 -0
  98. package/dist/lib/backfill-state.js +342 -0
  99. package/dist/lib/backfill-state.js.map +1 -0
  100. package/dist/lib/backup-copy.d.ts +17 -0
  101. package/dist/lib/backup-copy.d.ts.map +1 -0
  102. package/dist/lib/backup-copy.js +13 -0
  103. package/dist/lib/backup-copy.js.map +1 -0
  104. package/dist/lib/capture-report.d.ts +22 -18
  105. package/dist/lib/capture-report.d.ts.map +1 -1
  106. package/dist/lib/capture-report.js +64 -2
  107. package/dist/lib/capture-report.js.map +1 -1
  108. package/dist/lib/config.d.ts +56 -24
  109. package/dist/lib/config.d.ts.map +1 -1
  110. package/dist/lib/config.js +176 -45
  111. package/dist/lib/config.js.map +1 -1
  112. package/dist/lib/confirm-timeout.d.ts +8 -0
  113. package/dist/lib/confirm-timeout.d.ts.map +1 -0
  114. package/dist/lib/confirm-timeout.js +18 -0
  115. package/dist/lib/confirm-timeout.js.map +1 -0
  116. package/dist/lib/curation/check-marks.d.ts +48 -0
  117. package/dist/lib/curation/check-marks.d.ts.map +1 -0
  118. package/dist/lib/curation/check-marks.js +81 -0
  119. package/dist/lib/curation/check-marks.js.map +1 -0
  120. package/dist/lib/curation/guardrail.d.ts +39 -0
  121. package/dist/lib/curation/guardrail.d.ts.map +1 -0
  122. package/dist/lib/curation/guardrail.js +93 -0
  123. package/dist/lib/curation/guardrail.js.map +1 -0
  124. package/dist/lib/curation/judge.d.ts +3 -0
  125. package/dist/lib/curation/judge.d.ts.map +1 -0
  126. package/dist/lib/curation/judge.js +9 -0
  127. package/dist/lib/curation/judge.js.map +1 -0
  128. package/dist/lib/curation/judgements-db.d.ts +96 -0
  129. package/dist/lib/curation/judgements-db.d.ts.map +1 -0
  130. package/dist/lib/curation/judgements-db.js +200 -0
  131. package/dist/lib/curation/judgements-db.js.map +1 -0
  132. package/dist/lib/curation/last-check.d.ts +32 -0
  133. package/dist/lib/curation/last-check.d.ts.map +1 -0
  134. package/dist/lib/curation/last-check.js +81 -0
  135. package/dist/lib/curation/last-check.js.map +1 -0
  136. package/dist/lib/curation/mark.d.ts +76 -0
  137. package/dist/lib/curation/mark.d.ts.map +1 -0
  138. package/dist/lib/curation/mark.js +359 -0
  139. package/dist/lib/curation/mark.js.map +1 -0
  140. package/dist/lib/curation/text.d.ts +6 -0
  141. package/dist/lib/curation/text.d.ts.map +1 -0
  142. package/dist/lib/curation/text.js +35 -0
  143. package/dist/lib/curation/text.js.map +1 -0
  144. package/dist/lib/fetchers/capture.d.ts +49 -2
  145. package/dist/lib/fetchers/capture.d.ts.map +1 -1
  146. package/dist/lib/fetchers/capture.js +7 -1
  147. package/dist/lib/fetchers/capture.js.map +1 -1
  148. package/dist/lib/fetchers/confluence.d.ts +2 -2
  149. package/dist/lib/fetchers/confluence.d.ts.map +1 -1
  150. package/dist/lib/fetchers/confluence.js.map +1 -1
  151. package/dist/lib/fetchers/git.d.ts +1 -0
  152. package/dist/lib/fetchers/git.d.ts.map +1 -1
  153. package/dist/lib/fetchers/git.js +3 -1
  154. package/dist/lib/fetchers/git.js.map +1 -1
  155. package/dist/lib/fetchers/github.d.ts +44 -5
  156. package/dist/lib/fetchers/github.d.ts.map +1 -1
  157. package/dist/lib/fetchers/github.js +122 -5
  158. package/dist/lib/fetchers/github.js.map +1 -1
  159. package/dist/lib/fetchers/gitlab.d.ts +2 -2
  160. package/dist/lib/fetchers/gitlab.d.ts.map +1 -1
  161. package/dist/lib/fetchers/gitlab.js.map +1 -1
  162. package/dist/lib/fetchers/jira.d.ts +2 -2
  163. package/dist/lib/fetchers/jira.d.ts.map +1 -1
  164. package/dist/lib/fetchers/jira.js.map +1 -1
  165. package/dist/lib/fetchers/linear.d.ts +2 -2
  166. package/dist/lib/fetchers/linear.d.ts.map +1 -1
  167. package/dist/lib/fetchers/linear.js.map +1 -1
  168. package/dist/lib/fetchers/notion.d.ts +2 -2
  169. package/dist/lib/fetchers/notion.d.ts.map +1 -1
  170. package/dist/lib/fetchers/notion.js.map +1 -1
  171. package/dist/lib/fetchers/slack.d.ts +2 -3
  172. package/dist/lib/fetchers/slack.d.ts.map +1 -1
  173. package/dist/lib/fetchers/slack.js.map +1 -1
  174. package/dist/lib/fetchers/teams.d.ts +2 -2
  175. package/dist/lib/fetchers/teams.d.ts.map +1 -1
  176. package/dist/lib/fetchers/teams.js.map +1 -1
  177. package/dist/lib/fetchers/zoom.d.ts +2 -2
  178. package/dist/lib/fetchers/zoom.d.ts.map +1 -1
  179. package/dist/lib/fetchers/zoom.js.map +1 -1
  180. package/dist/lib/gateway-client.d.ts +34 -0
  181. package/dist/lib/gateway-client.d.ts.map +1 -1
  182. package/dist/lib/gateway-client.js +19 -1
  183. package/dist/lib/gateway-client.js.map +1 -1
  184. package/dist/lib/github-text.d.ts +3 -0
  185. package/dist/lib/github-text.d.ts.map +1 -0
  186. package/dist/lib/github-text.js +18 -0
  187. package/dist/lib/github-text.js.map +1 -0
  188. package/dist/lib/hook-context.d.ts +10 -0
  189. package/dist/lib/hook-context.d.ts.map +1 -1
  190. package/dist/lib/hook-context.js +14 -0
  191. package/dist/lib/hook-context.js.map +1 -1
  192. package/dist/lib/import-defaults.d.ts +39 -23
  193. package/dist/lib/import-defaults.d.ts.map +1 -1
  194. package/dist/lib/import-defaults.js +28 -26
  195. package/dist/lib/import-defaults.js.map +1 -1
  196. package/dist/lib/launch/adapters/aider.d.ts +17 -0
  197. package/dist/lib/launch/adapters/aider.d.ts.map +1 -0
  198. package/dist/lib/launch/adapters/aider.js +30 -0
  199. package/dist/lib/launch/adapters/aider.js.map +1 -0
  200. package/dist/lib/launch/adapters/amp.d.ts +18 -0
  201. package/dist/lib/launch/adapters/amp.d.ts.map +1 -0
  202. package/dist/lib/launch/adapters/amp.js +29 -0
  203. package/dist/lib/launch/adapters/amp.js.map +1 -0
  204. package/dist/lib/launch/adapters/auggie.d.ts +18 -0
  205. package/dist/lib/launch/adapters/auggie.d.ts.map +1 -0
  206. package/dist/lib/launch/adapters/auggie.js +34 -0
  207. package/dist/lib/launch/adapters/auggie.js.map +1 -0
  208. package/dist/lib/launch/adapters/cline.d.ts +10 -0
  209. package/dist/lib/launch/adapters/cline.d.ts.map +1 -0
  210. package/dist/lib/launch/adapters/cline.js +41 -0
  211. package/dist/lib/launch/adapters/cline.js.map +1 -0
  212. package/dist/lib/launch/adapters/continue.d.ts +22 -0
  213. package/dist/lib/launch/adapters/continue.d.ts.map +1 -0
  214. package/dist/lib/launch/adapters/continue.js +46 -0
  215. package/dist/lib/launch/adapters/continue.js.map +1 -0
  216. package/dist/lib/launch/adapters/droid.d.ts +19 -0
  217. package/dist/lib/launch/adapters/droid.d.ts.map +1 -0
  218. package/dist/lib/launch/adapters/droid.js +38 -0
  219. package/dist/lib/launch/adapters/droid.js.map +1 -0
  220. package/dist/lib/launch/adapters/gemini-cli.d.ts +13 -14
  221. package/dist/lib/launch/adapters/gemini-cli.d.ts.map +1 -1
  222. package/dist/lib/launch/adapters/gemini-cli.js +38 -53
  223. package/dist/lib/launch/adapters/gemini-cli.js.map +1 -1
  224. package/dist/lib/launch/adapters/goose.d.ts +20 -0
  225. package/dist/lib/launch/adapters/goose.d.ts.map +1 -0
  226. package/dist/lib/launch/adapters/goose.js +47 -0
  227. package/dist/lib/launch/adapters/goose.js.map +1 -0
  228. package/dist/lib/launch/adapters/grok-build.d.ts +16 -0
  229. package/dist/lib/launch/adapters/grok-build.d.ts.map +1 -0
  230. package/dist/lib/launch/adapters/grok-build.js +25 -0
  231. package/dist/lib/launch/adapters/grok-build.js.map +1 -0
  232. package/dist/lib/launch/adapters/kiro.d.ts +17 -0
  233. package/dist/lib/launch/adapters/kiro.d.ts.map +1 -0
  234. package/dist/lib/launch/adapters/kiro.js +25 -0
  235. package/dist/lib/launch/adapters/kiro.js.map +1 -0
  236. package/dist/lib/launch/adapters/notes.d.ts +7 -0
  237. package/dist/lib/launch/adapters/notes.d.ts.map +1 -0
  238. package/dist/lib/launch/adapters/notes.js +5 -0
  239. package/dist/lib/launch/adapters/notes.js.map +1 -0
  240. package/dist/lib/launch/adapters/qwen.d.ts +25 -0
  241. package/dist/lib/launch/adapters/qwen.d.ts.map +1 -0
  242. package/dist/lib/launch/adapters/qwen.js +67 -0
  243. package/dist/lib/launch/adapters/qwen.js.map +1 -0
  244. package/dist/lib/launch/agents.d.ts +6 -1
  245. package/dist/lib/launch/agents.d.ts.map +1 -1
  246. package/dist/lib/launch/agents.js +12 -4
  247. package/dist/lib/launch/agents.js.map +1 -1
  248. package/dist/lib/launch/amp-state.d.ts +21 -0
  249. package/dist/lib/launch/amp-state.d.ts.map +1 -0
  250. package/dist/lib/launch/amp-state.js +61 -0
  251. package/dist/lib/launch/amp-state.js.map +1 -0
  252. package/dist/lib/launch/auggie-state.d.ts +25 -0
  253. package/dist/lib/launch/auggie-state.d.ts.map +1 -0
  254. package/dist/lib/launch/auggie-state.js +74 -0
  255. package/dist/lib/launch/auggie-state.js.map +1 -0
  256. package/dist/lib/launch/cline-state.d.ts +32 -0
  257. package/dist/lib/launch/cline-state.d.ts.map +1 -0
  258. package/dist/lib/launch/cline-state.js +108 -0
  259. package/dist/lib/launch/cline-state.js.map +1 -0
  260. package/dist/lib/launch/config-writes.d.ts +11 -1
  261. package/dist/lib/launch/config-writes.d.ts.map +1 -1
  262. package/dist/lib/launch/config-writes.js +66 -8
  263. package/dist/lib/launch/config-writes.js.map +1 -1
  264. package/dist/lib/launch/continue-state.d.ts +41 -0
  265. package/dist/lib/launch/continue-state.d.ts.map +1 -0
  266. package/dist/lib/launch/continue-state.js +142 -0
  267. package/dist/lib/launch/continue-state.js.map +1 -0
  268. package/dist/lib/launch/detect.d.ts.map +1 -1
  269. package/dist/lib/launch/detect.js +5 -2
  270. package/dist/lib/launch/detect.js.map +1 -1
  271. package/dist/lib/launch/droid-state.d.ts +24 -0
  272. package/dist/lib/launch/droid-state.d.ts.map +1 -0
  273. package/dist/lib/launch/droid-state.js +74 -0
  274. package/dist/lib/launch/droid-state.js.map +1 -0
  275. package/dist/lib/launch/gemini-state.d.ts +26 -20
  276. package/dist/lib/launch/gemini-state.d.ts.map +1 -1
  277. package/dist/lib/launch/gemini-state.js +95 -37
  278. package/dist/lib/launch/gemini-state.js.map +1 -1
  279. package/dist/lib/launch/gemini-system-file.d.ts +17 -0
  280. package/dist/lib/launch/gemini-system-file.d.ts.map +1 -0
  281. package/dist/lib/launch/gemini-system-file.js +55 -0
  282. package/dist/lib/launch/gemini-system-file.js.map +1 -0
  283. package/dist/lib/launch/gemini-trust.d.ts +3 -1
  284. package/dist/lib/launch/gemini-trust.d.ts.map +1 -1
  285. package/dist/lib/launch/gemini-trust.js +10 -3
  286. package/dist/lib/launch/gemini-trust.js.map +1 -1
  287. package/dist/lib/launch/goose-state.d.ts +53 -0
  288. package/dist/lib/launch/goose-state.d.ts.map +1 -0
  289. package/dist/lib/launch/goose-state.js +137 -0
  290. package/dist/lib/launch/goose-state.js.map +1 -0
  291. package/dist/lib/launch/grok-state.d.ts +42 -0
  292. package/dist/lib/launch/grok-state.d.ts.map +1 -0
  293. package/dist/lib/launch/grok-state.js +128 -0
  294. package/dist/lib/launch/grok-state.js.map +1 -0
  295. package/dist/lib/launch/kiro-state.d.ts +22 -0
  296. package/dist/lib/launch/kiro-state.d.ts.map +1 -0
  297. package/dist/lib/launch/kiro-state.js +59 -0
  298. package/dist/lib/launch/kiro-state.js.map +1 -0
  299. package/dist/lib/launch/launch-files.d.ts.map +1 -1
  300. package/dist/lib/launch/launch-files.js +3 -2
  301. package/dist/lib/launch/launch-files.js.map +1 -1
  302. package/dist/lib/launch/launch.d.ts +51 -2
  303. package/dist/lib/launch/launch.d.ts.map +1 -1
  304. package/dist/lib/launch/launch.js +70 -6
  305. package/dist/lib/launch/launch.js.map +1 -1
  306. package/dist/lib/launch/layer-files.d.ts +12 -0
  307. package/dist/lib/launch/layer-files.d.ts.map +1 -0
  308. package/dist/lib/launch/layer-files.js +43 -0
  309. package/dist/lib/launch/layer-files.js.map +1 -0
  310. package/dist/lib/launch/mcp-child-env.d.ts +30 -0
  311. package/dist/lib/launch/mcp-child-env.d.ts.map +1 -0
  312. package/dist/lib/launch/mcp-child-env.js +151 -0
  313. package/dist/lib/launch/mcp-child-env.js.map +1 -0
  314. package/dist/lib/launch/pick-agent.d.ts.map +1 -1
  315. package/dist/lib/launch/pick-agent.js +7 -6
  316. package/dist/lib/launch/pick-agent.js.map +1 -1
  317. package/dist/lib/launch/picker-options.d.ts.map +1 -1
  318. package/dist/lib/launch/picker-options.js +7 -2
  319. package/dist/lib/launch/picker-options.js.map +1 -1
  320. package/dist/lib/launch/qwen-state.d.ts +30 -0
  321. package/dist/lib/launch/qwen-state.d.ts.map +1 -0
  322. package/dist/lib/launch/qwen-state.js +57 -0
  323. package/dist/lib/launch/qwen-state.js.map +1 -0
  324. package/dist/lib/launch/qwen-trust.d.ts +24 -0
  325. package/dist/lib/launch/qwen-trust.d.ts.map +1 -0
  326. package/dist/lib/launch/qwen-trust.js +100 -0
  327. package/dist/lib/launch/qwen-trust.js.map +1 -0
  328. package/dist/lib/launch/registry/agents/aider.d.ts +3 -0
  329. package/dist/lib/launch/registry/agents/aider.d.ts.map +1 -0
  330. package/dist/lib/launch/registry/agents/aider.js +13 -0
  331. package/dist/lib/launch/registry/agents/aider.js.map +1 -0
  332. package/dist/lib/launch/registry/agents/amp.d.ts +3 -0
  333. package/dist/lib/launch/registry/agents/amp.d.ts.map +1 -0
  334. package/dist/lib/launch/registry/agents/amp.js +14 -0
  335. package/dist/lib/launch/registry/agents/amp.js.map +1 -0
  336. package/dist/lib/launch/registry/agents/auggie.d.ts +3 -0
  337. package/dist/lib/launch/registry/agents/auggie.d.ts.map +1 -0
  338. package/dist/lib/launch/registry/agents/auggie.js +11 -0
  339. package/dist/lib/launch/registry/agents/auggie.js.map +1 -0
  340. package/dist/lib/launch/registry/agents/cline.d.ts +3 -0
  341. package/dist/lib/launch/registry/agents/cline.d.ts.map +1 -0
  342. package/dist/lib/launch/registry/agents/cline.js +19 -0
  343. package/dist/lib/launch/registry/agents/cline.js.map +1 -0
  344. package/dist/lib/launch/registry/agents/continue.d.ts +3 -0
  345. package/dist/lib/launch/registry/agents/continue.d.ts.map +1 -0
  346. package/dist/lib/launch/registry/agents/continue.js +20 -0
  347. package/dist/lib/launch/registry/agents/continue.js.map +1 -0
  348. package/dist/lib/launch/registry/agents/droid.d.ts +3 -0
  349. package/dist/lib/launch/registry/agents/droid.d.ts.map +1 -0
  350. package/dist/lib/launch/registry/agents/droid.js +13 -0
  351. package/dist/lib/launch/registry/agents/droid.js.map +1 -0
  352. package/dist/lib/launch/registry/agents/gemini-cli.js +2 -2
  353. package/dist/lib/launch/registry/agents/gemini-cli.js.map +1 -1
  354. package/dist/lib/launch/registry/agents/goose.d.ts +3 -0
  355. package/dist/lib/launch/registry/agents/goose.d.ts.map +1 -0
  356. package/dist/lib/launch/registry/agents/goose.js +20 -0
  357. package/dist/lib/launch/registry/agents/goose.js.map +1 -0
  358. package/dist/lib/launch/registry/agents/grok-build.d.ts +3 -0
  359. package/dist/lib/launch/registry/agents/grok-build.d.ts.map +1 -0
  360. package/dist/lib/launch/registry/agents/grok-build.js +14 -0
  361. package/dist/lib/launch/registry/agents/grok-build.js.map +1 -0
  362. package/dist/lib/launch/registry/agents/kiro.d.ts +3 -0
  363. package/dist/lib/launch/registry/agents/kiro.d.ts.map +1 -0
  364. package/dist/lib/launch/registry/agents/kiro.js +11 -0
  365. package/dist/lib/launch/registry/agents/kiro.js.map +1 -0
  366. package/dist/lib/launch/registry/agents/qwen.d.ts +3 -0
  367. package/dist/lib/launch/registry/agents/qwen.d.ts.map +1 -0
  368. package/dist/lib/launch/registry/agents/qwen.js +11 -0
  369. package/dist/lib/launch/registry/agents/qwen.js.map +1 -0
  370. package/dist/lib/launch/registry/index.d.ts +4 -1
  371. package/dist/lib/launch/registry/index.d.ts.map +1 -1
  372. package/dist/lib/launch/registry/index.js +15 -2
  373. package/dist/lib/launch/registry/index.js.map +1 -1
  374. package/dist/lib/launch/registry/types.d.ts +17 -1
  375. package/dist/lib/launch/registry/types.d.ts.map +1 -1
  376. package/dist/lib/launch/run-agent.d.ts +11 -0
  377. package/dist/lib/launch/run-agent.d.ts.map +1 -1
  378. package/dist/lib/launch/run-agent.js +22 -1
  379. package/dist/lib/launch/run-agent.js.map +1 -1
  380. package/dist/lib/launch/strict-entry.d.ts +22 -2
  381. package/dist/lib/launch/strict-entry.d.ts.map +1 -1
  382. package/dist/lib/launch/strict-entry.js +82 -2
  383. package/dist/lib/launch/strict-entry.js.map +1 -1
  384. package/dist/lib/launch/yaml-scan.d.ts +59 -0
  385. package/dist/lib/launch/yaml-scan.d.ts.map +1 -0
  386. package/dist/lib/launch/yaml-scan.js +275 -0
  387. package/dist/lib/launch/yaml-scan.js.map +1 -0
  388. package/dist/lib/llm-providers.d.ts +66 -0
  389. package/dist/lib/llm-providers.d.ts.map +1 -0
  390. package/dist/lib/llm-providers.js +150 -0
  391. package/dist/lib/llm-providers.js.map +1 -0
  392. package/dist/lib/local-db-epoch.d.ts +4 -0
  393. package/dist/lib/local-db-epoch.d.ts.map +1 -0
  394. package/dist/lib/local-db-epoch.js +19 -0
  395. package/dist/lib/local-db-epoch.js.map +1 -0
  396. package/dist/lib/local-db-migrate.d.ts +85 -0
  397. package/dist/lib/local-db-migrate.d.ts.map +1 -0
  398. package/dist/lib/local-db-migrate.js +484 -0
  399. package/dist/lib/local-db-migrate.js.map +1 -0
  400. package/dist/lib/local-db-v10.d.ts +28 -0
  401. package/dist/lib/local-db-v10.d.ts.map +1 -0
  402. package/dist/lib/local-db-v10.js +49 -0
  403. package/dist/lib/local-db-v10.js.map +1 -0
  404. package/dist/lib/local-db-v11.d.ts +24 -0
  405. package/dist/lib/local-db-v11.d.ts.map +1 -0
  406. package/dist/lib/local-db-v11.js +25 -0
  407. package/dist/lib/local-db-v11.js.map +1 -0
  408. package/dist/lib/local-db-v7.d.ts +30 -0
  409. package/dist/lib/local-db-v7.d.ts.map +1 -0
  410. package/dist/lib/local-db-v7.js +285 -0
  411. package/dist/lib/local-db-v7.js.map +1 -0
  412. package/dist/lib/local-db-v8.d.ts +22 -0
  413. package/dist/lib/local-db-v8.d.ts.map +1 -0
  414. package/dist/lib/local-db-v8.js +33 -0
  415. package/dist/lib/local-db-v8.js.map +1 -0
  416. package/dist/lib/local-db-v9.d.ts +10 -0
  417. package/dist/lib/local-db-v9.d.ts.map +1 -0
  418. package/dist/lib/local-db-v9.js +8 -0
  419. package/dist/lib/local-db-v9.js.map +1 -0
  420. package/dist/lib/local-db.d.ts +61 -11
  421. package/dist/lib/local-db.d.ts.map +1 -1
  422. package/dist/lib/local-db.js +186 -371
  423. package/dist/lib/local-db.js.map +1 -1
  424. package/dist/lib/local-embeddings.d.ts.map +1 -1
  425. package/dist/lib/local-embeddings.js +2 -2
  426. package/dist/lib/local-embeddings.js.map +1 -1
  427. package/dist/lib/local-gateway-client.d.ts +30 -87
  428. package/dist/lib/local-gateway-client.d.ts.map +1 -1
  429. package/dist/lib/local-gateway-client.js +182 -171
  430. package/dist/lib/local-gateway-client.js.map +1 -1
  431. package/dist/lib/local-ingest.d.ts +129 -0
  432. package/dist/lib/local-ingest.d.ts.map +1 -0
  433. package/dist/lib/local-ingest.js +81 -0
  434. package/dist/lib/local-ingest.js.map +1 -0
  435. package/dist/lib/local-link-pass.d.ts +15 -0
  436. package/dist/lib/local-link-pass.d.ts.map +1 -0
  437. package/dist/lib/local-link-pass.js +61 -0
  438. package/dist/lib/local-link-pass.js.map +1 -0
  439. package/dist/lib/local-llm.d.ts +63 -12
  440. package/dist/lib/local-llm.d.ts.map +1 -1
  441. package/dist/lib/local-llm.js +229 -104
  442. package/dist/lib/local-llm.js.map +1 -1
  443. package/dist/lib/local-mode.d.ts +4 -1
  444. package/dist/lib/local-mode.d.ts.map +1 -1
  445. package/dist/lib/local-mode.js +16 -1
  446. package/dist/lib/local-mode.js.map +1 -1
  447. package/dist/lib/local-provenance.d.ts +14 -0
  448. package/dist/lib/local-provenance.d.ts.map +1 -0
  449. package/dist/lib/local-provenance.js +14 -0
  450. package/dist/lib/local-provenance.js.map +1 -0
  451. package/dist/lib/local-thresholds.d.ts +70 -0
  452. package/dist/lib/local-thresholds.d.ts.map +1 -0
  453. package/dist/lib/local-thresholds.js +79 -0
  454. package/dist/lib/local-thresholds.js.map +1 -0
  455. package/dist/lib/mcp/mark-tool.d.ts +27 -0
  456. package/dist/lib/mcp/mark-tool.d.ts.map +1 -0
  457. package/dist/lib/mcp/mark-tool.js +103 -0
  458. package/dist/lib/mcp/mark-tool.js.map +1 -0
  459. package/dist/lib/mcp/share-tool.d.ts +46 -0
  460. package/dist/lib/mcp/share-tool.d.ts.map +1 -0
  461. package/dist/lib/mcp/share-tool.js +68 -0
  462. package/dist/lib/mcp/share-tool.js.map +1 -0
  463. package/dist/lib/mcp/tool-rules.d.ts +30 -0
  464. package/dist/lib/mcp/tool-rules.d.ts.map +1 -0
  465. package/dist/lib/mcp/tool-rules.js +84 -0
  466. package/dist/lib/mcp/tool-rules.js.map +1 -0
  467. package/dist/lib/mcp-backfill.d.ts +89 -0
  468. package/dist/lib/mcp-backfill.d.ts.map +1 -0
  469. package/dist/lib/mcp-backfill.js +194 -0
  470. package/dist/lib/mcp-backfill.js.map +1 -0
  471. package/dist/lib/mcp-scope.d.ts +90 -0
  472. package/dist/lib/mcp-scope.d.ts.map +1 -0
  473. package/dist/lib/mcp-scope.js +125 -0
  474. package/dist/lib/mcp-scope.js.map +1 -0
  475. package/dist/lib/mcp-sync.d.ts +64 -0
  476. package/dist/lib/mcp-sync.d.ts.map +1 -0
  477. package/dist/lib/mcp-sync.js +183 -0
  478. package/dist/lib/mcp-sync.js.map +1 -0
  479. package/dist/lib/personal-import.d.ts +7 -0
  480. package/dist/lib/personal-import.d.ts.map +1 -1
  481. package/dist/lib/personal-import.js +13 -1
  482. package/dist/lib/personal-import.js.map +1 -1
  483. package/dist/lib/safe-config-write.d.ts +12 -1
  484. package/dist/lib/safe-config-write.d.ts.map +1 -1
  485. package/dist/lib/safe-config-write.js +162 -9
  486. package/dist/lib/safe-config-write.js.map +1 -1
  487. package/dist/lib/scope-choices.d.ts +51 -0
  488. package/dist/lib/scope-choices.d.ts.map +1 -0
  489. package/dist/lib/scope-choices.js +193 -0
  490. package/dist/lib/scope-choices.js.map +1 -0
  491. package/dist/lib/scope-connect.d.ts +82 -0
  492. package/dist/lib/scope-connect.d.ts.map +1 -0
  493. package/dist/lib/scope-connect.js +258 -0
  494. package/dist/lib/scope-connect.js.map +1 -0
  495. package/dist/lib/scope-defaults.d.ts +3 -0
  496. package/dist/lib/scope-defaults.d.ts.map +1 -0
  497. package/dist/lib/scope-defaults.js +42 -0
  498. package/dist/lib/scope-defaults.js.map +1 -0
  499. package/dist/lib/scope-real.d.ts +223 -0
  500. package/dist/lib/scope-real.d.ts.map +1 -0
  501. package/dist/lib/scope-real.js +58 -0
  502. package/dist/lib/scope-real.js.map +1 -0
  503. package/dist/lib/scope-values.d.ts +76 -0
  504. package/dist/lib/scope-values.d.ts.map +1 -0
  505. package/dist/lib/scope-values.js +169 -0
  506. package/dist/lib/scope-values.js.map +1 -0
  507. package/dist/lib/scope.d.ts +161 -0
  508. package/dist/lib/scope.d.ts.map +1 -0
  509. package/dist/lib/scope.js +323 -0
  510. package/dist/lib/scope.js.map +1 -0
  511. package/dist/lib/share/command.d.ts +32 -0
  512. package/dist/lib/share/command.d.ts.map +1 -0
  513. package/dist/lib/share/command.js +136 -0
  514. package/dist/lib/share/command.js.map +1 -0
  515. package/dist/lib/share/ledger.d.ts +59 -0
  516. package/dist/lib/share/ledger.d.ts.map +1 -0
  517. package/dist/lib/share/ledger.js +135 -0
  518. package/dist/lib/share/ledger.js.map +1 -0
  519. package/dist/lib/share/payload.d.ts +92 -0
  520. package/dist/lib/share/payload.d.ts.map +1 -0
  521. package/dist/lib/share/payload.js +138 -0
  522. package/dist/lib/share/payload.js.map +1 -0
  523. package/dist/lib/share/pending.d.ts +48 -0
  524. package/dist/lib/share/pending.d.ts.map +1 -0
  525. package/dist/lib/share/pending.js +130 -0
  526. package/dist/lib/share/pending.js.map +1 -0
  527. package/dist/lib/share/preview.d.ts +18 -0
  528. package/dist/lib/share/preview.d.ts.map +1 -0
  529. package/dist/lib/share/preview.js +72 -0
  530. package/dist/lib/share/preview.js.map +1 -0
  531. package/dist/lib/share/run.d.ts +115 -0
  532. package/dist/lib/share/run.d.ts.map +1 -0
  533. package/dist/lib/share/run.js +261 -0
  534. package/dist/lib/share/run.js.map +1 -0
  535. package/dist/lib/share/salt.d.ts +2 -0
  536. package/dist/lib/share/salt.d.ts.map +1 -0
  537. package/dist/lib/share/salt.js +44 -0
  538. package/dist/lib/share/salt.js.map +1 -0
  539. package/dist/lib/share/secret-patterns.json +100 -0
  540. package/dist/lib/share/secret-scan.d.ts +19 -0
  541. package/dist/lib/share/secret-scan.d.ts.map +1 -0
  542. package/dist/lib/share/secret-scan.js +75 -0
  543. package/dist/lib/share/secret-scan.js.map +1 -0
  544. package/dist/lib/share/tty.d.ts +4 -0
  545. package/dist/lib/share/tty.d.ts.map +1 -0
  546. package/dist/lib/share/tty.js +57 -0
  547. package/dist/lib/share/tty.js.map +1 -0
  548. package/dist/lib/share/visible.d.ts +4 -0
  549. package/dist/lib/share/visible.d.ts.map +1 -0
  550. package/dist/lib/share/visible.js +30 -0
  551. package/dist/lib/share/visible.js.map +1 -0
  552. package/dist/lib/share/wire.d.ts +98 -0
  553. package/dist/lib/share/wire.d.ts.map +1 -0
  554. package/dist/lib/share/wire.js +43 -0
  555. package/dist/lib/share/wire.js.map +1 -0
  556. package/dist/lib/similarity/embedding-matrix.d.ts +64 -0
  557. package/dist/lib/similarity/embedding-matrix.d.ts.map +1 -0
  558. package/dist/lib/similarity/embedding-matrix.js +119 -0
  559. package/dist/lib/similarity/embedding-matrix.js.map +1 -0
  560. package/dist/lib/since-flag.d.ts +11 -0
  561. package/dist/lib/since-flag.d.ts.map +1 -0
  562. package/dist/lib/since-flag.js +24 -0
  563. package/dist/lib/since-flag.js.map +1 -0
  564. package/dist/lib/since.d.ts +59 -0
  565. package/dist/lib/since.d.ts.map +1 -0
  566. package/dist/lib/since.js +86 -0
  567. package/dist/lib/since.js.map +1 -0
  568. package/dist/lib/source-key.d.ts +13 -0
  569. package/dist/lib/source-key.d.ts.map +1 -0
  570. package/dist/lib/source-key.js +60 -0
  571. package/dist/lib/source-key.js.map +1 -0
  572. package/dist/lib/source-sync-state.d.ts +12 -0
  573. package/dist/lib/source-sync-state.d.ts.map +1 -0
  574. package/dist/lib/source-sync-state.js +43 -0
  575. package/dist/lib/source-sync-state.js.map +1 -0
  576. package/dist/lib/startup-backfill-track.d.ts +2 -0
  577. package/dist/lib/startup-backfill-track.d.ts.map +1 -0
  578. package/dist/lib/startup-backfill-track.js +6 -0
  579. package/dist/lib/startup-backfill-track.js.map +1 -0
  580. package/dist/lib/startup-env.d.ts +8 -0
  581. package/dist/lib/startup-env.d.ts.map +1 -0
  582. package/dist/lib/startup-env.js +8 -0
  583. package/dist/lib/startup-env.js.map +1 -0
  584. package/dist/lib/startup-xdg.d.ts +2 -0
  585. package/dist/lib/startup-xdg.d.ts.map +1 -0
  586. package/dist/lib/startup-xdg.js +9 -0
  587. package/dist/lib/startup-xdg.js.map +1 -0
  588. package/dist/lib/sync/after-connect.d.ts +2 -0
  589. package/dist/lib/sync/after-connect.d.ts.map +1 -0
  590. package/dist/lib/sync/after-connect.js +18 -0
  591. package/dist/lib/sync/after-connect.js.map +1 -0
  592. package/dist/lib/sync/bg-claim.d.ts +14 -0
  593. package/dist/lib/sync/bg-claim.d.ts.map +1 -0
  594. package/dist/lib/sync/bg-claim.js +97 -0
  595. package/dist/lib/sync/bg-claim.js.map +1 -0
  596. package/dist/lib/sync/blocked.d.ts +8 -0
  597. package/dist/lib/sync/blocked.d.ts.map +1 -0
  598. package/dist/lib/sync/blocked.js +44 -0
  599. package/dist/lib/sync/blocked.js.map +1 -0
  600. package/dist/lib/sync/classify.d.ts +34 -0
  601. package/dist/lib/sync/classify.d.ts.map +1 -0
  602. package/dist/lib/sync/classify.js +91 -0
  603. package/dist/lib/sync/classify.js.map +1 -0
  604. package/dist/lib/sync/drain.d.ts +16 -0
  605. package/dist/lib/sync/drain.d.ts.map +1 -0
  606. package/dist/lib/sync/drain.js +33 -0
  607. package/dist/lib/sync/drain.js.map +1 -0
  608. package/dist/lib/sync/forget.d.ts +12 -0
  609. package/dist/lib/sync/forget.d.ts.map +1 -0
  610. package/dist/lib/sync/forget.js +32 -0
  611. package/dist/lib/sync/forget.js.map +1 -0
  612. package/dist/lib/sync/launch-hook.d.ts +42 -0
  613. package/dist/lib/sync/launch-hook.d.ts.map +1 -0
  614. package/dist/lib/sync/launch-hook.js +117 -0
  615. package/dist/lib/sync/launch-hook.js.map +1 -0
  616. package/dist/lib/sync/lock.d.ts +35 -0
  617. package/dist/lib/sync/lock.d.ts.map +1 -0
  618. package/dist/lib/sync/lock.js +175 -0
  619. package/dist/lib/sync/lock.js.map +1 -0
  620. package/dist/lib/sync/purge.d.ts +38 -0
  621. package/dist/lib/sync/purge.d.ts.map +1 -0
  622. package/dist/lib/sync/purge.js +61 -0
  623. package/dist/lib/sync/purge.js.map +1 -0
  624. package/dist/lib/sync/real-env.d.ts +208 -0
  625. package/dist/lib/sync/real-env.d.ts.map +1 -0
  626. package/dist/lib/sync/real-env.js +47 -0
  627. package/dist/lib/sync/real-env.js.map +1 -0
  628. package/dist/lib/sync/relink.d.ts +14 -0
  629. package/dist/lib/sync/relink.d.ts.map +1 -0
  630. package/dist/lib/sync/relink.js +36 -0
  631. package/dist/lib/sync/relink.js.map +1 -0
  632. package/dist/lib/sync/report.d.ts +3 -0
  633. package/dist/lib/sync/report.d.ts.map +1 -0
  634. package/dist/lib/sync/report.js +54 -0
  635. package/dist/lib/sync/report.js.map +1 -0
  636. package/dist/lib/sync/run-all.d.ts +23 -0
  637. package/dist/lib/sync/run-all.d.ts.map +1 -0
  638. package/dist/lib/sync/run-all.js +30 -0
  639. package/dist/lib/sync/run-all.js.map +1 -0
  640. package/dist/lib/sync/run-source.d.ts +73 -0
  641. package/dist/lib/sync/run-source.d.ts.map +1 -0
  642. package/dist/lib/sync/run-source.js +262 -0
  643. package/dist/lib/sync/run-source.js.map +1 -0
  644. package/dist/lib/sync/safe-read.d.ts +4 -0
  645. package/dist/lib/sync/safe-read.d.ts.map +1 -0
  646. package/dist/lib/sync/safe-read.js +40 -0
  647. package/dist/lib/sync/safe-read.js.map +1 -0
  648. package/dist/lib/sync/should-background-sync.d.ts +31 -0
  649. package/dist/lib/sync/should-background-sync.d.ts.map +1 -0
  650. package/dist/lib/sync/should-background-sync.js +69 -0
  651. package/dist/lib/sync/should-background-sync.js.map +1 -0
  652. package/dist/lib/sync/source-ids.d.ts +10 -0
  653. package/dist/lib/sync/source-ids.d.ts.map +1 -0
  654. package/dist/lib/sync/source-ids.js +9 -0
  655. package/dist/lib/sync/source-ids.js.map +1 -0
  656. package/dist/lib/sync/sources.d.ts +33 -0
  657. package/dist/lib/sync/sources.d.ts.map +1 -0
  658. package/dist/lib/sync/sources.js +37 -0
  659. package/dist/lib/sync/sources.js.map +1 -0
  660. package/dist/lib/sync/spawn-background.d.ts +27 -0
  661. package/dist/lib/sync/spawn-background.d.ts.map +1 -0
  662. package/dist/lib/sync/spawn-background.js +66 -0
  663. package/dist/lib/sync/spawn-background.js.map +1 -0
  664. package/dist/lib/sync/status.d.ts +57 -0
  665. package/dist/lib/sync/status.d.ts.map +1 -0
  666. package/dist/lib/sync/status.js +166 -0
  667. package/dist/lib/sync/status.js.map +1 -0
  668. package/dist/lib/sync/summary-read.d.ts +19 -0
  669. package/dist/lib/sync/summary-read.d.ts.map +1 -0
  670. package/dist/lib/sync/summary-read.js +39 -0
  671. package/dist/lib/sync/summary-read.js.map +1 -0
  672. package/dist/lib/sync/summary.d.ts +10 -0
  673. package/dist/lib/sync/summary.d.ts.map +1 -0
  674. package/dist/lib/sync/summary.js +80 -0
  675. package/dist/lib/sync/summary.js.map +1 -0
  676. package/dist/lib/sync/sync-state.d.ts +128 -0
  677. package/dist/lib/sync/sync-state.d.ts.map +1 -0
  678. package/dist/lib/sync/sync-state.js +253 -0
  679. package/dist/lib/sync/sync-state.js.map +1 -0
  680. package/dist/lib/sync/telemetry.d.ts +20 -0
  681. package/dist/lib/sync/telemetry.d.ts.map +1 -0
  682. package/dist/lib/sync/telemetry.js +31 -0
  683. package/dist/lib/sync/telemetry.js.map +1 -0
  684. package/dist/lib/sync/threads.d.ts +48 -0
  685. package/dist/lib/sync/threads.d.ts.map +1 -0
  686. package/dist/lib/sync/threads.js +82 -0
  687. package/dist/lib/sync/threads.js.map +1 -0
  688. package/dist/lib/sync/window.d.ts +72 -0
  689. package/dist/lib/sync/window.d.ts.map +1 -0
  690. package/dist/lib/sync/window.js +112 -0
  691. package/dist/lib/sync/window.js.map +1 -0
  692. package/dist/lib/team-cta.d.ts +11 -0
  693. package/dist/lib/team-cta.d.ts.map +1 -0
  694. package/dist/lib/team-cta.js +16 -0
  695. package/dist/lib/team-cta.js.map +1 -0
  696. package/dist/lib/telemetry-ci.d.ts +2 -0
  697. package/dist/lib/telemetry-ci.d.ts.map +1 -0
  698. package/dist/lib/telemetry-ci.js +21 -0
  699. package/dist/lib/telemetry-ci.js.map +1 -0
  700. package/dist/lib/telemetry-consent.d.ts +44 -23
  701. package/dist/lib/telemetry-consent.d.ts.map +1 -1
  702. package/dist/lib/telemetry-consent.js +74 -35
  703. package/dist/lib/telemetry-consent.js.map +1 -1
  704. package/dist/lib/telemetry-env.d.ts +1 -1
  705. package/dist/lib/usage-telemetry.d.ts +87 -22
  706. package/dist/lib/usage-telemetry.d.ts.map +1 -1
  707. package/dist/lib/usage-telemetry.js +263 -74
  708. package/dist/lib/usage-telemetry.js.map +1 -1
  709. package/dist/lib/xdg.d.ts +27 -0
  710. package/dist/lib/xdg.d.ts.map +1 -0
  711. package/dist/lib/xdg.js +56 -0
  712. package/dist/lib/xdg.js.map +1 -0
  713. package/package.json +3 -2
  714. package/dist/commands/push.d.ts +0 -25
  715. package/dist/commands/push.d.ts.map +0 -1
  716. package/dist/commands/push.js +0 -98
  717. package/dist/commands/push.js.map +0 -1
@@ -0,0 +1,22 @@
1
+ import type { ContinueProjectState } from '../continue-state.js';
2
+ import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
+ export interface ContinueLaunchContext extends Pick<LaunchContext, 'passthrough' | 'cachePath'>, ContinueProjectState {
4
+ /** The launcher's environment: the user's own values for the MCP child's env block. */
5
+ env?: Record<string, string | undefined>;
6
+ }
7
+ /**
8
+ * Continue CLI (`cn`), per session, nothing written to the user's config (cn 1.5.47): `--mcp`
9
+ * takes a local block when the value is a path (`/`, `.`, `~` or `file://`), and cn merges it into
10
+ * whatever config it loaded. Verified against a stub model: the request carried the user's server
11
+ * and align-local. `file://` + the raw path is used because it is the form that also reads a
12
+ * Windows path: cn's decodePackageIdentifier strips the first 7 characters of a `file://` value and
13
+ * uses the rest as the path, so `file://C:\\...` gives `C:\\...`. pathToFileURL would give
14
+ * `file:///C:/...`, which cn decodes to `/C:/...`, a path that does not exist on Windows.
15
+ *
16
+ * The flag goes first: `--mcp` is a root option, and cn accepted it in front of a subcommand
17
+ * (`cn --mcp f ls --help`). When the loaded config.yaml already defines align-local, nothing is
18
+ * added (canonical: no duplicate; anything else wins over ours, so one line says why). No
19
+ * `--auto`/`--allow`: cn's own tool policy stays the user's.
20
+ */
21
+ export declare function buildContinueLaunch(c: ContinueLaunchContext): LaunchSpec;
22
+ //# sourceMappingURL=continue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/continue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW,CAAC,EAAE,oBAAoB;IACnH,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,qBAAqB,GAAG,UAAU,CAyBxE"}
@@ -0,0 +1,46 @@
1
+ import { alignServerEntry } from '../../mcp-setup.js';
2
+ import { mcpChildEnv } from '../mcp-child-env.js';
3
+ import { unreadableNote } from './notes.js';
4
+ const FILE = 'continue-align-local.yaml';
5
+ /**
6
+ * Continue CLI (`cn`), per session, nothing written to the user's config (cn 1.5.47): `--mcp`
7
+ * takes a local block when the value is a path (`/`, `.`, `~` or `file://`), and cn merges it into
8
+ * whatever config it loaded. Verified against a stub model: the request carried the user's server
9
+ * and align-local. `file://` + the raw path is used because it is the form that also reads a
10
+ * Windows path: cn's decodePackageIdentifier strips the first 7 characters of a `file://` value and
11
+ * uses the rest as the path, so `file://C:\\...` gives `C:\\...`. pathToFileURL would give
12
+ * `file:///C:/...`, which cn decodes to `/C:/...`, a path that does not exist on Windows.
13
+ *
14
+ * The flag goes first: `--mcp` is a root option, and cn accepted it in front of a subcommand
15
+ * (`cn --mcp f ls --help`). When the loaded config.yaml already defines align-local, nothing is
16
+ * added (canonical: no duplicate; anything else wins over ours, so one line says why). No
17
+ * `--auto`/`--allow`: cn's own tool policy stays the user's.
18
+ */
19
+ export function buildContinueLaunch(c) {
20
+ const spec = { bin: 'cn', args: [...c.passthrough], env: { ALIGN_WRAPPED: '1' }, files: [] };
21
+ if (c.unreadable) {
22
+ return { ...spec, notes: [unreadableNote(c.unreadable)] };
23
+ }
24
+ if (c.conflict) {
25
+ return { ...spec, notes: [`${c.conflict} defines its own align-local MCP server, so Align did not add its graph to Continue CLI. Remove that entry to use the graph.`] };
26
+ }
27
+ if (c.present)
28
+ return spec;
29
+ const { command, args } = alignServerEntry('mcpServers', 'local');
30
+ const content = [
31
+ 'name: align-local',
32
+ 'version: 0.0.1',
33
+ 'schema: v1',
34
+ 'mcpServers:',
35
+ ' - name: align-local',
36
+ ` command: ${JSON.stringify(command)}`,
37
+ ` args: [${args.map((a) => JSON.stringify(a)).join(', ')}]`,
38
+ // cn spawns its MCP servers with its own environment, repo `.env` included: name every
39
+ // variable align reads (JSON-quoted values are valid YAML scalars).
40
+ ' env:',
41
+ ...Object.entries(mcpChildEnv(c.env ?? {})).map(([k, v]) => ` ${k}: ${JSON.stringify(v)}`),
42
+ '',
43
+ ].join('\n');
44
+ return { ...spec, args: ['--mcp', `file://${c.cachePath(FILE)}`, ...c.passthrough], files: [{ name: FILE, content }] };
45
+ }
46
+ //# sourceMappingURL=continue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/continue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQ5C,MAAM,IAAI,GAAG,2BAA2B,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAwB;IAC1D,MAAM,IAAI,GAAe,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACzG,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,8HAA8H,CAAC,EAAE,CAAC;IAC3K,CAAC;IACD,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAwC,CAAC;IACzG,MAAM,OAAO,GAAG;QACd,mBAAmB;QACnB,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,uBAAuB;QACvB,gBAAgB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACzC,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9D,uFAAuF;QACvF,oEAAoE;QACpE,UAAU;QACV,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACzH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { DroidProjectState } from '../droid-state.js';
2
+ import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
+ export interface DroidLaunchContext extends Pick<LaunchContext, 'passthrough' | 'cachePath'>, DroidProjectState {
4
+ }
5
+ /**
6
+ * Factory Droid, per session, nothing written to the user's own config (droid 0.237.0):
7
+ * `--settings <path>` is a "runtime settings file merged for this process only", and its `mcp`
8
+ * key takes the mcp.json shape. Droid lists that server as `[runtime]` beside the user's own,
9
+ * and the runtime definition wins a same-named one (verified with `droid --settings f mcp list`).
10
+ * The instructions go in with `--append-system-prompt-file` unless an AGENTS.md already holds them.
11
+ *
12
+ * A user who runs Droid with their own runtime settings keeps them: Droid takes one, so align
13
+ * adds no second file and says so in one line.
14
+ *
15
+ * ORDER: our flags go FIRST. They are root options (`droid --settings f mcp list` is accepted),
16
+ * so in front they apply to a bare session and to `exec`, and never land after a user's `--`.
17
+ */
18
+ export declare function buildDroidLaunch(c: DroidLaunchContext): LaunchSpec;
19
+ //# sourceMappingURL=droid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/droid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW,CAAC,EAAE,iBAAiB;CAAG;AAMlH;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAgBlE"}
@@ -0,0 +1,38 @@
1
+ import { alignNudgeBody } from '../../agent-rules.js';
2
+ import { alignServerEntry } from '../../mcp-setup.js';
3
+ /** Same reason as the Claude adapter: never shadow a user's own `align` server. */
4
+ const INJECTED_SERVER_NAME = 'align-local';
5
+ const SETTINGS_FILE = 'droid-settings.json';
6
+ /**
7
+ * Factory Droid, per session, nothing written to the user's own config (droid 0.237.0):
8
+ * `--settings <path>` is a "runtime settings file merged for this process only", and its `mcp`
9
+ * key takes the mcp.json shape. Droid lists that server as `[runtime]` beside the user's own,
10
+ * and the runtime definition wins a same-named one (verified with `droid --settings f mcp list`).
11
+ * The instructions go in with `--append-system-prompt-file` unless an AGENTS.md already holds them.
12
+ *
13
+ * A user who runs Droid with their own runtime settings keeps them: Droid takes one, so align
14
+ * adds no second file and says so in one line.
15
+ *
16
+ * ORDER: our flags go FIRST. They are root options (`droid --settings f mcp list` is accepted),
17
+ * so in front they apply to a bare session and to `exec`, and never land after a user's `--`.
18
+ */
19
+ export function buildDroidLaunch(c) {
20
+ const injected = [];
21
+ const files = [];
22
+ const notes = [];
23
+ if (c.ownSettings !== undefined) {
24
+ notes.push(`Droid is using your own runtime settings (${c.ownSettings}), so Align did not add its graph tools to this session.`);
25
+ }
26
+ else if (c.overridden.length > 0 || !c.present) {
27
+ files.push({ name: SETTINGS_FILE, content: `${JSON.stringify({ mcp: { mcpServers: { [INJECTED_SERVER_NAME]: alignServerEntry('vscode', 'local') } } }, null, 2)}\n` });
28
+ injected.push('--settings', c.cachePath(SETTINGS_FILE));
29
+ if (c.overridden.length > 0)
30
+ notes.push(`Droid will use Align's own align-local MCP server this session, not the one in ${c.overridden.join(', ')}.`);
31
+ }
32
+ if (!c.projectHasBlock) {
33
+ files.push({ name: 'align-instructions.md', content: `${alignNudgeBody()}\n` });
34
+ injected.push('--append-system-prompt-file', c.cachePath('align-instructions.md'));
35
+ }
36
+ return { bin: 'droid', args: [...injected, ...c.passthrough], env: { ALIGN_WRAPPED: '1' }, files, ...(notes.length > 0 ? { notes } : {}) };
37
+ }
38
+ //# sourceMappingURL=droid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droid.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/droid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,mFAAmF;AACnF,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAC3C,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAqB;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,WAAW,0DAA0D,CAAC,CAAC;IACnI,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvK,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxJ,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7I,CAAC"}
@@ -1,24 +1,23 @@
1
1
  import { type GeminiProjectState } from '../gemini-state.js';
2
2
  import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
3
  export interface GeminiLaunchContext extends Pick<LaunchContext, 'passthrough' | 'cachePath'>, GeminiProjectState {
4
- /** The environment the child will inherit: the user's own GEMINI_CLI_* are read from here. */
5
- env: Record<string, string | undefined>;
6
- platform: string;
7
4
  }
8
5
  export declare const GEMINI_TRUST_NOTE = "Gemini turns off MCP servers, Align's included, in folders you haven't trusted. Trust this folder in Gemini to use the graph here.";
9
6
  /**
10
- * Gemini CLI, per session, nothing written to the user's own config (gemini 0.58.0):
11
- * GEMINI_CLI_SYSTEM_SETTINGS_PATH names the system settings file, and Gemini MERGES its
12
- * mcpServers with the user's (verified: `gemini mcp list` shows both). That variable REPLACES
13
- * the system file Gemini would otherwise read (the user's own value, or the platform default an
14
- * admin may have filled), so align points it at a COPY of that file with align-local added,
15
- * never at a file of align's alone. Gemini also derives system-defaults.json from that file's
16
- * directory, so the original location is pinned with GEMINI_CLI_SYSTEM_DEFAULTS_PATH unless the
17
- * user set it. A system file align cannot read or parse is never replaced: no injection, and
18
- * one line saying why (the same rule as OpenCode's OPENCODE_CONFIG_CONTENT).
7
+ * Gemini CLI, written ONCE (gemini 0.63.0): the `align-local` entry goes into the user's
8
+ * settings file by the safe writer, with a backup and an exact `align use --undo`.
19
9
  *
20
- * Trust: Gemini turns off every MCP server in a folder it does not trust. align says so in one
21
- * line and never trusts a folder for the user (no --skip-trust, no GEMINI_CLI_TRUST_WORKSPACE).
10
+ * Not per session. The first design pointed GEMINI_CLI_SYSTEM_SETTINGS_PATH at a copy in the
11
+ * launch cache, and Gemini 0.63.0 skips any system settings file unless the file and every
12
+ * directory above it is root-owned and not group/other writable (gemini-system-file.ts), so
13
+ * Gemini users got no graph and only Gemini's own warning as a clue. A per-session
14
+ * GEMINI_CLI_HOME was rejected too: it would have to mirror the user's whole ~/.gemini (oauth
15
+ * credentials, history, trusted folders, extensions) and anything Gemini writes there during
16
+ * the session, a changed theme or a first login, would be lost with the session directory.
17
+ *
18
+ * Nothing else changes: no flags, no GEMINI_CLI_* variable (so a repo .env cannot substitute
19
+ * one either), no --skip-trust. Trust: Gemini turns off every MCP server in a folder it does
20
+ * not trust. align says so in one line and never trusts a folder for the user.
22
21
  * Instructions come from the managed GEMINI.md block. Pass-through args are the whole of the args.
23
22
  */
24
23
  export declare function buildGeminiLaunch(c: GeminiLaunchContext): LaunchSpec;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/gemini-cli.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG1F,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW,CAAC,EAAE,kBAAkB;IAC/G,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,iBAAiB,uIAAuI,CAAC;AActK;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAkCpE"}
1
+ {"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/gemini-cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW,CAAC,EAAE,kBAAkB;CAAG;AAKpH,eAAO,MAAM,iBAAiB,uIAAuI,CAAC;AAEtK;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAgCpE"}
@@ -1,72 +1,57 @@
1
1
  import { alignServerEntry } from '../../mcp-setup.js';
2
- import { COPY_PREFIX, geminiCopyName } from '../gemini-state.js';
3
- import { geminiSystemDefaultsPath } from '../gemini-trust.js';
4
- import { parseJsonc } from '../strict-entry.js';
2
+ import { COPY_PREFIX } from '../gemini-state.js';
5
3
  /** Same reason as the Claude adapter: never shadow a user's own `align` server. */
6
4
  const INJECTED_SERVER_NAME = 'align-local';
7
5
  export const GEMINI_TRUST_NOTE = "Gemini turns off MCP servers, Align's included, in folders you haven't trusted. Trust this folder in Gemini to use the graph here.";
8
- const isObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
9
- /** The system settings (JSONC, as Gemini reads them) as an object we can add to, or null when we must not touch them. */
10
- function parseTheirs(text) {
11
- if (text === null)
12
- return {};
13
- const parsed = parseJsonc(text);
14
- if (!parsed)
15
- return null;
16
- if (parsed['mcpServers'] !== undefined && !isObject(parsed['mcpServers']))
17
- return null;
18
- return parsed;
19
- }
20
6
  /**
21
- * Gemini CLI, per session, nothing written to the user's own config (gemini 0.58.0):
22
- * GEMINI_CLI_SYSTEM_SETTINGS_PATH names the system settings file, and Gemini MERGES its
23
- * mcpServers with the user's (verified: `gemini mcp list` shows both). That variable REPLACES
24
- * the system file Gemini would otherwise read (the user's own value, or the platform default an
25
- * admin may have filled), so align points it at a COPY of that file with align-local added,
26
- * never at a file of align's alone. Gemini also derives system-defaults.json from that file's
27
- * directory, so the original location is pinned with GEMINI_CLI_SYSTEM_DEFAULTS_PATH unless the
28
- * user set it. A system file align cannot read or parse is never replaced: no injection, and
29
- * one line saying why (the same rule as OpenCode's OPENCODE_CONFIG_CONTENT).
7
+ * Gemini CLI, written ONCE (gemini 0.63.0): the `align-local` entry goes into the user's
8
+ * settings file by the safe writer, with a backup and an exact `align use --undo`.
9
+ *
10
+ * Not per session. The first design pointed GEMINI_CLI_SYSTEM_SETTINGS_PATH at a copy in the
11
+ * launch cache, and Gemini 0.63.0 skips any system settings file unless the file and every
12
+ * directory above it is root-owned and not group/other writable (gemini-system-file.ts), so
13
+ * Gemini users got no graph and only Gemini's own warning as a clue. A per-session
14
+ * GEMINI_CLI_HOME was rejected too: it would have to mirror the user's whole ~/.gemini (oauth
15
+ * credentials, history, trusted folders, extensions) and anything Gemini writes there during
16
+ * the session, a changed theme or a first login, would be lost with the session directory.
30
17
  *
31
- * Trust: Gemini turns off every MCP server in a folder it does not trust. align says so in one
32
- * line and never trusts a folder for the user (no --skip-trust, no GEMINI_CLI_TRUST_WORKSPACE).
18
+ * Nothing else changes: no flags, no GEMINI_CLI_* variable (so a repo .env cannot substitute
19
+ * one either), no --skip-trust. Trust: Gemini turns off every MCP server in a folder it does
20
+ * not trust. align says so in one line and never trusts a folder for the user.
33
21
  * Instructions come from the managed GEMINI.md block. Pass-through args are the whole of the args.
34
22
  */
35
23
  export function buildGeminiLaunch(c) {
36
- const env = { ALIGN_WRAPPED: '1' };
37
- const files = [];
24
+ const writes = [];
38
25
  const notes = [];
39
- const copy = geminiCopyName(c.systemSettings.path);
40
- let injected = false;
41
- if (c.overridden.length > 0 || !c.present) {
42
- const theirs = c.systemSettings.unreadable ? null : parseTheirs(c.systemSettings.text);
43
- if (!theirs) {
44
- notes.push(`Gemini's system settings file ${c.systemSettings.path} is not readable JSON with an object "mcpServers", so Align's graph tools were not added to this session. Fix the file, or point GEMINI_CLI_SYSTEM_SETTINGS_PATH at one that is.`);
45
- }
46
- else {
47
- // Set unconditionally: a canonical align-local here would have made `present` true with
48
- // nothing overridden, so whatever is under this name now is replaced by ours.
49
- const merged = { ...theirs, mcpServers: { ...(theirs['mcpServers'] ?? {}), [INJECTED_SERVER_NAME]: alignServerEntry('mcpServers', 'local') } };
50
- // 0600: the copy carries whatever the admin's system file holds.
51
- files.push({ name: copy, content: `${JSON.stringify(merged, null, 2)}\n`, mode: 0o600 });
52
- env['GEMINI_CLI_SYSTEM_SETTINGS_PATH'] = c.cachePath(copy);
53
- if (!c.env['GEMINI_CLI_SYSTEM_DEFAULTS_PATH'])
54
- env['GEMINI_CLI_SYSTEM_DEFAULTS_PATH'] = geminiSystemDefaultsPath(c.systemSettings.path, c.platform);
55
- if (c.overridden.length > 0)
56
- notes.push(`Gemini will use Align's own align-local MCP server this session, not the one in ${c.overridden.join(', ')}.`);
57
- injected = true;
58
- }
26
+ if (c.blocked) {
27
+ notes.push(`Gemini will not load Align's graph: ${c.blocked.file} - ${c.blocked.why}. Remove that to use the graph.`);
28
+ }
29
+ if (c.conflict) {
30
+ notes.push(`${c.conflict} defines its own align-local MCP server, so Align did not add its graph to Gemini. Remove that entry to use the graph.`);
31
+ }
32
+ else if (!c.present && !c.blocked) {
33
+ writes.push({
34
+ kind: 'mcp-entry',
35
+ file: c.settingsFile,
36
+ topKey: 'mcpServers',
37
+ name: INJECTED_SERVER_NAME,
38
+ entry: alignServerEntry('mcpServers', 'local'),
39
+ invalidJsonAdvice: ' (Gemini accepts comments in this file and align does not, so remove any comments or fix the syntax), then run align again',
40
+ });
41
+ }
42
+ if (c.repoAlign) {
43
+ notes.push(`${c.repoAlign} defines an \`align\` MCP server of its own that Gemini will run next to Align's. Check it before you trust this folder.`);
59
44
  }
60
45
  if (c.trust === 'untrusted' || c.trust === 'unknown')
61
46
  notes.push(GEMINI_TRUST_NOTE);
62
47
  return {
63
48
  bin: 'gemini',
64
49
  args: [...c.passthrough],
65
- env,
66
- files,
67
- // This source's copy is refreshed when used and removed when not. Other sources' copies may
68
- // belong to a concurrent session, so they only age out (pruneLaunchFiles).
69
- prune: { prefix: COPY_PREFIX, ...(injected ? { keep: copy } : { remove: copy }) },
50
+ env: { ALIGN_WRAPPED: '1' },
51
+ files: [],
52
+ // Ages out the system-settings copies earlier align versions left in the cache.
53
+ prune: { prefix: COPY_PREFIX },
54
+ ...(writes.length > 0 ? { writes } : {}),
70
55
  ...(notes.length > 0 ? { notes } : {}),
71
56
  };
72
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/gemini-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/gemini-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAA2B,MAAM,oBAAoB,CAAC;AAK1E,mFAAmF;AACnF,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,oIAAoI,CAAC;AAEtK;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAsB;IACtD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,iCAAiC,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,wHAAwH,CAAC,CAAC;IACpJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC,CAAC,YAAY;YACpB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC;YAC9C,iBAAiB,EAAE,4HAA4H;SAChJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,0HAA0H,CAAC,CAAC;IACvJ,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpF,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QACxB,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;QAC3B,KAAK,EAAE,EAAE;QACT,gFAAgF;QAChF,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { GooseProjectState } from '../goose-state.js';
2
+ import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
+ export interface GooseLaunchContext extends Pick<LaunchContext, 'passthrough'>, GooseProjectState {
4
+ /** A `--recipe` file of the user's that names align-local (its path), else undefined. */
5
+ recipeDefinesAlignLocal?: string;
6
+ }
7
+ /**
8
+ * Goose, per session, nothing written (goose 1.54.0, `goose session --help`):
9
+ * `--with-extension '[name:]command args...'` adds a stdio extension for that session, and the
10
+ * user's own extensions still load (Align never passes `--no-profile`). Verified with `goose run`,
11
+ * which takes the same flag, against a stub model: the request carried the user's tools and
12
+ * align-local's. The `align-local:` prefix names it.
13
+ *
14
+ * The chat and the one-shot run take it: with no subcommand (or only session options) Align opens
15
+ * `goose session`, the interactive command; `session`/`s` or `run` the user typed gets it right
16
+ * after; any other subcommand is left alone, with one line. When config.yaml already has align-local,
17
+ * nothing is added: an enabled same-named extension makes goose refuse to start.
18
+ */
19
+ export declare function buildGooseLaunch(c: GooseLaunchContext): LaunchSpec;
20
+ //# sourceMappingURL=goose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goose.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/goose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAC/F,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAuBlE"}
@@ -0,0 +1,47 @@
1
+ import { alignServerEntry } from '../../mcp-setup.js';
2
+ import { unreadableNote } from './notes.js';
3
+ /** goose's root-only options: they print and exit, so there is no session to add to. */
4
+ const ROOT_ONLY = new Set(['-h', '--help', '-V', '--version']);
5
+ /** `goose session <sub>` commands that open no chat (goose 1.54.0, `goose session --help`). */
6
+ const SESSION_SUBCOMMANDS = new Set(['list', 'remove', 'export', 'import', 'diagnostics', 'rename', 'help']);
7
+ /**
8
+ * Goose, per session, nothing written (goose 1.54.0, `goose session --help`):
9
+ * `--with-extension '[name:]command args...'` adds a stdio extension for that session, and the
10
+ * user's own extensions still load (Align never passes `--no-profile`). Verified with `goose run`,
11
+ * which takes the same flag, against a stub model: the request carried the user's tools and
12
+ * align-local's. The `align-local:` prefix names it.
13
+ *
14
+ * The chat and the one-shot run take it: with no subcommand (or only session options) Align opens
15
+ * `goose session`, the interactive command; `session`/`s` or `run` the user typed gets it right
16
+ * after; any other subcommand is left alone, with one line. When config.yaml already has align-local,
17
+ * nothing is added: an enabled same-named extension makes goose refuse to start.
18
+ */
19
+ export function buildGooseLaunch(c) {
20
+ const spec = { bin: 'goose', args: [...c.passthrough], env: { ALIGN_WRAPPED: '1' }, files: [] };
21
+ if (c.conflict) {
22
+ return { ...spec, notes: [`${c.conflict} defines its own align-local extension, so Align did not add its graph to Goose. Remove or rename that entry to use the graph.`] };
23
+ }
24
+ if (c.unreadable) {
25
+ return { ...spec, notes: [unreadableNote(c.unreadable)] };
26
+ }
27
+ if (c.recipeDefinesAlignLocal) {
28
+ return { ...spec, notes: [`${c.recipeDefinesAlignLocal} defines its own align-local extension, so Align did not add its graph to Goose. Remove or rename that entry to use the graph.`] };
29
+ }
30
+ if (c.present)
31
+ return spec;
32
+ const { command, args } = alignServerEntry('mcpServers', 'local');
33
+ const ext = ['--with-extension', `align-local:${[command, ...args].join(' ')}`];
34
+ const [first, ...rest] = c.passthrough;
35
+ if (first === undefined || (first.startsWith('-') && !ROOT_ONLY.has(first)))
36
+ return { ...spec, args: ['session', ...ext, ...c.passthrough] };
37
+ if (ROOT_ONLY.has(first))
38
+ return spec;
39
+ if (first === 'session' || first === 's') {
40
+ return rest[0] !== undefined && SESSION_SUBCOMMANDS.has(rest[0]) ? spec : { ...spec, args: [first, ...ext, ...rest] };
41
+ }
42
+ // `goose run` takes the same flag, and is the form that was checked against a stub model.
43
+ if (first === 'run')
44
+ return { ...spec, args: [first, ...ext, ...rest] };
45
+ return { ...spec, notes: [`Align adds its graph to \`goose session\` and \`goose run\` only, so \`goose ${first}\` opens without it.`] };
46
+ }
47
+ //# sourceMappingURL=goose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goose.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/goose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { GrokProjectState } from '../grok-state.js';
2
+ import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
+ export interface GrokLaunchContext extends Pick<LaunchContext, 'passthrough'>, GrokProjectState {
4
+ }
5
+ /**
6
+ * Grok Build (xAI's `grok`), written ONCE: grok 1.0.50 has no per-session MCP input (no flag in
7
+ * its CLI source; the GROK_CONFIG overlay is allowlisted and excludes `mcp_servers`), so the
8
+ * `[mcp_servers.align-local]` table is appended once to `$GROK_HOME/config.toml` inside an
9
+ * align-owned marked block, by the safe writer, with an exact `align use --undo` (verified in a
10
+ * sandbox: `grok mcp list` then shows the user's servers and align-local).
11
+ *
12
+ * No flags are injected: no `--trust`, Grok's folder trust stays the user's decision.
13
+ * Instructions come from AGENTS.md / CLAUDE.md, which Grok reads.
14
+ */
15
+ export declare function buildGrokLaunch(c: GrokLaunchContext): LaunchSpec;
16
+ //# sourceMappingURL=grok-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok-build.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/grok-build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,gBAAgB;CAAG;AAIlG;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAUhE"}
@@ -0,0 +1,25 @@
1
+ import { alignServerEntry } from '../../mcp-setup.js';
2
+ const INJECTED_SERVER_NAME = 'align-local';
3
+ /**
4
+ * Grok Build (xAI's `grok`), written ONCE: grok 1.0.50 has no per-session MCP input (no flag in
5
+ * its CLI source; the GROK_CONFIG overlay is allowlisted and excludes `mcp_servers`), so the
6
+ * `[mcp_servers.align-local]` table is appended once to `$GROK_HOME/config.toml` inside an
7
+ * align-owned marked block, by the safe writer, with an exact `align use --undo` (verified in a
8
+ * sandbox: `grok mcp list` then shows the user's servers and align-local).
9
+ *
10
+ * No flags are injected: no `--trust`, Grok's folder trust stays the user's decision.
11
+ * Instructions come from AGENTS.md / CLAUDE.md, which Grok reads.
12
+ */
13
+ export function buildGrokLaunch(c) {
14
+ const writes = [];
15
+ const notes = [];
16
+ if (c.conflict) {
17
+ notes.push(`${c.conflict} defines its own align-local MCP server, so Align did not add its graph to Grok Build. Remove that entry to use the graph.`);
18
+ }
19
+ else if (!c.present) {
20
+ const { command, args } = alignServerEntry('mcpServers', 'local');
21
+ writes.push({ kind: 'toml-mcp-entry', file: c.configFile, topKey: 'mcp_servers', name: INJECTED_SERVER_NAME, entry: { command, args } });
22
+ }
23
+ return { bin: 'grok', args: [...c.passthrough], env: { ALIGN_WRAPPED: '1' }, files: [], ...(writes.length > 0 ? { writes } : {}), ...(notes.length > 0 ? { notes } : {}) };
24
+ }
25
+ //# sourceMappingURL=grok-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok-build.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/grok-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,CAAoB;IAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,4HAA4H,CAAC,CAAC;IACxJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAwC,CAAC;QACzG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3I,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7K,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { KiroProjectState } from '../kiro-state.js';
2
+ import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
+ export interface KiroLaunchContext extends Pick<LaunchContext, 'passthrough'>, KiroProjectState {
4
+ }
5
+ /**
6
+ * Kiro CLI, written ONCE, from its docs only: no per-session MCP input is documented, so the
7
+ * `align-local` entry goes into the user's global `~/.kiro/settings/mcp.json` by the safe writer,
8
+ * once, with an exact `align use --undo`.
9
+ *
10
+ * Deliberately NOT a custom agent file launched with `--agent`: an agent file declares its own
11
+ * tools, and whether it keeps the user's own MCP servers and default tools could not be checked
12
+ * against a binary (no npm package; the installer is a script, which align never runs). An agent
13
+ * that silently hid the user's tools would be worse than none. No flags are injected: no
14
+ * `--trust-all-tools`, Kiro's own approval stays the user's. Instructions come from AGENTS.md.
15
+ */
16
+ export declare function buildKiroLaunch(c: KiroLaunchContext): LaunchSpec;
17
+ //# sourceMappingURL=kiro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/kiro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,gBAAgB;CAAG;AAIlG;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAShE"}
@@ -0,0 +1,25 @@
1
+ import { alignServerEntry } from '../../mcp-setup.js';
2
+ const INJECTED_SERVER_NAME = 'align-local';
3
+ /**
4
+ * Kiro CLI, written ONCE, from its docs only: no per-session MCP input is documented, so the
5
+ * `align-local` entry goes into the user's global `~/.kiro/settings/mcp.json` by the safe writer,
6
+ * once, with an exact `align use --undo`.
7
+ *
8
+ * Deliberately NOT a custom agent file launched with `--agent`: an agent file declares its own
9
+ * tools, and whether it keeps the user's own MCP servers and default tools could not be checked
10
+ * against a binary (no npm package; the installer is a script, which align never runs). An agent
11
+ * that silently hid the user's tools would be worse than none. No flags are injected: no
12
+ * `--trust-all-tools`, Kiro's own approval stays the user's. Instructions come from AGENTS.md.
13
+ */
14
+ export function buildKiroLaunch(c) {
15
+ const writes = [];
16
+ const notes = [];
17
+ if (c.conflict) {
18
+ notes.push(`${c.conflict} defines its own align-local MCP server, so Align did not add its graph to Kiro. Remove that entry to use the graph.`);
19
+ }
20
+ else if (!c.present) {
21
+ writes.push({ kind: 'mcp-entry', file: c.mcpFile, topKey: 'mcpServers', name: INJECTED_SERVER_NAME, entry: alignServerEntry('mcpServers', 'local') });
22
+ }
23
+ return { bin: 'kiro-cli', args: [...c.passthrough], env: { ALIGN_WRAPPED: '1' }, files: [], ...(writes.length > 0 ? { writes } : {}), ...(notes.length > 0 ? { notes } : {}) };
24
+ }
25
+ //# sourceMappingURL=kiro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/kiro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,CAAoB;IAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,sHAAsH,CAAC,CAAC;IAClJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACxJ,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACjL,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** The line for a config Align could not read with certainty (not a foreign align-local). */
2
+ export declare function unreadableNote(u: {
3
+ file: string;
4
+ line: number;
5
+ reason: string;
6
+ }): string;
7
+ //# sourceMappingURL=notes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/notes.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAExF"}
@@ -0,0 +1,5 @@
1
+ /** The line for a config Align could not read with certainty (not a foreign align-local). */
2
+ export function unreadableNote(u) {
3
+ return `${u.file}: Align cannot be sure what line ${u.line} says (${u.reason}), so it did not add its graph for this session.`;
4
+ }
5
+ //# sourceMappingURL=notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/notes.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,CAAiD;IAC9E,OAAO,GAAG,CAAC,CAAC,IAAI,oCAAoC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,MAAM,kDAAkD,CAAC;AACjI,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type QwenProjectState } from '../qwen-state.js';
2
+ import type { LaunchContext, LaunchSpec } from './claude-code.js';
3
+ export interface QwenLaunchContext extends Pick<LaunchContext, 'passthrough' | 'cachePath'>, QwenProjectState {
4
+ /** The environment the child will inherit: the user's own QWEN_CODE_* are read from here. */
5
+ env: Record<string, string | undefined>;
6
+ platform: string;
7
+ }
8
+ export declare const QWEN_TRUST_NOTE = "Qwen Code turns off MCP servers, Align's included, in folders you haven't trusted. Trust this folder in Qwen Code to use the graph here.";
9
+ /**
10
+ * Qwen Code, per session, nothing written to the user's own config (qwen-code 0.25.0, a Gemini
11
+ * CLI fork with the same mechanism): QWEN_CODE_SYSTEM_SETTINGS_PATH names the system settings
12
+ * file, read LAST and merged shallowly, so align points it at a 0600 COPY of the file Qwen would
13
+ * otherwise read with align-local added (verified: `qwen mcp list` then shows the user's servers
14
+ * and align-local, and align's entry replaces a user or workspace align-local whole). The
15
+ * original system-defaults location is pinned with QWEN_CODE_SYSTEM_DEFAULTS_PATH unless the
16
+ * user set it. A system file align cannot read or parse is never replaced: no injection, one line.
17
+ *
18
+ * Not `--mcp-config`: Qwen has one, but how it ranks against a same-named server in a settings
19
+ * layer was not established, and the system tier's rank was.
20
+ *
21
+ * Trust: off by default in Qwen; when on, an untrusted folder gets MCP turned off, and align says
22
+ * so in one line. It never trusts a folder for the user. Pass-through args are the whole of the args.
23
+ */
24
+ export declare function buildQwenLaunch(c: QwenLaunchContext): LaunchSpec;
25
+ //# sourceMappingURL=qwen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen.d.ts","sourceRoot":"","sources":["../../../../src/lib/launch/adapters/qwen.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW,CAAC,EAAE,gBAAgB;IAC3G,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,eAAe,6IAA6I,CAAC;AAa1K;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,iBAAiB,GAAG,UAAU,CA6BhE"}