agim-cli 1.2.22 → 1.2.34

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 (286) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +8 -8
  3. package/README.zh-CN.md +6 -6
  4. package/dist/cli-ui/cmd-handlers.d.ts.map +1 -1
  5. package/dist/cli-ui/cmd-handlers.js +172 -13
  6. package/dist/cli-ui/cmd-handlers.js.map +1 -1
  7. package/dist/cli-ui/config-wizard.d.ts.map +1 -1
  8. package/dist/cli-ui/config-wizard.js +134 -24
  9. package/dist/cli-ui/config-wizard.js.map +1 -1
  10. package/dist/cli-ui/i18n.d.ts +33 -4
  11. package/dist/cli-ui/i18n.d.ts.map +1 -1
  12. package/dist/cli-ui/i18n.js +66 -8
  13. package/dist/cli-ui/i18n.js.map +1 -1
  14. package/dist/cli-ui/service.d.ts +44 -0
  15. package/dist/cli-ui/service.d.ts.map +1 -1
  16. package/dist/cli-ui/service.js +176 -8
  17. package/dist/cli-ui/service.js.map +1 -1
  18. package/dist/cli.js +193 -33
  19. package/dist/cli.js.map +1 -1
  20. package/dist/core/access-token.d.ts +51 -5
  21. package/dist/core/access-token.d.ts.map +1 -1
  22. package/dist/core/access-token.js +114 -15
  23. package/dist/core/access-token.js.map +1 -1
  24. package/dist/core/acp-server.d.ts.map +1 -1
  25. package/dist/core/acp-server.js +44 -3
  26. package/dist/core/acp-server.js.map +1 -1
  27. package/dist/core/admin-allowlist.d.ts +4 -1
  28. package/dist/core/admin-allowlist.d.ts.map +1 -1
  29. package/dist/core/admin-allowlist.js +14 -1
  30. package/dist/core/admin-allowlist.js.map +1 -1
  31. package/dist/core/admin-bootstrap.d.ts.map +1 -1
  32. package/dist/core/admin-bootstrap.js +8 -5
  33. package/dist/core/admin-bootstrap.js.map +1 -1
  34. package/dist/core/agent-base.d.ts.map +1 -1
  35. package/dist/core/agent-base.js +25 -0
  36. package/dist/core/agent-base.js.map +1 -1
  37. package/dist/core/agent-cwd.d.ts +1 -1
  38. package/dist/core/agent-cwd.d.ts.map +1 -1
  39. package/dist/core/agent-cwd.js +73 -2
  40. package/dist/core/agent-cwd.js.map +1 -1
  41. package/dist/core/agent-helper.d.ts +1 -1
  42. package/dist/core/agent-helper.js +4 -4
  43. package/dist/core/agent-helper.js.map +1 -1
  44. package/dist/core/approval-bus.d.ts +10 -0
  45. package/dist/core/approval-bus.d.ts.map +1 -1
  46. package/dist/core/approval-bus.js +130 -0
  47. package/dist/core/approval-bus.js.map +1 -1
  48. package/dist/core/approval-router.d.ts.map +1 -1
  49. package/dist/core/approval-router.js +18 -0
  50. package/dist/core/approval-router.js.map +1 -1
  51. package/dist/core/artifacts.d.ts +9 -1
  52. package/dist/core/artifacts.d.ts.map +1 -1
  53. package/dist/core/artifacts.js +22 -5
  54. package/dist/core/artifacts.js.map +1 -1
  55. package/dist/core/audit-log.d.ts +28 -0
  56. package/dist/core/audit-log.d.ts.map +1 -1
  57. package/dist/core/audit-log.js +100 -2
  58. package/dist/core/audit-log.js.map +1 -1
  59. package/dist/core/commands/service.d.ts +6 -5
  60. package/dist/core/commands/service.d.ts.map +1 -1
  61. package/dist/core/commands/service.js +59 -8
  62. package/dist/core/commands/service.js.map +1 -1
  63. package/dist/core/feature-flags.d.ts +10 -0
  64. package/dist/core/feature-flags.d.ts.map +1 -0
  65. package/dist/core/feature-flags.js +30 -0
  66. package/dist/core/feature-flags.js.map +1 -0
  67. package/dist/core/intent.d.ts.map +1 -1
  68. package/dist/core/intent.js +0 -4
  69. package/dist/core/intent.js.map +1 -1
  70. package/dist/core/logger.d.ts +31 -0
  71. package/dist/core/logger.d.ts.map +1 -1
  72. package/dist/core/logger.js +41 -1
  73. package/dist/core/logger.js.map +1 -1
  74. package/dist/core/memory-distill.js +1 -1
  75. package/dist/core/memory-distill.js.map +1 -1
  76. package/dist/core/memory-rpc.d.ts.map +1 -1
  77. package/dist/core/memory-rpc.js +55 -12
  78. package/dist/core/memory-rpc.js.map +1 -1
  79. package/dist/core/memory.d.ts +5 -0
  80. package/dist/core/memory.d.ts.map +1 -1
  81. package/dist/core/memory.js +151 -1
  82. package/dist/core/memory.js.map +1 -1
  83. package/dist/core/onboarding.d.ts +6 -0
  84. package/dist/core/onboarding.d.ts.map +1 -1
  85. package/dist/core/onboarding.js +21 -10
  86. package/dist/core/onboarding.js.map +1 -1
  87. package/dist/core/outbox.d.ts +8 -1
  88. package/dist/core/outbox.d.ts.map +1 -1
  89. package/dist/core/outbox.js +46 -2
  90. package/dist/core/outbox.js.map +1 -1
  91. package/dist/core/persona.d.ts.map +1 -1
  92. package/dist/core/persona.js +1 -18
  93. package/dist/core/persona.js.map +1 -1
  94. package/dist/core/prompt-injection-guard.d.ts +23 -0
  95. package/dist/core/prompt-injection-guard.d.ts.map +1 -0
  96. package/dist/core/prompt-injection-guard.js +94 -0
  97. package/dist/core/prompt-injection-guard.js.map +1 -0
  98. package/dist/core/registry.d.ts +8 -0
  99. package/dist/core/registry.d.ts.map +1 -1
  100. package/dist/core/registry.js +41 -7
  101. package/dist/core/registry.js.map +1 -1
  102. package/dist/core/restart-flow.d.ts.map +1 -1
  103. package/dist/core/restart-flow.js +27 -0
  104. package/dist/core/restart-flow.js.map +1 -1
  105. package/dist/core/router.d.ts.map +1 -1
  106. package/dist/core/router.js +4 -0
  107. package/dist/core/router.js.map +1 -1
  108. package/dist/core/sensitive-paths.d.ts +28 -0
  109. package/dist/core/sensitive-paths.d.ts.map +1 -0
  110. package/dist/core/sensitive-paths.js +234 -0
  111. package/dist/core/sensitive-paths.js.map +1 -0
  112. package/dist/core/session.d.ts +9 -0
  113. package/dist/core/session.d.ts.map +1 -1
  114. package/dist/core/session.js +35 -4
  115. package/dist/core/session.js.map +1 -1
  116. package/dist/core/types.d.ts +6 -1
  117. package/dist/core/types.d.ts.map +1 -1
  118. package/dist/core/viewer-local.d.ts +4 -0
  119. package/dist/core/viewer-local.d.ts.map +1 -1
  120. package/dist/core/viewer-local.js +74 -0
  121. package/dist/core/viewer-local.js.map +1 -1
  122. package/dist/plugins/agents/antigravity/ensure-mcp-config.d.ts +49 -0
  123. package/dist/plugins/agents/antigravity/ensure-mcp-config.d.ts.map +1 -0
  124. package/dist/plugins/agents/antigravity/ensure-mcp-config.js +110 -0
  125. package/dist/plugins/agents/antigravity/ensure-mcp-config.js.map +1 -0
  126. package/dist/plugins/agents/antigravity/index.d.ts +34 -0
  127. package/dist/plugins/agents/antigravity/index.d.ts.map +1 -0
  128. package/dist/plugins/agents/antigravity/index.js +330 -0
  129. package/dist/plugins/agents/antigravity/index.js.map +1 -0
  130. package/dist/plugins/agents/claude-code/mcp-approval-server.js +5 -5
  131. package/dist/plugins/agents/claude-code/mcp-approval-server.js.map +1 -1
  132. package/dist/plugins/messengers/feishu/card-builder.d.ts.map +1 -1
  133. package/dist/plugins/messengers/feishu/card-builder.js +0 -1
  134. package/dist/plugins/messengers/feishu/card-builder.js.map +1 -1
  135. package/dist/utils/cross-platform.d.ts +0 -5
  136. package/dist/utils/cross-platform.d.ts.map +1 -1
  137. package/dist/utils/cross-platform.js +1 -21
  138. package/dist/utils/cross-platform.js.map +1 -1
  139. package/dist/web/public/assets/{a2a-Dk2fSs33.js → a2a-BFM2Ojvs.js} +2 -2
  140. package/dist/web/public/assets/{a2a-Dk2fSs33.js.map → a2a-BFM2Ojvs.js.map} +1 -1
  141. package/dist/web/public/assets/{activity-eiIPshcV.js → activity-DNe1vn9s.js} +2 -2
  142. package/dist/web/public/assets/{activity-eiIPshcV.js.map → activity-DNe1vn9s.js.map} +1 -1
  143. package/dist/web/public/assets/{admins-DlbQYdW_.js → admins-DtIF8yji.js} +2 -2
  144. package/dist/web/public/assets/{admins-DlbQYdW_.js.map → admins-DtIF8yji.js.map} +1 -1
  145. package/dist/web/public/assets/agents-BJ3jyH1u.js +12 -0
  146. package/dist/web/public/assets/agents-BJ3jyH1u.js.map +1 -0
  147. package/dist/web/public/assets/{approvals-DlXS_sKD.js → approvals-8ifx3_0b.js} +2 -2
  148. package/dist/web/public/assets/{approvals-DlXS_sKD.js.map → approvals-8ifx3_0b.js.map} +1 -1
  149. package/dist/web/public/assets/{audit-C8I8xC_6.js → audit-BiFOljMy.js} +2 -2
  150. package/dist/web/public/assets/{audit-C8I8xC_6.js.map → audit-BiFOljMy.js.map} +1 -1
  151. package/dist/web/public/assets/{bgjobs-PFYinH7D.js → bgjobs-Dve01ab0.js} +2 -2
  152. package/dist/web/public/assets/{bgjobs-PFYinH7D.js.map → bgjobs-Dve01ab0.js.map} +1 -1
  153. package/dist/web/public/assets/{brain-DEEJttEL.js → brain-BI78EY6_.js} +2 -2
  154. package/dist/web/public/assets/{brain-DEEJttEL.js.map → brain-BI78EY6_.js.map} +1 -1
  155. package/dist/web/public/assets/{briefcase-BlMy8gI6.js → briefcase-CuwoOW31.js} +2 -2
  156. package/dist/web/public/assets/{briefcase-BlMy8gI6.js.map → briefcase-CuwoOW31.js.map} +1 -1
  157. package/dist/web/public/assets/{chevron-right-DmABPvoA.js → chevron-right-D5JanEQ3.js} +2 -2
  158. package/dist/web/public/assets/{chevron-right-DmABPvoA.js.map → chevron-right-D5JanEQ3.js.map} +1 -1
  159. package/dist/web/public/assets/{circle-check-C0Qpg1vL.js → circle-check-DXMzdFtD.js} +2 -2
  160. package/dist/web/public/assets/{circle-check-C0Qpg1vL.js.map → circle-check-DXMzdFtD.js.map} +1 -1
  161. package/dist/web/public/assets/{circle-check-big-C8LG3beV.js → circle-check-big-CyJIIhiq.js} +2 -2
  162. package/dist/web/public/assets/{circle-check-big-C8LG3beV.js.map → circle-check-big-CyJIIhiq.js.map} +1 -1
  163. package/dist/web/public/assets/{circle-x-D_cRHcHK.js → circle-x-DTwfNpvp.js} +2 -2
  164. package/dist/web/public/assets/{circle-x-D_cRHcHK.js.map → circle-x-DTwfNpvp.js.map} +1 -1
  165. package/dist/web/public/assets/{confirm-dialog-Baz_xFle.js → confirm-dialog-F0sdcLGN.js} +2 -2
  166. package/dist/web/public/assets/{confirm-dialog-Baz_xFle.js.map → confirm-dialog-F0sdcLGN.js.map} +1 -1
  167. package/dist/web/public/assets/{data-table--I_ktDF4.js → data-table-DN_-VLbp.js} +2 -2
  168. package/dist/web/public/assets/{data-table--I_ktDF4.js.map → data-table-DN_-VLbp.js.map} +1 -1
  169. package/dist/web/public/assets/{dialog-DZpoEskO.js → dialog-CM16nfWK.js} +2 -2
  170. package/dist/web/public/assets/{dialog-DZpoEskO.js.map → dialog-CM16nfWK.js.map} +1 -1
  171. package/dist/web/public/assets/{download-DbFGHwZ5.js → download-tFqY3Zj6.js} +2 -2
  172. package/dist/web/public/assets/{download-DbFGHwZ5.js.map → download-tFqY3Zj6.js.map} +1 -1
  173. package/dist/web/public/assets/{email-BB1Hq8eE.js → email-By2-ARPV.js} +2 -2
  174. package/dist/web/public/assets/{email-BB1Hq8eE.js.map → email-By2-ARPV.js.map} +1 -1
  175. package/dist/web/public/assets/{empty-state-DXNa90pP.js → empty-state-Dq9_8t-M.js} +2 -2
  176. package/dist/web/public/assets/{empty-state-DXNa90pP.js.map → empty-state-Dq9_8t-M.js.map} +1 -1
  177. package/dist/web/public/assets/{external-link-nhnJN0qg.js → external-link-amfAWSUX.js} +2 -2
  178. package/dist/web/public/assets/{external-link-nhnJN0qg.js.map → external-link-amfAWSUX.js.map} +1 -1
  179. package/dist/web/public/assets/{eye-IKkn_oUo.js → eye-BfgN09Lx.js} +2 -2
  180. package/dist/web/public/assets/{eye-IKkn_oUo.js.map → eye-BfgN09Lx.js.map} +1 -1
  181. package/dist/web/public/assets/{facts-C7Qy9vTw.js → facts-uvL__ilQ.js} +2 -2
  182. package/dist/web/public/assets/{facts-C7Qy9vTw.js.map → facts-uvL__ilQ.js.map} +1 -1
  183. package/dist/web/public/assets/{health-CMRdeNEW.js → health-fiU-ueEw.js} +2 -2
  184. package/dist/web/public/assets/{health-CMRdeNEW.js.map → health-fiU-ueEw.js.map} +1 -1
  185. package/dist/web/public/assets/{hot-Bh5Nrc7i.js → hot-Dt4V3jM_.js} +2 -2
  186. package/dist/web/public/assets/{hot-Bh5Nrc7i.js.map → hot-Dt4V3jM_.js.map} +1 -1
  187. package/dist/web/public/assets/{index-CpGWCLE5.js → index-6GMwymev.js} +8 -8
  188. package/dist/web/public/assets/index-6GMwymev.js.map +1 -0
  189. package/dist/web/public/assets/{index-GpceOxum.css → index-CDYTPZH0.css} +1 -1
  190. package/dist/web/public/assets/{installed-FYLkPij2.js → installed-B_x6no76.js} +2 -2
  191. package/dist/web/public/assets/{installed-FYLkPij2.js.map → installed-B_x6no76.js.map} +1 -1
  192. package/dist/web/public/assets/{jobs-BmqLUzHp.js → jobs-LqWH3CIe.js} +2 -2
  193. package/dist/web/public/assets/{jobs-BmqLUzHp.js.map → jobs-LqWH3CIe.js.map} +1 -1
  194. package/dist/web/public/assets/layout-CvxcdPD9.js +2 -0
  195. package/dist/web/public/assets/layout-CvxcdPD9.js.map +1 -0
  196. package/dist/web/public/assets/{layout-BZaHqf69.js → layout-DHUzlXrd.js} +2 -2
  197. package/dist/web/public/assets/{layout-BZaHqf69.js.map → layout-DHUzlXrd.js.map} +1 -1
  198. package/dist/web/public/assets/{layout-CXsUyEpG.js → layout-MNk0bLGe.js} +2 -2
  199. package/dist/web/public/assets/{layout-CXsUyEpG.js.map → layout-MNk0bLGe.js.map} +1 -1
  200. package/dist/web/public/assets/{layout-DFxtpNut.js → layout-WcrkE0es.js} +2 -2
  201. package/dist/web/public/assets/{layout-DFxtpNut.js.map → layout-WcrkE0es.js.map} +1 -1
  202. package/dist/web/public/assets/{layout-d8qxPKQk.js → layout-apvyE2JN.js} +2 -2
  203. package/dist/web/public/assets/{layout-d8qxPKQk.js.map → layout-apvyE2JN.js.map} +1 -1
  204. package/dist/web/public/assets/{loader-circle-JaKY-xMt.js → loader-circle-hxNy7hSm.js} +2 -2
  205. package/dist/web/public/assets/{loader-circle-JaKY-xMt.js.map → loader-circle-hxNy7hSm.js.map} +1 -1
  206. package/dist/web/public/assets/{map-pin-hFFSWZ3B.js → map-pin-CCmA7ke2.js} +2 -2
  207. package/dist/web/public/assets/{map-pin-hFFSWZ3B.js.map → map-pin-CCmA7ke2.js.map} +1 -1
  208. package/dist/web/public/assets/{memos-EhjMUvVZ.js → memos-pEjDfEj3.js} +2 -2
  209. package/dist/web/public/assets/{memos-EhjMUvVZ.js.map → memos-pEjDfEj3.js.map} +1 -1
  210. package/dist/web/public/assets/messengers-Ba7opEc1.js +7 -0
  211. package/dist/web/public/assets/messengers-Ba7opEc1.js.map +1 -0
  212. package/dist/web/public/assets/{network-DtCI2ZUU.js → network-DJw-ei_k.js} +2 -2
  213. package/dist/web/public/assets/{network-DtCI2ZUU.js.map → network-DJw-ei_k.js.map} +1 -1
  214. package/dist/web/public/assets/{outbox-CxUbMp6o.js → outbox-Ckq-VT5C.js} +2 -2
  215. package/dist/web/public/assets/{outbox-CxUbMp6o.js.map → outbox-Ckq-VT5C.js.map} +1 -1
  216. package/dist/web/public/assets/{pagination-CkZY8YNa.js → pagination-DGS-TnI5.js} +2 -2
  217. package/dist/web/public/assets/{pagination-CkZY8YNa.js.map → pagination-DGS-TnI5.js.map} +1 -1
  218. package/dist/web/public/assets/{persona-B6TFMSnI.js → persona--LsrhCVU.js} +2 -2
  219. package/dist/web/public/assets/{persona-B6TFMSnI.js.map → persona--LsrhCVU.js.map} +1 -1
  220. package/dist/web/public/assets/{play-BxRcWaH5.js → play-Cb7co2DX.js} +2 -2
  221. package/dist/web/public/assets/{play-BxRcWaH5.js.map → play-Cb7co2DX.js.map} +1 -1
  222. package/dist/web/public/assets/{policy-ndE1Y8zD.js → policy-CbCotzr6.js} +2 -2
  223. package/dist/web/public/assets/{policy-ndE1Y8zD.js.map → policy-CbCotzr6.js.map} +1 -1
  224. package/dist/web/public/assets/{refresh-ccw-Bx817_KW.js → refresh-ccw-CINxCmwV.js} +2 -2
  225. package/dist/web/public/assets/{refresh-ccw-Bx817_KW.js.map → refresh-ccw-CINxCmwV.js.map} +1 -1
  226. package/dist/web/public/assets/{reminders-XynkGQc5.js → reminders-CSKrWre3.js} +2 -2
  227. package/dist/web/public/assets/{reminders-XynkGQc5.js.map → reminders-CSKrWre3.js.map} +1 -1
  228. package/dist/web/public/assets/{save-CqMcATrh.js → save-Bib9iAA-.js} +2 -2
  229. package/dist/web/public/assets/{save-CqMcATrh.js.map → save-Bib9iAA-.js.map} +1 -1
  230. package/dist/web/public/assets/{schedules-VM02w_Om.js → schedules-DUD_FfEX.js} +2 -2
  231. package/dist/web/public/assets/{schedules-VM02w_Om.js.map → schedules-DUD_FfEX.js.map} +1 -1
  232. package/dist/web/public/assets/{search-Ba-e1t1P.js → search-DZOHNA81.js} +2 -2
  233. package/dist/web/public/assets/{search-Ba-e1t1P.js.map → search-DZOHNA81.js.map} +1 -1
  234. package/dist/web/public/assets/{service-C-wnwJ-b.js → service-Cf7EQ4Sj.js} +3 -3
  235. package/dist/web/public/assets/{service-C-wnwJ-b.js.map → service-Cf7EQ4Sj.js.map} +1 -1
  236. package/dist/web/public/assets/{status-badge-CsdJ6k8Q.js → status-badge-RpKtiHgj.js} +2 -2
  237. package/dist/web/public/assets/{status-badge-CsdJ6k8Q.js.map → status-badge-RpKtiHgj.js.map} +1 -1
  238. package/dist/web/public/assets/{subtasks-mGRKpF0G.js → subtasks-xCHP5uI6.js} +2 -2
  239. package/dist/web/public/assets/{subtasks-mGRKpF0G.js.map → subtasks-xCHP5uI6.js.map} +1 -1
  240. package/dist/web/public/assets/{table-vmLMgj6_.js → table-S43AHY-3.js} +2 -2
  241. package/dist/web/public/assets/{table-vmLMgj6_.js.map → table-S43AHY-3.js.map} +1 -1
  242. package/dist/web/public/assets/{topn-nu66Fotx.js → topn-C2tcvmnB.js} +2 -2
  243. package/dist/web/public/assets/{topn-nu66Fotx.js.map → topn-C2tcvmnB.js.map} +1 -1
  244. package/dist/web/public/assets/{trash-2-ZIitN_U3.js → trash-2-Ct7YJmZO.js} +2 -2
  245. package/dist/web/public/assets/{trash-2-ZIitN_U3.js.map → trash-2-Ct7YJmZO.js.map} +1 -1
  246. package/dist/web/public/assets/{use-memory-DgEqHEca.js → use-memory-CCn0h8EP.js} +2 -2
  247. package/dist/web/public/assets/{use-memory-DgEqHEca.js.map → use-memory-CCn0h8EP.js.map} +1 -1
  248. package/dist/web/public/assets/{use-observability-CQev_A8e.js → use-observability-Dbal-WXR.js} +2 -2
  249. package/dist/web/public/assets/{use-observability-CQev_A8e.js.map → use-observability-Dbal-WXR.js.map} +1 -1
  250. package/dist/web/public/assets/{use-settings-CU-UcrVD.js → use-settings-erlkhPqn.js} +2 -2
  251. package/dist/web/public/assets/{use-settings-CU-UcrVD.js.map → use-settings-erlkhPqn.js.map} +1 -1
  252. package/dist/web/public/assets/{use-skills-Dr77CXLA.js → use-skills-C8Ukv8B4.js} +2 -2
  253. package/dist/web/public/assets/{use-skills-Dr77CXLA.js.map → use-skills-C8Ukv8B4.js.map} +1 -1
  254. package/dist/web/public/assets/{use-workspace-PNv9Z4de.js → use-workspace-8VZDPppc.js} +2 -2
  255. package/dist/web/public/assets/{use-workspace-PNv9Z4de.js.map → use-workspace-8VZDPppc.js.map} +1 -1
  256. package/dist/web/public/assets/{useQuery-BTyugXYV.js → useQuery-BnCHQlxq.js} +2 -2
  257. package/dist/web/public/assets/{useQuery-BTyugXYV.js.map → useQuery-BnCHQlxq.js.map} +1 -1
  258. package/dist/web/public/assets/{vector-w-Ea3pg6.js → vector-DDnIidyp.js} +2 -2
  259. package/dist/web/public/assets/{vector-w-Ea3pg6.js.map → vector-DDnIidyp.js.map} +1 -1
  260. package/dist/web/public/assets/{viewer-DKA7QP9U.js → viewer-BV0Cux3V.js} +2 -2
  261. package/dist/web/public/assets/{viewer-DKA7QP9U.js.map → viewer-BV0Cux3V.js.map} +1 -1
  262. package/dist/web/public/assets/{workspace-DVLZca7t.js → workspace-DbLMyUTn.js} +2 -2
  263. package/dist/web/public/assets/{workspace-DVLZca7t.js.map → workspace-DbLMyUTn.js.map} +1 -1
  264. package/dist/web/public/assets/{workspaces-DYZsMmY-.js → workspaces-BhF0IAJg.js} +2 -2
  265. package/dist/web/public/assets/{workspaces-DYZsMmY-.js.map → workspaces-BhF0IAJg.js.map} +1 -1
  266. package/dist/web/public/assets/{x-Ru3rHT82.js → x-BmgfwQRl.js} +2 -2
  267. package/dist/web/public/assets/{x-Ru3rHT82.js.map → x-BmgfwQRl.js.map} +1 -1
  268. package/dist/web/public/index.html +2 -2
  269. package/dist/web/public/settings.html +0 -1
  270. package/dist/web/server.d.ts.map +1 -1
  271. package/dist/web/server.js +600 -16
  272. package/dist/web/server.js.map +1 -1
  273. package/package.json +3 -2
  274. package/dist/plugins/agents/copilot/index.d.ts +0 -35
  275. package/dist/plugins/agents/copilot/index.d.ts.map +0 -1
  276. package/dist/plugins/agents/copilot/index.js +0 -182
  277. package/dist/plugins/agents/copilot/index.js.map +0 -1
  278. package/dist/web/public/assets/agents-BMI1WbZj.js +0 -12
  279. package/dist/web/public/assets/agents-BMI1WbZj.js.map +0 -1
  280. package/dist/web/public/assets/env-Bqrb9XkC.js +0 -2
  281. package/dist/web/public/assets/env-Bqrb9XkC.js.map +0 -1
  282. package/dist/web/public/assets/index-CpGWCLE5.js.map +0 -1
  283. package/dist/web/public/assets/layout-9Gp_myEd.js +0 -2
  284. package/dist/web/public/assets/layout-9Gp_myEd.js.map +0 -1
  285. package/dist/web/public/assets/messengers-BRV1IVGX.js +0 -7
  286. package/dist/web/public/assets/messengers-BRV1IVGX.js.map +0 -1
@@ -163,6 +163,11 @@ export interface Session {
163
163
  * continues the same session from its own ~/.codex/sessions store. Cleared
164
164
  * by /new. */
165
165
  codexSessionId?: string;
166
+ /** Antigravity (Google `agy`) conversation UUID discovered from
167
+ * ~/.gemini/antigravity-cli/conversations/<uuid>.pb the CLI writes
168
+ * after the first turn. Subsequent calls pass `--conversation <uuid>`
169
+ * so we continue the same session and history. Cleared by /new. */
170
+ antigravitySessionId?: string;
166
171
  /** Plan mode flag — toggled by /plan on / /plan off. When true:
167
172
  * • claude-code adapter spawns with `--permission-mode plan` and bypasses
168
173
  * the IM approval bus (plan mode is read-only, no mutations to gate).
@@ -415,7 +420,7 @@ export interface AgentSendOpts {
415
420
  signal?: AbortSignal;
416
421
  }
417
422
  /**
418
- * Adapter interface for AI coding agents (Claude Code, Codex, Copilot)
423
+ * Adapter interface for AI coding agents (Claude Code, Codex, OpenCode)
419
424
  *
420
425
  * sendPrompt returns an AsyncGenerator for streaming responses.
421
426
  * Each yielded string is a complete message chunk.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -30,5 +30,9 @@ export interface ListOpts {
30
30
  export declare function listPastes(opts?: ListOpts): PasteRow[];
31
31
  export declare function deletePaste(id: string): boolean;
32
32
  export declare function countPastes(): number;
33
+ /** Public retention API — used by tests + manual /api/viewer/prune. */
34
+ export declare function pruneExpiredPastes(): number;
35
+ /** Stop the periodic retention sweep (tests + graceful shutdown). */
36
+ export declare function stopViewerRetentionSweep(): void;
33
37
  export declare function closeViewerDb(): void;
34
38
  //# sourceMappingURL=viewer-local.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-local.d.ts","sourceRoot":"","sources":["../../src/core/viewer-local.ts"],"names":[],"mappings":"AA8CA,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAA;AAEnD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,gBAAgB,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAWD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CA8C5D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQpD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ9C;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,QAAa,GAAG,QAAQ,EAAE,CAS1D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK/C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
1
+ {"version":3,"file":"viewer-local.d.ts","sourceRoot":"","sources":["../../src/core/viewer-local.ts"],"names":[],"mappings":"AA2EA,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAA;AAEnD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,gBAAgB,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAWD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CA8C5D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQpD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ9C;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,QAAa,GAAG,QAAQ,EAAE,CAS1D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK/C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAoBD,uEAAuE;AACvE,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC"}
@@ -32,11 +32,47 @@ const SCHEMA = `
32
32
  CREATE INDEX IF NOT EXISTS idx_pastes_job ON pastes(job_id);
33
33
  `;
34
34
  const viewerLog = rootLogger.child({ component: 'viewer-local' });
35
+ /** Default 30-day TTL. 0 disables → permanent (back-compat for operators who
36
+ * treat pastes as long-term archive). LRU cap (IMHUB_VIEWER_MAX_PASTES) still
37
+ * applies on top of this. */
38
+ function resolvePasteRetentionDays() {
39
+ const raw = process.env.IMHUB_PASTE_RETENTION_DAYS;
40
+ if (raw === undefined)
41
+ return 30;
42
+ const n = parseInt(raw, 10);
43
+ if (!Number.isFinite(n) || n < 0)
44
+ return 30;
45
+ return n;
46
+ }
47
+ const RETENTION_SWEEP_INTERVAL_MS = 6 * 60 * 60 * 1000; // 6 hours
48
+ let sweepTimer = null;
35
49
  const helper = createSqliteHelper({
36
50
  file: VIEWER_DB,
37
51
  schema: SCHEMA,
38
52
  logger: viewerLog,
39
53
  component: 'viewer-local',
54
+ init: (d) => {
55
+ try {
56
+ pruneExpiredPastesInternal(d);
57
+ }
58
+ catch (err) {
59
+ viewerLog.warn({ event: 'viewer.prune_init_failed', err: String(err) });
60
+ }
61
+ if (RETENTION_SWEEP_INTERVAL_MS > 0 && sweepTimer === null) {
62
+ sweepTimer = setInterval(() => {
63
+ const live = helper.get();
64
+ if (!live)
65
+ return;
66
+ try {
67
+ pruneExpiredPastesInternal(live);
68
+ }
69
+ catch { /* logged inside */ }
70
+ }, RETENTION_SWEEP_INTERVAL_MS);
71
+ if (typeof sweepTimer === 'object' && sweepTimer && 'unref' in sweepTimer) {
72
+ sweepTimer.unref();
73
+ }
74
+ }
75
+ },
40
76
  });
41
77
  const DEFAULT_MAX_PASTES = 10_000;
42
78
  function maxPastes() {
@@ -134,7 +170,45 @@ export function countPastes() {
134
170
  const row = db.prepare('SELECT COUNT(*) AS n FROM pastes').get();
135
171
  return row.n;
136
172
  }
173
+ // ─── Retention sweep (R12 ②) ────────────────────────────────────────
174
+ //
175
+ // Time-based TTL on `created_at`. This runs *in addition to* the LRU
176
+ // capacity cap inside savePaste — so an operator who hits 10K pastes in
177
+ // a week still gets the LRU evict, and an operator with 100 pastes that
178
+ // have aged past 30 days gets the TTL evict.
179
+ function pruneExpiredPastesInternal(db) {
180
+ const days = resolvePasteRetentionDays();
181
+ if (days <= 0)
182
+ return 0;
183
+ const cutoff = Math.floor(Date.now() / 1000) - days * 86400;
184
+ const r = db.prepare('DELETE FROM pastes WHERE created_at < ?').run(cutoff);
185
+ if (r.changes > 0) {
186
+ viewerLog.info({ event: 'viewer.pruned', deleted: r.changes, days }, `Pruned ${r.changes} paste(s) older than ${days}d`);
187
+ }
188
+ return r.changes;
189
+ }
190
+ /** Public retention API — used by tests + manual /api/viewer/prune. */
191
+ export function pruneExpiredPastes() {
192
+ const db = helper.get();
193
+ if (!db)
194
+ return 0;
195
+ try {
196
+ return pruneExpiredPastesInternal(db);
197
+ }
198
+ catch (err) {
199
+ viewerLog.warn({ event: 'viewer.prune_failed', err: String(err) });
200
+ return 0;
201
+ }
202
+ }
203
+ /** Stop the periodic retention sweep (tests + graceful shutdown). */
204
+ export function stopViewerRetentionSweep() {
205
+ if (sweepTimer) {
206
+ clearInterval(sweepTimer);
207
+ sweepTimer = null;
208
+ }
209
+ }
137
210
  export function closeViewerDb() {
211
+ stopViewerRetentionSweep();
138
212
  helper.close();
139
213
  }
140
214
  //# sourceMappingURL=viewer-local.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-local.js","sourceRoot":"","sources":["../../src/core/viewer-local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer-local.js","sourceRoot":"","sources":["../../src/core/viewer-local.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Antigravity / agy MCP injector.
3
+ *
4
+ * `agy` auto-loads MCP servers declared in `~/.gemini/config/mcp_config.json`
5
+ * — the same shape Claude Code, Gemini CLI, and many other MCP hosts use:
6
+ *
7
+ * {
8
+ * "mcpServers": {
9
+ * "<name>": { "command": "...", "args": [...], "env": {...} }
10
+ * }
11
+ * }
12
+ *
13
+ * On adapter init we read-modify-write this file so the `imhub` entry
14
+ * is always pointed at the current approval-bus socket (which rotates
15
+ * every agim restart — see core/approval-bus.ts:defaultSocketPath).
16
+ * Other entries the operator already had stay untouched.
17
+ *
18
+ * Why a single shared config file (vs claude-code's per-spawn tmpdir):
19
+ * agy has no `--mcp-config <path>` flag; the only way to wire MCP is
20
+ * the global file. Concurrency-wise that's fine because the file just
21
+ * tells agy which sidecar to launch — the sidecar itself is stateless
22
+ * across runs (each run gets its own IMHUB_RUN_ID via process env).
23
+ */
24
+ /** Resolves to `${HOME}/.gemini/config/mcp_config.json`. Exported for tests
25
+ * that want to point this at a tmp dir instead of the real home. */
26
+ export declare function defaultMcpConfigPath(): string;
27
+ export interface McpServerSpec {
28
+ command: string;
29
+ args?: string[];
30
+ env?: Record<string, string>;
31
+ }
32
+ /**
33
+ * Ensure `~/.gemini/config/mcp_config.json` has the imhub MCP entry
34
+ * pointing at the current approval-bus socket. Preserves any other
35
+ * keys / mcpServers entries the operator already configured.
36
+ *
37
+ * Idempotent: safe to call on every adapter init or before every spawn.
38
+ */
39
+ export declare function ensureImhubMcp(spec: McpServerSpec, opts?: {
40
+ path?: string;
41
+ }): Promise<void>;
42
+ /**
43
+ * Remove the imhub MCP entry. Used by tests / uninstall flows; the
44
+ * normal adapter path just overwrites with a fresh socket.
45
+ */
46
+ export declare function removeImhubMcp(opts?: {
47
+ path?: string;
48
+ }): Promise<void>;
49
+ //# sourceMappingURL=ensure-mcp-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-mcp-config.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/antigravity/ensure-mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH;qEACqE;AACrE,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AASD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CrG;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAehF"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Antigravity / agy MCP injector.
3
+ *
4
+ * `agy` auto-loads MCP servers declared in `~/.gemini/config/mcp_config.json`
5
+ * — the same shape Claude Code, Gemini CLI, and many other MCP hosts use:
6
+ *
7
+ * {
8
+ * "mcpServers": {
9
+ * "<name>": { "command": "...", "args": [...], "env": {...} }
10
+ * }
11
+ * }
12
+ *
13
+ * On adapter init we read-modify-write this file so the `imhub` entry
14
+ * is always pointed at the current approval-bus socket (which rotates
15
+ * every agim restart — see core/approval-bus.ts:defaultSocketPath).
16
+ * Other entries the operator already had stay untouched.
17
+ *
18
+ * Why a single shared config file (vs claude-code's per-spawn tmpdir):
19
+ * agy has no `--mcp-config <path>` flag; the only way to wire MCP is
20
+ * the global file. Concurrency-wise that's fine because the file just
21
+ * tells agy which sidecar to launch — the sidecar itself is stateless
22
+ * across runs (each run gets its own IMHUB_RUN_ID via process env).
23
+ */
24
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
25
+ import { homedir } from 'node:os';
26
+ import { dirname, join } from 'node:path';
27
+ import { logger as rootLogger } from '../../../core/logger.js';
28
+ const log = rootLogger.child({ component: 'agent.antigravity.mcp' });
29
+ /** Resolves to `${HOME}/.gemini/config/mcp_config.json`. Exported for tests
30
+ * that want to point this at a tmp dir instead of the real home. */
31
+ export function defaultMcpConfigPath() {
32
+ return join(homedir(), '.gemini', 'config', 'mcp_config.json');
33
+ }
34
+ /**
35
+ * Ensure `~/.gemini/config/mcp_config.json` has the imhub MCP entry
36
+ * pointing at the current approval-bus socket. Preserves any other
37
+ * keys / mcpServers entries the operator already configured.
38
+ *
39
+ * Idempotent: safe to call on every adapter init or before every spawn.
40
+ */
41
+ export async function ensureImhubMcp(spec, opts = {}) {
42
+ const filePath = opts.path ?? defaultMcpConfigPath();
43
+ let current = {};
44
+ try {
45
+ const raw = await readFile(filePath, 'utf8');
46
+ if (raw.trim()) {
47
+ try {
48
+ current = JSON.parse(raw);
49
+ }
50
+ catch {
51
+ // Empty / corrupt file — agy itself logs `unexpected end of JSON
52
+ // input` and proceeds without MCP, so rewriting from scratch is
53
+ // safer than refusing to update.
54
+ log.warn({ event: 'antigravity.mcp.parse_failed', filePath }, 'replacing unparseable mcp_config.json');
55
+ current = {};
56
+ }
57
+ }
58
+ }
59
+ catch (err) {
60
+ const e = err;
61
+ if (e.code !== 'ENOENT')
62
+ throw err;
63
+ // First-time setup: create directory + start from empty
64
+ }
65
+ if (!current.mcpServers || typeof current.mcpServers !== 'object') {
66
+ current.mcpServers = {};
67
+ }
68
+ const existing = current.mcpServers.imhub;
69
+ // Skip write if nothing changed — avoids touching mtime on every send.
70
+ if (existing
71
+ && existing.command === spec.command
72
+ && JSON.stringify(existing.args ?? []) === JSON.stringify(spec.args ?? [])
73
+ && JSON.stringify(existing.env ?? {}) === JSON.stringify(spec.env ?? {})) {
74
+ return;
75
+ }
76
+ current.mcpServers.imhub = spec;
77
+ try {
78
+ await mkdir(dirname(filePath), { recursive: true });
79
+ await writeFile(filePath, JSON.stringify(current, null, 2), 'utf8');
80
+ log.info({ event: 'antigravity.mcp.config_written', filePath }, 'wrote imhub MCP entry to agy global config');
81
+ }
82
+ catch (err) {
83
+ log.warn({ event: 'antigravity.mcp.write_failed', filePath, err: String(err) }, 'could not write mcp_config.json — agy will run without imhub MCP');
84
+ throw err;
85
+ }
86
+ }
87
+ /**
88
+ * Remove the imhub MCP entry. Used by tests / uninstall flows; the
89
+ * normal adapter path just overwrites with a fresh socket.
90
+ */
91
+ export async function removeImhubMcp(opts = {}) {
92
+ const filePath = opts.path ?? defaultMcpConfigPath();
93
+ let current = {};
94
+ try {
95
+ const raw = await readFile(filePath, 'utf8');
96
+ if (raw.trim())
97
+ current = JSON.parse(raw);
98
+ }
99
+ catch (err) {
100
+ const e = err;
101
+ if (e.code === 'ENOENT')
102
+ return;
103
+ throw err;
104
+ }
105
+ if (current.mcpServers && current.mcpServers.imhub) {
106
+ delete current.mcpServers.imhub;
107
+ await writeFile(filePath, JSON.stringify(current, null, 2), 'utf8');
108
+ }
109
+ }
110
+ //# sourceMappingURL=ensure-mcp-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-mcp-config.js","sourceRoot":"","sources":["../../../../src/plugins/agents/antigravity/ensure-mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAA;AAEpE;qEACqE;AACrE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAA;AAChE,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAmB,EAAE,OAA0B,EAAE;IACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAA;IACpD,IAAI,OAAO,GAAkB,EAAE,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC5C,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAA;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;gBACjE,gEAAgE;gBAChE,iCAAiC;gBACjC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,QAAQ,EAAE,EAAE,uCAAuC,CAAC,CAAA;gBACtG,OAAO,GAAG,EAAE,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA4B,CAAA;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAA;QAClC,wDAAwD;IAC1D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,CAAC,UAAU,GAAG,EAAE,CAAA;IACzB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA;IACzC,uEAAuE;IACvE,IAAI,QAAQ;WACL,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;WACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;WACvE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7E,OAAM;IACR,CAAC;IACD,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACnE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAC5D,4CAA4C,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAC5E,kEAAkE,CAAC,CAAA;QACrE,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA0B,EAAE;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAA;IACpD,IAAI,OAAO,GAAkB,EAAE,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC5C,IAAI,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAA;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA4B,CAAA;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAM;QAC/B,MAAM,GAAG,CAAA;IACX,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA;QAC/B,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACrE,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { AgentBase, type SpawnPlan } from '../../../core/agent-base.js';
2
+ import type { AgentSendOpts } from '../../../core/types.js';
3
+ export declare class AntigravityAdapter extends AgentBase {
4
+ readonly name = "antigravity";
5
+ readonly aliases: string[];
6
+ /** Resolved once on first use — survives the process lifetime.
7
+ * null = "we haven't probed yet"; undefined = "probed and didn't find". */
8
+ private resolvedBin;
9
+ protected get commandName(): string;
10
+ /** Lazy mcp-config write guard. Without this, every send would touch
11
+ * the global mcp_config.json. Read-modify-write does a no-op fast-path
12
+ * when the file is already correct, but we still avoid the disk hit. */
13
+ private mcpReady;
14
+ /** Last conversation directory mtime we saw before launching a run.
15
+ * Used to identify the newly-created .pb after a fresh run finishes. */
16
+ private snapshotConversationMtimes;
17
+ /** Diff snapshots to find the newly-created .pb file. Returns the UUID
18
+ * portion (.pb stripped) of whichever file is new OR has a newer mtime
19
+ * than the snapshot, prioritising the freshest one. */
20
+ private detectNewConversation;
21
+ protected buildArgs(prompt: string, opts: AgentSendOpts): string[];
22
+ protected prepareCommand(prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
23
+ /** agy --print emits plain stdout text, not JSONL. The base spawnStream
24
+ * passes non-JSON lines through verbatim — return '' here so we don't
25
+ * double-emit when the rare JSON-shaped line slips through. */
26
+ protected extractText(_event: unknown): string;
27
+ /** agy reports "Authentication required" when the OAuth token is missing
28
+ * or expired. Map that to a friendly hint pointing at `agy login`. */
29
+ protected handleError(_code: number, stderr: string, errorMessage: string): string | null;
30
+ protected notAvailableMessage(): string;
31
+ isAvailable(): Promise<boolean>;
32
+ }
33
+ export declare const antigravityAdapter: AntigravityAdapter;
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/antigravity/index.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAsB3D,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,CAAC,IAAI,iBAAgB;IAI7B,QAAQ,CAAC,OAAO,WAA0B;IAE1C;gFAC4E;IAC5E,OAAO,CAAC,WAAW,CAAkC;IAErD,SAAS,KAAK,WAAW,IAAI,MAAM,CA0ClC;IAED;;6EAEyE;IACzE,OAAO,CAAC,QAAQ,CAAQ;IAExB;6EACyE;YAC3D,0BAA0B;IAmBxC;;4DAEwD;YAC1C,qBAAqB;IA0BnC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE;cASlD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAuHvF;;oEAEgE;IAChE,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;IAI9C;2EACuE;IACvE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYzF,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAQjC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAUtC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAA"}