@noxsoft/anima 5.0.1 → 5.0.3

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 (323) hide show
  1. package/dist/{accounts-BOkEyUcS.js → accounts-DjjQHOIW.js} +5 -5
  2. package/dist/{accounts-CVmv61PJ.js → accounts-Dzi6Ld7X.js} +2 -2
  3. package/dist/{acp-cli-C8aBckv5.js → acp-cli-I-yv1f5O.js} +15 -15
  4. package/dist/{acp-cli-BcshtFqY.js → acp-cli-QBd9GLqD.js} +3 -3
  5. package/dist/{agent-Cil6Zvns.js → agent-B3KeHK1A.js} +9 -9
  6. package/dist/{agent-c49U1LxE.js → agent-fG1PVmNy.js} +16 -16
  7. package/dist/{agent-scope-DICrDp7Y.js → agent-scope-BHR6uOLT.js} +2 -2
  8. package/dist/{agent-scope-BLiq3nK_.js → agent-scope-ryeVDUKe.js} +2 -2
  9. package/dist/{agents-2BloqCjm.js → agents-DY5ZtGB2.js} +9 -9
  10. package/dist/{agents.config-Bqr5rrkV.js → agents.config-DmF0fsB6.js} +1 -1
  11. package/dist/{anthropic-direct-runner-mh6c_WBB.js → anthropic-direct-runner-BJosFvVm.js} +41 -18
  12. package/dist/{anthropic-direct-runner-BVlO2Vi5.js → anthropic-direct-runner-BXb24VJt.js} +50 -27
  13. package/dist/{audit-BbmRSFjf.js → audit-BTMmL_HS.js} +5 -5
  14. package/dist/{audit-DegswVkZ.js → audit-qHMf9jWY.js} +16 -16
  15. package/dist/{auth-Cs_c5TKt.js → auth-DQfFqQBz.js} +3 -3
  16. package/dist/{auth-choice-BVAMr2Dk.js → auth-choice-BoyT3ahK.js} +60 -8
  17. package/dist/{auth-health-D0VUH0FQ.js → auth-health-BcABdgUT.js} +1 -1
  18. package/dist/{auth-profiles-k5IOWaG2.js → auth-profiles-BF5x9Ej0.js} +1 -1
  19. package/dist/{auth-profiles-BhZX2spm.js → auth-profiles-C_LmTbMb.js} +5 -5
  20. package/dist/{auth-profiles-Chf1JBpl.js → auth-profiles-Da39zGOD.js} +4 -4
  21. package/dist/{auth-store-D0vDEvCx.js → auth-store-CXZzirrJ.js} +3 -3
  22. package/dist/{auth-store-BMwyg-WK.js → auth-store-DTpDRu--.js} +3 -3
  23. package/dist/{banner-CgxCSS-T.js → banner-CJVa8aiZ.js} +1 -1
  24. package/dist/{bonjour-discovery-DaCmsB4i.js → bonjour-discovery-B3IeIN1u.js} +2 -2
  25. package/dist/build-info.json +3 -3
  26. package/dist/bundled/boot-md/handler.js +22 -22
  27. package/dist/bundled/bootstrap-extra-files/handler.js +7 -7
  28. package/dist/bundled/session-memory/handler.js +19 -19
  29. package/dist/{call-Z_GCO8CL.js → call-BKsdSTVf.js} +1 -1
  30. package/dist/{call-BOwaQIXo.js → call-C3CH9PNK.js} +6 -6
  31. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  32. package/dist/{catalog-B-pfqu76.js → catalog-3hzXhHxJ.js} +2 -2
  33. package/dist/{channel-web-Y8i3EzJq.js → channel-web-Df3Ay9v7.js} +18 -18
  34. package/dist/{channels-status-issues-DenKLCLq.js → channels-status-issues-D5XAOSaj.js} +4 -4
  35. package/dist/{chrome-C3-muxXb.js → chrome-CLhrEjgx.js} +4 -4
  36. package/dist/{chrome-Cxl7I5SB.js → chrome-CkSIMI7j.js} +2 -2
  37. package/dist/{chunk-DGg8zCWl.js → chunk-Dq7ILx_r.js} +2 -2
  38. package/dist/{chunk-DFCmYqgJ.js → chunk-fcLG1hME.js} +1 -1
  39. package/dist/{clack-prompter-CCRr4nAr.js → clack-prompter-DmD_A7en.js} +5 -5
  40. package/dist/{clack-prompter-B-ZJG628.js → clack-prompter-bl-Zsxpq.js} +1 -1
  41. package/dist/cli/daemon-cli.js +1 -1
  42. package/dist/{cli-C3uw3mId.js → cli-0-FvuyBX.js} +22 -22
  43. package/dist/cli-CLVEx1Po.js +104 -0
  44. package/dist/{cli-session-BzZYmGP1.js → cli-session-CmX1oA1T.js} +7 -7
  45. package/dist/{cli-session-DgUHOBYo.js → cli-session-gR2abU0g.js} +16 -16
  46. package/dist/{client-BObcTF_9.js → client-BT3pbXCv.js} +3 -3
  47. package/dist/{command-registry-DLofaVIN.js → command-registry-C3SmyTQU.js} +12 -12
  48. package/dist/{common-k1Cu8adj.js → common-Bi43BlMQ.js} +2 -2
  49. package/dist/{common-Cd7BmlCQ.js → common-CSTOiddD.js} +2 -2
  50. package/dist/{completion-cli-C9KvX2ZF.js → completion-cli-308M08su.js} +2 -2
  51. package/dist/{completion-cli-3eYvtAih.js → completion-cli-D7gWcWEj.js} +3 -3
  52. package/dist/{config-B-9UciOO.js → config-BfhpauV9.js} +6 -6
  53. package/dist/{config-CG7uuHNE.js → config-Dk-5Mb_G.js} +6 -6
  54. package/dist/{config-D6D_ieel.js → config-Ofh9gKvs.js} +1 -1
  55. package/dist/config-cli-CajDGi9m.js +15 -0
  56. package/dist/{config-cli-CBXWDtvj.js → config-cli-De0z7mvk.js} +3 -3
  57. package/dist/{config-guard-BT3OoaEu.js → config-guard-BnkobgvR.js} +21 -21
  58. package/dist/{config-guard-qiKju2Fg.js → config-guard-DlOs5hMU.js} +2 -2
  59. package/dist/{configure-jlAKeuki.js → configure-BXK8YRUD.js} +32 -32
  60. package/dist/{configure-CH_-SNya.js → configure-Caf6yI_m.js} +24 -24
  61. package/dist/{configure-Dpk4lSoz.js → configure-DS9oQW51.js} +78 -78
  62. package/dist/{configure-CGTBBLR_.js → configure-DgXRL7Uz.js} +9 -9
  63. package/dist/{context-Cau0zD3W.js → context-BZV-msqG.js} +1 -1
  64. package/dist/{control-service-DMoq3DpT.js → control-service-BFYEuU-S.js} +5 -5
  65. package/dist/{control-service-CUhnhmpc.js → control-service-DUF4hGd3.js} +2 -2
  66. package/dist/{cron-cli-CKs1evSF.js → cron-cli-BglUapfu.js} +4 -4
  67. package/dist/{cron-cli-ybIqf_95.js → cron-cli-OHSsCpVe.js} +16 -16
  68. package/dist/{daemon-cli-C5Tosclk.js → daemon-cli-B2UGyc5z.js} +19 -19
  69. package/dist/{daemon-cli-CSCFNzUo.js → daemon-cli-CO-1GTE_.js} +5 -5
  70. package/dist/daemon-cli.js +58 -1
  71. package/dist/{daemon-runtime-B9AywEma.js → daemon-runtime-BsUCg0Nr.js} +3 -3
  72. package/dist/{daemon-runtime-DpY6Y5qE.js → daemon-runtime-cGQoReHT.js} +1 -1
  73. package/dist/{deliver-DkF6LCoS.js → deliver-CoAOvyW0.js} +1 -1
  74. package/dist/{deliver-BYxbDIF0.js → deliver-DhQSpWQA.js} +4 -4
  75. package/dist/{deliver-B2p9Fke_.js → deliver-DvbZ8dp4.js} +6 -6
  76. package/dist/{deps-D9266xfk.js → deps-CCbWMWT4.js} +1 -1
  77. package/dist/{diagnostics-TXSvtpaq.js → diagnostics-CtqVmSaZ.js} +1 -1
  78. package/dist/{dispatcher-DG44QJKz.js → dispatcher-C4k9ABOv.js} +2 -2
  79. package/dist/{dispatcher-BeO47t7A.js → dispatcher-N_4IYF9I.js} +1 -1
  80. package/dist/{dns-cli-BklOUsrX.js → dns-cli-DJ8mwzgA.js} +2 -2
  81. package/dist/{dns-cli-Dq98107U.js → dns-cli-Dk48S2y7.js} +13 -13
  82. package/dist/{docs-cli-CehJ2v5M.js → docs-cli-BvBEqoCl.js} +7 -7
  83. package/dist/{doctor-DJfgnQ67.js → doctor-9cbiXykn.js} +19 -19
  84. package/dist/{doctor-CWmHUAjs.js → doctor-C_1WNQix.js} +40 -40
  85. package/dist/{doctor-completion-CmJmktDv.js → doctor-completion-B1cKYcZj.js} +1 -1
  86. package/dist/{doctor-completion-CtCwd1fi.js → doctor-completion-D7uvGhAv.js} +3 -3
  87. package/dist/{doctor-config-flow-D0GgdMmi.js → doctor-config-flow-Bno6wZvG.js} +7 -7
  88. package/dist/{doctor-config-flow-D_8YNTSK.js → doctor-config-flow-rshwu4JS.js} +3 -3
  89. package/dist/entry.js +59 -2
  90. package/dist/{env-T3-raV4i.js → env-CLiKFfXU.js} +1 -1
  91. package/dist/{exec-DbnX_71w.js → exec-Bo7Vwe77.js} +1 -1
  92. package/dist/{exec-DnanRQle.js → exec-CEFTijVj.js} +1 -1
  93. package/dist/{exec-approvals-cli-B7hQEhGe.js → exec-approvals-cli-CRqO-FRn.js} +19 -19
  94. package/dist/{exec-approvals-cli-CcY7IQWQ.js → exec-approvals-cli-i_Bmu0zE.js} +4 -4
  95. package/dist/extensionAPI.js +1535 -315
  96. package/dist/{frontmatter-BmBmtOUh.js → frontmatter-Dsa7N963.js} +1 -1
  97. package/dist/{gateway-cli-DYrzIvOE.js → gateway-cli-CBmfvcpr.js} +99 -99
  98. package/dist/{gateway-cli-BazTmg20.js → gateway-cli-CufIzw2K.js} +43 -43
  99. package/dist/{gateway-rpc-LkRV5joR.js → gateway-rpc-BX-Pz0j8.js} +3 -3
  100. package/dist/{gateway-rpc-De-TWFvD.js → gateway-rpc-BvqpdNqp.js} +1 -1
  101. package/dist/{gmail-setup-utils-B4oMbrOI.js → gmail-setup-utils-B-LgbK-5.js} +3 -3
  102. package/dist/{health-BRSKF_iF.js → health-BVBoq6jM.js} +10 -10
  103. package/dist/{health-JqtB_B8C.js → health-DKC8u4W8.js} +18 -18
  104. package/dist/{health-format-Ojy0hLp3.js → health-format-DHYaqzgj.js} +2 -2
  105. package/dist/{heartbeat-visibility-BGj2czmk.js → heartbeat-visibility-CF3WzMM0.js} +2 -2
  106. package/dist/{heartbeat-visibility-pyFf6XBW.js → heartbeat-visibility-CUKC8xqZ.js} +2 -2
  107. package/dist/{help-format-BZ7j9sHT.js → help-format-mLYxJ3oD.js} +1 -1
  108. package/dist/{hooks-cli-B7g3jEC3.js → hooks-cli-BHO_BQFY.js} +23 -23
  109. package/dist/{hooks-cli-ZK4Z044T.js → hooks-cli-kLrFK7pV.js} +57 -57
  110. package/dist/{hooks-status-DR_WkhpR.js → hooks-status-CfvVr6eJ.js} +3 -3
  111. package/dist/{image-ops-B7tKwzpV.js → image-ops-C_aRXc-7.js} +1 -1
  112. package/dist/index.js +69 -69
  113. package/dist/{installs-BxZFjTKY.js → installs-DW-ErO4y.js} +5 -5
  114. package/dist/{lanes-DyM6NSSL.js → lanes-CrNcoc6P.js} +480 -163
  115. package/dist/{lifecycle-core-CHv9wUhV.js → lifecycle-core-DWESti3N.js} +6 -6
  116. package/dist/{links-CziCxopc.js → links-C4Hwnnc9.js} +1 -1
  117. package/dist/llm-slug-generator.js +17 -17
  118. package/dist/{logging-Dwz0XtXm.js → logging-CnEuyIPZ.js} +1 -1
  119. package/dist/{login-BvRe8YZ9.js → login-CY9_XaLc.js} +7 -7
  120. package/dist/{login-BbfWLOBl.js → login-Dj6hCAFK.js} +5 -5
  121. package/dist/{login-DevThvtW.js → login-Ga69_Kio.js} +2 -2
  122. package/dist/{login-qr-FDWY-tu5.js → login-qr-BYeWGzxI.js} +12 -12
  123. package/dist/{login-qr-BqhujMcQ.js → login-qr-DD1apkdT.js} +10 -10
  124. package/dist/{login-qr-BkpIGqae.js → login-qr-swgX7elR.js} +3 -3
  125. package/dist/{logs-cli-CiMRc2qL.js → logs-cli-D02oahhw.js} +4 -4
  126. package/dist/{logs-cli-CsfmPUwa.js → logs-cli-DAVu9h8p.js} +16 -16
  127. package/dist/{manager-CcawxgaC.js → manager-CLAy-qOR.js} +10 -10
  128. package/dist/{manager-v4S80Br3.js → manager-DQPfk6Ea.js} +12 -12
  129. package/dist/{manager-DS1DfkbC.js → manager-yWxV2UI_.js} +1 -1
  130. package/dist/{manifest-registry-BiGCvMJ8.js → manifest-registry-BJat2nhC.js} +1 -1
  131. package/dist/{memory-cli-wDO418hx.js → memory-cli-B8AsIRG3.js} +3 -3
  132. package/dist/{memory-cli-Cl2n9UtH.js → memory-cli-bA70cVlm.js} +12 -12
  133. package/dist/{message-channel-DuxJGOJz.js → message-channel-C5I8UgGH.js} +1 -1
  134. package/dist/{model-auth-Ja4oelNH.js → model-auth-Be3_KahV.js} +2 -2
  135. package/dist/{model-auth-DVG37yXU.js → model-auth-DBHvPqaY.js} +4 -4
  136. package/dist/{model-auth-Uxm-wRjR.js → model-auth-DYHjH-Oh.js} +3 -3
  137. package/dist/{model-selection-xZLlICyg.js → model-selection-BuMFehML.js} +5 -2
  138. package/dist/{model-selection-BKFF7fDb.js → model-selection-DFbDH9o2.js} +4 -1
  139. package/dist/{model-selection-C2dAUmK_.js → model-selection-DRIxw3do.js} +5 -2
  140. package/dist/{models-tQnX4hL4.js → models-B9jYbX5H.js} +26 -26
  141. package/dist/{node-cli-DAcW-rfA.js → node-cli-C_efNJ2B.js} +7 -7
  142. package/dist/{node-cli-CZuWFgpO.js → node-cli-ScPCT6uD.js} +28 -28
  143. package/dist/{node-service-Ds1r16VN.js → node-service-BCfZtWK_.js} +1 -1
  144. package/dist/{note-Daao-cv8.js → note-DjzS4Am4.js} +2 -2
  145. package/dist/{npm-registry-spec-fJIJ8GG5.js → npm-registry-spec-Opq9qQXl.js} +1 -1
  146. package/dist/{onboard-Dd6xFMYB.js → onboard-C7ZSJNCe.js} +10 -10
  147. package/dist/{onboard-dasbF9G1.js → onboard-CJOJPctL.js} +17 -17
  148. package/dist/{onboard-channels-DisvVyIs.js → onboard-channels-DSlUCvl1.js} +2 -2
  149. package/dist/{onboard-channels-BUv3VbAL.js → onboard-channels-DwPNXSwW.js} +9 -9
  150. package/dist/{onboard-helpers-BgsHO6fO.js → onboard-helpers-CU_S0_Kf.js} +10 -10
  151. package/dist/{onboard-helpers-49TVSf7J.js → onboard-helpers-tkuUrdCB.js} +2 -2
  152. package/dist/{onboarding-Dq3bCBjc.js → onboarding-Caiq91Yz.js} +10 -10
  153. package/dist/{onboarding-6Xs4orLw.js → onboarding-DP2NlqhA.js} +20 -20
  154. package/dist/{outbound-RxegsVGB.js → outbound-B84phlQU.js} +4 -4
  155. package/dist/{outbound-CliT3nme.js → outbound-CKmmCVxJ.js} +1 -1
  156. package/dist/{outbound-CLII4C2A.js → outbound-DKM-JeSH.js} +5 -5
  157. package/dist/{parse-timeout-BnOIKwx8.js → parse-timeout-C59j-ev4.js} +1 -1
  158. package/dist/{parse-timeout-C8t_lmnL.js → parse-timeout-aZGyXXFz.js} +3 -3
  159. package/dist/{path-env-CsgLP0dy.js → path-env-cFxXrXB1.js} +1 -1
  160. package/dist/{paths-DybdJi5a.js → paths-CLxC7m0Z.js} +1 -1
  161. package/dist/{pi-auth-json-MH7vz0HI.js → pi-auth-json-DPoqstQN.js} +7 -7
  162. package/dist/{pi-auth-json-BY6wRDm0.js → pi-auth-json-DjxzPUt3.js} +2 -2
  163. package/dist/{pi-auth-json-DLroEcea.js → pi-auth-json-hMxhauJ8.js} +6 -6
  164. package/dist/{pi-embedded-CS4D_0t7.js → pi-embedded-JUmNmkTK.js} +700 -362
  165. package/dist/{pi-embedded-helpers-iju5zIIA.js → pi-embedded-helpers-B6wVA0hU.js} +1 -1
  166. package/dist/{pi-embedded-helpers-DnRfi8bN.js → pi-embedded-helpers-B_Sx4G6d.js} +30 -20
  167. package/dist/{pi-tools.policy-RhdERrk3.js → pi-tools.policy-Bn9S3ywB.js} +2 -2
  168. package/dist/{pi-tools.policy-CN78I2yN.js → pi-tools.policy-ChzY9kW7.js} +7 -7
  169. package/dist/{plugin-auto-enable-DLrgOd4y.js → plugin-auto-enable-UE1XVFcw.js} +1 -1
  170. package/dist/{plugin-auto-enable-DIWd94Po.js → plugin-auto-enable-f05JE-GF.js} +5 -5
  171. package/dist/{plugin-registry-l3z9phEV.js → plugin-registry-BeB2L6Qe.js} +2 -2
  172. package/dist/{plugin-registry-esOxvV3X.js → plugin-registry-DIXcynua.js} +4 -4
  173. package/dist/plugin-sdk/agents/anthropic-direct-runner.d.ts +1 -1
  174. package/dist/plugin-sdk/agents/gemini-direct-runner.d.ts +38 -0
  175. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +2 -2
  176. package/dist/plugin-sdk/commands/onboard-types.d.ts +2 -2
  177. package/dist/plugin-sdk/gateway/protocol/index.d.ts +22 -22
  178. package/dist/plugin-sdk/index.js +75 -8
  179. package/dist/{plugins-C_GedoUi.js → plugins-DCXdhkeB.js} +2 -2
  180. package/dist/{plugins-BmYfBGLM.js → plugins-NbldDVJs.js} +1 -1
  181. package/dist/{plugins-cli-CbXtuN4b.js → plugins-cli-CzUD-ewi.js} +58 -58
  182. package/dist/{plugins-cli-D2v0n4BL.js → plugins-cli-Dk2W0fBT.js} +23 -23
  183. package/dist/{polls-Cuv4dsX_.js → polls-OzE9fR2s.js} +6 -6
  184. package/dist/{ports-DOiSDgNp.js → ports-CWvYU8j6.js} +4 -4
  185. package/dist/{ports-BQ0cAsGj.js → ports-Cgow804e.js} +2 -2
  186. package/dist/{program-y0NPJuYm.js → program-DxItv_Ts.js} +28 -28
  187. package/dist/{program-context-CqPwmgYa.js → program-context-cgh8PMPD.js} +33 -33
  188. package/dist/{progress-BZZa-fXr.js → progress-DzZ_4Z4f.js} +1 -1
  189. package/dist/{prompt-style-1bwj7IzZ.js → prompt-style-C7WfXowC.js} +1 -1
  190. package/dist/{prompts-DY0qdoD1.js → prompts-BfHxhlF9.js} +13 -2
  191. package/dist/{prompts-DTKoIKPV.js → prompts-DH_nIROF.js} +71 -8
  192. package/dist/{pw-ai-BhoKfvvM.js → pw-ai-Bigm0Qwh.js} +7 -7
  193. package/dist/{pw-ai-CJgeaF06.js → pw-ai-CsODxGt8.js} +3 -3
  194. package/dist/{qmd-manager-BGob_1OP.js → qmd-manager-C3z8LWKx.js} +6 -6
  195. package/dist/{qmd-manager-BmGj4bZk.js → qmd-manager-lfhigvUf.js} +6 -6
  196. package/dist/{register.agent-CRazop1A.js → register.agent-BVwbjkKx.js} +30 -30
  197. package/dist/{register.agent-Bi2FqIlN.js → register.agent-D0FKVD_s.js} +70 -70
  198. package/dist/{register.anima-BmdRCJLy.js → register.anima-Dc7OI2Nh.js} +4 -4
  199. package/dist/{register.anima-FFaI_C8x.js → register.anima-bys_cyEd.js} +4 -4
  200. package/dist/{register.configure-FIXOWrO9.js → register.configure-BrRG_RtB.js} +31 -31
  201. package/dist/register.configure-CXKr61Ka.js +108 -0
  202. package/dist/register.maintenance-BToHjam6.js +103 -0
  203. package/dist/{register.maintenance-DJYji5mV.js → register.maintenance-DXL3L0ip.js} +35 -35
  204. package/dist/{register.onboard-thGXwzOX.js → register.onboard-B3hbdfaQ.js} +71 -71
  205. package/dist/{register.onboard-oUsWjmam.js → register.onboard-Bg5zEb3f.js} +35 -35
  206. package/dist/{register.setup-B4MYuE3g.js → register.setup-CZqwphif.js} +35 -35
  207. package/dist/{register.setup-DWDrQ7RT.js → register.setup-Cq8nqbrU.js} +71 -71
  208. package/dist/{register.status-health-sessions-Ce9QUAyj.js → register.status-health-sessions-D1kjQUAc.js} +67 -67
  209. package/dist/{register.status-health-sessions-CTKdzo7a.js → register.status-health-sessions-mdLJbfPN.js} +28 -28
  210. package/dist/{register.subclis-CWmYc4AB.js → register.subclis-mbYw7H-_.js} +20 -20
  211. package/dist/{reply-BKpIrCr-.js → reply-CwV-5jE0.js} +56 -52
  212. package/dist/{reply-CpHIJ9Kk.js → reply-DAGmjvs-.js} +33 -29
  213. package/dist/{reply-prefix-BO_Dt82N.js → reply-prefix-BRsV1Eof.js} +2 -2
  214. package/dist/{reply-prefix-BwVBvQXp.js → reply-prefix-CAsFNEP7.js} +2 -2
  215. package/dist/{routes-C2EyUA9x.js → routes-CYHrkIjB.js} +6 -6
  216. package/dist/{routes-XhTPYecR.js → routes-cdfVFYMI.js} +2 -2
  217. package/dist/{run-CGokiDR8.js → run-DE6EaeE3.js} +70 -70
  218. package/dist/{run--9hftM2H.js → run-S0Cw3Fyy.js} +32 -32
  219. package/dist/{run-main-DxcOzCLw.js → run-main-CCxXEvb7.js} +41 -41
  220. package/dist/{runtime-guard-B40AREJ_.js → runtime-guard-CNnLK4pn.js} +1 -1
  221. package/dist/{sandbox-BwUo1b0I.js → sandbox-B4-dXpqZ.js} +6 -6
  222. package/dist/{sandbox-CiwAPzO7.js → sandbox-DhcoWMaN.js} +2 -2
  223. package/dist/{sandbox-cli-D9-wZJ9M.js → sandbox-cli-DQMWPCOh.js} +24 -24
  224. package/dist/{sandbox-cli-DsrzwG_s.js → sandbox-cli-TAuv3mTO.js} +6 -6
  225. package/dist/{security-cli-CX5uciKz.js → security-cli-Da-3YxZ4.js} +29 -29
  226. package/dist/{security-cli-CouqfUGc.js → security-cli-Dc-NwTC2.js} +9 -9
  227. package/dist/{semantic-Buqqx7gZ.js → semantic-BlQgdb3-.js} +1 -1
  228. package/dist/{semantic-B4TOg4CK.js → semantic-VlSmVCfb.js} +1 -1
  229. package/dist/{server-context-B78_sSOW.js → server-context-C-usQ5Np.js} +1 -1
  230. package/dist/{server-context-efO1YgXk.js → server-context-r7wPe4ZD.js} +9 -9
  231. package/dist/{server-node-events-TN_Y9MgU.js → server-node-events-3KeQAwUo.js} +14 -14
  232. package/dist/{server-node-events-DJlLCF2M.js → server-node-events-GTSQEd_U.js} +36 -36
  233. package/dist/{service-D1idQeBv.js → service-DCVAkKlN.js} +1 -1
  234. package/dist/{service-audit-BzwV-IOi.js → service-audit-Crw1cAbj.js} +1 -1
  235. package/dist/{service-audit-BbwXAhsr.js → service-audit-DRIpsryX.js} +3 -3
  236. package/dist/{session-Dvwwi-Eb.js → session-CrGApVik.js} +1 -1
  237. package/dist/{session-skOcrvF2.js → session-D3BNUwtH.js} +1 -1
  238. package/dist/{session-DCGAvNG9.js → session-DKCUYHCS.js} +1 -1
  239. package/dist/{session-cost-usage-6bDLU9Pb.js → session-cost-usage-LvsvRW5g.js} +1 -1
  240. package/dist/{session-BjPdEBPh.js → session-mpOb9zFL.js} +5 -5
  241. package/dist/{sessions-kJgmpWtv.js → sessions-BduC6sZj.js} +78 -68
  242. package/dist/{sessions-B7ikzhI_.js → sessions-CAiEkTKb.js} +18 -8
  243. package/dist/{sessions-B7clh58j.js → sessions-DLPN62LD.js} +4 -4
  244. package/dist/{settings-cli-JU5bg5jb.js → settings-cli-BgGYdH4N.js} +77 -77
  245. package/dist/{settings-cli-DjVugHID.js → settings-cli-f0O0FUVO.js} +32 -32
  246. package/dist/{setup-token-CvRwJUVY.js → setup-token-lcjrc9sO.js} +28 -28
  247. package/dist/{setup-token-wFsQlaW2.js → setup-token-ykp60QVx.js} +9 -9
  248. package/dist/{shared-DC8lQHCt.js → shared-Ca0NTTF0.js} +3 -3
  249. package/dist/{shell-env-JzaPTLKV.js → shell-env-BZ_fIIlm.js} +1 -1
  250. package/dist/{shell-env-C1yK_Rod.js → shell-env-DaSbgZYX.js} +2 -2
  251. package/dist/{skill-scanner-HQwt_KRF.js → skill-scanner--TxpCSNF.js} +1 -1
  252. package/dist/{skills-cli-OYZS-U1f.js → skills-cli-BpyTvFkg.js} +16 -16
  253. package/dist/{skills-cli-CSMzc9am.js → skills-cli-Tm326cFx.js} +2 -2
  254. package/dist/{skills-install-BKz5WLq4.js → skills-install-B2m10oTm.js} +5 -5
  255. package/dist/{skills-status-B_umZ78Q.js → skills-status-D14GZ5WN.js} +3 -3
  256. package/dist/{skills-ppB3qrZU.js → skills-wS8aRGeO.js} +3 -3
  257. package/dist/{soul-DpWsWxOa.js → soul-CAEpnUkv.js} +1 -1
  258. package/dist/{soul-aZoR6Ctt.js → soul-D9EtC35X.js} +1 -1
  259. package/dist/{sqlite-CnVGUfhz.js → sqlite-B0rfPL8q.js} +2 -2
  260. package/dist/{sqlite-Duz1QJIT.js → sqlite-CR0WDTae.js} +2 -2
  261. package/dist/start-DYq7cNRG.js +157 -0
  262. package/dist/{start-CAbxlnFZ.js → start-Y69GZPdX.js} +41 -41
  263. package/dist/{status-YH65ctig.js → status-BplZv8_T.js} +2 -2
  264. package/dist/{status-CrJV2Y4x.js → status-K3LGPZeT.js} +4 -4
  265. package/dist/{status-CxxXFU4R.js → status-Uzlo7BvY.js} +27 -27
  266. package/dist/{status-1TjjCE1l.js → status-rt3tIYmL.js} +13 -13
  267. package/dist/{status.update-P6xyBet8.js → status.update-B61Emp_r.js} +3 -3
  268. package/dist/{status.update-BzAuf_G-.js → status.update-yjbKzlMn.js} +1 -1
  269. package/dist/{subagent-registry-xJY9wqZy.js → subagent-registry-DfCDq9hk.js} +14 -14
  270. package/dist/{subagent-registry-3Dw3YppH.js → subagent-registry-ZIpC5W-9.js} +7 -7
  271. package/dist/{subagent-registry-B_65nJFp.js → subagent-registry-xp5sYYzS.js} +13 -13
  272. package/dist/{subsystem-Cn6bJV8Z.js → subsystem-BMsbqSb4.js} +58 -1
  273. package/dist/{subsystem-WFp78xn1.js → subsystem-BP2l3SHn.js} +58 -1
  274. package/dist/{system-cli-Dbn4_ed8.js → system-cli-D-eyDWD6.js} +4 -4
  275. package/dist/{system-cli-lmslA_Ox.js → system-cli-Dy2Pwnbg.js} +15 -15
  276. package/dist/{systemd-DYPdTwok.js → systemd-DXo2A9_S.js} +2 -2
  277. package/dist/{systemd-hints-E8yYE8Q1.js → systemd-hints-DIjCA1An.js} +1 -1
  278. package/dist/{systemd-linger-CpWguZ4b.js → systemd-linger-DgB-ow-D.js} +2 -2
  279. package/dist/{table-B991ZwKi.js → table-C-GNQABy.js} +2 -2
  280. package/dist/{timeout-Dbspj9Jf.js → timeout-Cl8rWNWO.js} +350 -33
  281. package/dist/{tokens-k_R7Y792.js → tokens-FGW_JgKz.js} +1 -1
  282. package/dist/{tool-images-DJZPwGqm.js → tool-images-Df50dvpv.js} +2 -2
  283. package/dist/{tool-images-BehEzEZF.js → tool-images-RiPaL7wQ.js} +2 -2
  284. package/dist/{tui-PCTDV7Ct.js → tui-NlR4LFBm.js} +9 -9
  285. package/dist/{tui--eIVX_W0.js → tui-YsmTyq58.js} +3 -3
  286. package/dist/{tui-cli-DBV3lnXA.js → tui-cli-CSudxVpO.js} +9 -9
  287. package/dist/{tui-cli-D39zC_Ew.js → tui-cli-QnKj1We8.js} +28 -28
  288. package/dist/{update-tjMvDUCw.js → update-B2O46V_t.js} +3 -3
  289. package/dist/{update-cli-QP5L8xlv.js → update-cli-BXKL-v-n.js} +86 -86
  290. package/dist/{update-cli-BzaQvirL.js → update-cli-BgQUtlLg.js} +37 -37
  291. package/dist/{update-runner-ZuJN8uBE.js → update-runner-U2WcWGfd.js} +5 -5
  292. package/dist/{update-runner-B_oj7S_n.js → update-runner-fvdM_Hip.js} +1 -1
  293. package/dist/{usage-DzKbMa8N.js → usage-CM-NiwBA.js} +9 -9
  294. package/dist/{utils-dWKYjULE.js → utils-B60lF9Wq.js} +1 -1
  295. package/dist/{web-CgQc2Raf.js → web-B8r6MvXh.js} +43 -43
  296. package/dist/web-BzFhL5WI.js +67 -0
  297. package/dist/{web-nI3eIGAT.js → web-eoSM6P0a.js} +26 -26
  298. package/dist/{webhooks-cli-CYbIJJF6.js → webhooks-cli-24A2CbXR.js} +2 -2
  299. package/dist/{webhooks-cli-oRmSfYdd.js → webhooks-cli-CgkxWcH5.js} +13 -13
  300. package/dist/{whatsapp-actions-BzPQUcRR.js → whatsapp-actions-BVlqbVgY.js} +3 -3
  301. package/dist/{whatsapp-actions-CZuxHplg.js → whatsapp-actions-BYxKWK0A.js} +13 -13
  302. package/dist/{whatsapp-actions-BB-Leqn2.js → whatsapp-actions-DagVwYC6.js} +17 -17
  303. package/dist/{widearea-dns-CkuHFBQy.js → widearea-dns-B1TTb1v5.js} +1 -1
  304. package/dist/{workspace-DOJssemp.js → workspace-Cvio8QlZ.js} +1 -1
  305. package/dist/{ws-log-B-xsUQys.js → ws-log-De7GACYn.js} +1 -1
  306. package/dist/{ws-CQYP0dWu.js → ws-sdRTa2sP.js} +1 -1
  307. package/package.json +1 -1
  308. package/dist/cli-CfvBmuhw.js +0 -104
  309. package/dist/config-cli-cmNuTlw0.js +0 -15
  310. package/dist/register.configure-r5AViY3N.js +0 -108
  311. package/dist/register.maintenance-Cpf0ZZTL.js +0 -103
  312. package/dist/start-M9abr1O1.js +0 -157
  313. package/dist/web-DtWSf5wm.js +0 -67
  314. /package/dist/{boolean-M-esQJt6.js → boolean-Ce2-qkSB.js} +0 -0
  315. /package/dist/{command-format-B1WxXbeU.js → command-format-UwAvxtMC.js} +0 -0
  316. /package/dist/{config-Qw5FwfRK.js → config-COtiNNtV.js} +0 -0
  317. /package/dist/{errors-DjZBTJJ3.js → errors-D6Vj_xs4.js} +0 -0
  318. /package/dist/{file-lock-BRW4LeL0.js → file-lock-BFQVGKm5.js} +0 -0
  319. /package/dist/{input-provenance-B0pwc6mp.js → input-provenance-sPbZYo89.js} +0 -0
  320. /package/dist/{internal-hooks-Exeq-wmx.js → internal-hooks-CWw3Hgeu.js} +0 -0
  321. /package/dist/{paths-BvY3CbW0.js → paths-CnuAkdfx.js} +0 -0
  322. /package/dist/{tailnet-CjJJHjPU.js → tailnet-CabhakZ7.js} +0 -0
  323. /package/dist/{transcript-events-DUQC5hbS.js → transcript-events-C1hdue6u.js} +0 -0
@@ -1,13 +1,15 @@
1
1
  import { O as shouldLogVerbose, n as isTruthyEnvValue, o as createSubsystemLogger } from "./entry.js";
2
- import { u as loadAuthProfileStore } from "./auth-profiles-k5IOWaG2.js";
2
+ import { u as loadAuthProfileStore } from "./auth-profiles-BF5x9Ej0.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-BtBJICHE.js";
4
4
  import { u as resolveSessionAgentIds } from "./agent-scope-Dm8IL1Ks.js";
5
- import { c as normalizeProviderId } from "./model-selection-BKFF7fDb.js";
6
- import { $ as makeBootstrapWarn, _ as resolveSessionIdToSend, c as buildCliArgs, ct as resolveHeartbeatPrompt, d as cleanupSuspendedCliProcesses, et as resolveBootstrapContextForRun, f as enqueueCliRun, g as resolvePromptInput, h as parseCliJsonl, i as resolveRunWorkspaceDir, l as buildSystemPrompt, m as parseCliJson, o as resolveAnimaDocsPath, p as normalizeCliModel, r as redactRunIdentifier, s as appendImagePathsToPrompt, t as runAnthropicDirectAgent, u as cleanupResumeProcesses, v as resolveSystemPromptUsage, y as writeCliImages } from "./anthropic-direct-runner-mh6c_WBB.js";
5
+ import { c as normalizeProviderId } from "./model-selection-DFbDH9o2.js";
6
+ import { $ as makeBootstrapWarn, _ as resolveSessionIdToSend, c as buildCliArgs, ct as resolveHeartbeatPrompt, d as cleanupSuspendedCliProcesses, et as resolveBootstrapContextForRun, f as enqueueCliRun, g as resolvePromptInput, h as parseCliJsonl, i as resolveRunWorkspaceDir, l as buildSystemPrompt, m as parseCliJson, o as resolveAnimaDocsPath, p as normalizeCliModel, r as redactRunIdentifier, s as appendImagePathsToPrompt, t as runAnthropicDirectAgent, u as cleanupResumeProcesses, v as resolveSystemPromptUsage, y as writeCliImages } from "./anthropic-direct-runner-BJosFvVm.js";
7
7
  import { _ as isFailoverErrorMessage, p as classifyFailoverReason } from "./pi-embedded-helpers-Cxzk0pra.js";
8
- import { homedir } from "node:os";
9
- import { join } from "node:path";
8
+ import { i as resolveApiKeyForProvider } from "./model-auth-Be3_KahV.js";
9
+ import os, { homedir } from "node:os";
10
+ import path, { join } from "node:path";
10
11
  import { existsSync } from "node:fs";
12
+ import fs$1 from "node:fs/promises";
11
13
  import crypto from "node:crypto";
12
14
 
13
15
  //#region src/infra/agent-events.ts
@@ -53,6 +55,37 @@ function onAgentEvent(listener) {
53
55
 
54
56
  //#endregion
55
57
  //#region src/agents/cli-backends.ts
58
+ const CLAUDE_MODEL_ALIASES = {
59
+ opus: "opus",
60
+ "opus-4.6": "opus",
61
+ "opus-4.5": "opus",
62
+ "opus-4": "opus",
63
+ "claude-opus-4-6": "opus",
64
+ "claude-opus-4-5": "opus",
65
+ "claude-opus-4": "opus",
66
+ sonnet: "sonnet",
67
+ "sonnet-4.5": "sonnet",
68
+ "sonnet-4.1": "sonnet",
69
+ "sonnet-4.0": "sonnet",
70
+ "claude-sonnet-4-5": "sonnet",
71
+ "claude-sonnet-4-1": "sonnet",
72
+ "claude-sonnet-4-0": "sonnet",
73
+ haiku: "haiku",
74
+ "haiku-3.5": "haiku",
75
+ "claude-haiku-3-5": "haiku"
76
+ };
77
+ const GEMINI_MODEL_ALIASES = {
78
+ gemini: "gemini-2.0-flash",
79
+ "gemini-pro": "gemini-1.5-pro",
80
+ "gemini-flash": "gemini-2.0-flash",
81
+ "gemini-2.0": "gemini-2.0-flash",
82
+ "gemini-2.0-flash": "gemini-2.0-flash",
83
+ "gemini-2.0-pro": "gemini-2.0-pro-exp-02-05",
84
+ "gemini-1.5": "gemini-1.5-pro",
85
+ "gemini-1.5-pro": "gemini-1.5-pro",
86
+ "gemini-1.5-flash": "gemini-1.5-flash",
87
+ "gemini-3": "gemini-3"
88
+ };
56
89
  const DEFAULT_CLAUDE_BACKEND = {
57
90
  command: "claude",
58
91
  args: [
@@ -72,25 +105,7 @@ const DEFAULT_CLAUDE_BACKEND = {
72
105
  output: "jsonl",
73
106
  input: "arg",
74
107
  modelArg: "--model",
75
- modelAliases: {
76
- opus: "opus",
77
- "opus-4.6": "opus",
78
- "opus-4.5": "opus",
79
- "opus-4": "opus",
80
- "claude-opus-4-6": "opus",
81
- "claude-opus-4-5": "opus",
82
- "claude-opus-4": "opus",
83
- sonnet: "sonnet",
84
- "sonnet-4.5": "sonnet",
85
- "sonnet-4.1": "sonnet",
86
- "sonnet-4.0": "sonnet",
87
- "claude-sonnet-4-5": "sonnet",
88
- "claude-sonnet-4-1": "sonnet",
89
- "claude-sonnet-4-0": "sonnet",
90
- haiku: "haiku",
91
- "haiku-3.5": "haiku",
92
- "claude-haiku-3-5": "haiku"
93
- },
108
+ modelAliases: CLAUDE_MODEL_ALIASES,
94
109
  sessionArg: "--session-id",
95
110
  sessionMode: "always",
96
111
  sessionIdFields: [
@@ -129,6 +144,30 @@ const DEFAULT_CODEX_BACKEND = {
129
144
  sessionMode: "existing",
130
145
  serialize: true
131
146
  };
147
+ const DEFAULT_GEMINI_BACKEND = {
148
+ command: "gemini",
149
+ args: [
150
+ "--output-format",
151
+ "json",
152
+ "--approval-mode",
153
+ "yolo"
154
+ ],
155
+ resumeArgs: [
156
+ "--output-format",
157
+ "json",
158
+ "--approval-mode",
159
+ "yolo",
160
+ "--resume",
161
+ "{sessionId}"
162
+ ],
163
+ output: "json",
164
+ input: "arg",
165
+ modelArg: "--model",
166
+ modelAliases: GEMINI_MODEL_ALIASES,
167
+ sessionMode: "existing",
168
+ clearEnv: ["GEMINI_API_KEY"],
169
+ serialize: true
170
+ };
132
171
  const CLAUDE_BACKEND_ALIASES = [
133
172
  "claude-cli",
134
173
  "anthropic",
@@ -140,8 +179,14 @@ const CODEX_BACKEND_ALIASES = [
140
179
  "openai",
141
180
  "codex"
142
181
  ];
182
+ const GEMINI_BACKEND_ALIASES = [
183
+ "gemini-cli",
184
+ "google-gemini-cli",
185
+ "gemini"
186
+ ];
143
187
  const CLAUDE_BACKEND_ALIAS_SET = new Set(CLAUDE_BACKEND_ALIASES.map((alias) => normalizeBackendKey(alias)));
144
188
  const CODEX_BACKEND_ALIAS_SET = new Set(CODEX_BACKEND_ALIASES.map((alias) => normalizeBackendKey(alias)));
189
+ const GEMINI_BACKEND_ALIAS_SET = new Set(GEMINI_BACKEND_ALIASES.map((alias) => normalizeBackendKey(alias)));
145
190
  function normalizeBackendKey(key) {
146
191
  return normalizeProviderId(key);
147
192
  }
@@ -201,6 +246,18 @@ function resolveCliBackendConfig(provider, cfg) {
201
246
  }
202
247
  };
203
248
  }
249
+ if (GEMINI_BACKEND_ALIAS_SET.has(normalized)) {
250
+ const merged = mergeBackendConfig(DEFAULT_GEMINI_BACKEND, pickBackendConfigByAliases(configured, [provider, ...GEMINI_BACKEND_ALIASES]));
251
+ const command = merged.command?.trim();
252
+ if (!command) return null;
253
+ return {
254
+ id: normalizeBackendKey("gemini-cli"),
255
+ config: {
256
+ ...merged,
257
+ command
258
+ }
259
+ };
260
+ }
204
261
  const override = pickBackendConfig(configured, normalized);
205
262
  if (!override) return null;
206
263
  const command = override.command?.trim();
@@ -341,7 +398,7 @@ function coerceToFailoverError(err, context) {
341
398
 
342
399
  //#endregion
343
400
  //#region src/agents/cli-runner.ts
344
- const log = createSubsystemLogger("agent/claude-cli");
401
+ const log$1 = createSubsystemLogger("agent/claude-cli");
345
402
  async function runCliAgent(params) {
346
403
  const started = Date.now();
347
404
  const workspaceResolution = resolveRunWorkspaceDir({
@@ -354,7 +411,7 @@ async function runCliAgent(params) {
354
411
  const redactedSessionId = redactRunIdentifier(params.sessionId);
355
412
  const redactedSessionKey = redactRunIdentifier(params.sessionKey);
356
413
  const redactedWorkspace = redactRunIdentifier(resolvedWorkspace);
357
- if (workspaceResolution.usedFallback) log.warn(`[workspace-fallback] caller=runCliAgent reason=${workspaceResolution.fallbackReason} run=${params.runId} session=${redactedSessionId} sessionKey=${redactedSessionKey} agent=${workspaceResolution.agentId} workspace=${redactedWorkspace}`);
414
+ if (workspaceResolution.usedFallback) log$1.warn(`[workspace-fallback] caller=runCliAgent reason=${workspaceResolution.fallbackReason} run=${params.runId} session=${redactedSessionId} sessionKey=${redactedSessionKey} agent=${workspaceResolution.agentId} workspace=${redactedWorkspace}`);
358
415
  const workspaceDir = resolvedWorkspace;
359
416
  const backendResolved = resolveCliBackendConfig(params.provider, params.config);
360
417
  if (!backendResolved) throw new Error(`Unknown CLI backend: ${params.provider}`);
@@ -371,7 +428,7 @@ async function runCliAgent(params) {
371
428
  sessionId: params.sessionId,
372
429
  warn: makeBootstrapWarn({
373
430
  sessionLabel,
374
- warn: (message) => log.warn(message)
431
+ warn: (message) => log$1.warn(message)
375
432
  })
376
433
  });
377
434
  const { defaultAgentId, sessionAgentId } = resolveSessionAgentIds({
@@ -444,7 +501,7 @@ async function runCliAgent(params) {
444
501
  const queueKey = backend.serialize ?? true ? backendResolved.id : `${backendResolved.id}:${params.runId}`;
445
502
  try {
446
503
  const output = await enqueueCliRun(queueKey, async () => {
447
- log.info(`cli exec: provider=${params.provider} model=${normalizedModel} promptChars=${params.prompt.length}`);
504
+ log$1.info(`cli exec: provider=${params.provider} model=${normalizedModel} promptChars=${params.prompt.length}`);
448
505
  const logOutputText = isTruthyEnvValue(process.env.ANIMA_CLAUDE_CLI_LOG_OUTPUT);
449
506
  if (logOutputText) {
450
507
  const logArgs = [];
@@ -477,7 +534,7 @@ async function runCliAgent(params) {
477
534
  const promptIndex = logArgs.indexOf(argsPrompt);
478
535
  if (promptIndex >= 0) logArgs[promptIndex] = `<prompt:${argsPrompt.length} chars>`;
479
536
  }
480
- log.info(`cli argv: ${backend.command} ${logArgs.join(" ")}`);
537
+ log$1.info(`cli argv: ${backend.command} ${logArgs.join(" ")}`);
481
538
  }
482
539
  const env = (() => {
483
540
  const next = {
@@ -510,12 +567,12 @@ async function runCliAgent(params) {
510
567
  const stdout = result.stdout.trim();
511
568
  const stderr = result.stderr.trim();
512
569
  if (logOutputText) {
513
- if (stdout) log.info(`cli stdout:\n${stdout}`);
514
- if (stderr) log.info(`cli stderr:\n${stderr}`);
570
+ if (stdout) log$1.info(`cli stdout:\n${stdout}`);
571
+ if (stderr) log$1.info(`cli stderr:\n${stderr}`);
515
572
  }
516
573
  if (shouldLogVerbose()) {
517
- if (stdout) log.debug(`cli stdout:\n${stdout}`);
518
- if (stderr) log.debug(`cli stderr:\n${stderr}`);
574
+ if (stdout) log$1.debug(`cli stdout:\n${stdout}`);
575
+ if (stderr) log$1.debug(`cli stderr:\n${stderr}`);
519
576
  }
520
577
  if (result.code !== 0) {
521
578
  const err = stderr || stdout || "CLI failed.";
@@ -568,6 +625,215 @@ async function runCliAgent(params) {
568
625
  }
569
626
  }
570
627
 
628
+ //#endregion
629
+ //#region src/agents/gemini-direct-runner.ts
630
+ /**
631
+ * Gemini Direct API Runner
632
+ *
633
+ * Makes calls directly to generativelanguage.googleapis.com without needing
634
+ * a CLI wrapper. Works with Google API keys (GEMINI_API_KEY).
635
+ *
636
+ * This runner is automatically used when a google API key is available
637
+ * and the provider is set to "google" or "gemini".
638
+ */
639
+ const log = createSubsystemLogger("agent/gemini-direct");
640
+ const DEFAULT_GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta";
641
+ const MODEL_MAP = {
642
+ gemini: "gemini-2.0-flash",
643
+ "gemini-pro": "gemini-1.5-pro",
644
+ "gemini-flash": "gemini-2.0-flash",
645
+ "gemini-2.0": "gemini-2.0-flash",
646
+ "gemini-2.0-flash": "gemini-2.0-flash",
647
+ "gemini-2.0-pro": "gemini-2.0-pro-exp-02-05",
648
+ "gemini-1.5": "gemini-1.5-pro",
649
+ "gemini-1.5-pro": "gemini-1.5-pro",
650
+ "gemini-1.5-flash": "gemini-1.5-flash",
651
+ default: "gemini-2.0-flash"
652
+ };
653
+ const HISTORY_FILE_SUFFIX = ".gemini-history.json";
654
+ async function loadSessionHistory(sessionFile) {
655
+ const histPath = sessionFile + HISTORY_FILE_SUFFIX;
656
+ try {
657
+ const raw = await fs$1.readFile(histPath, "utf8");
658
+ return JSON.parse(raw);
659
+ } catch {
660
+ return null;
661
+ }
662
+ }
663
+ async function saveSessionHistory(sessionFile, history) {
664
+ const histPath = sessionFile + HISTORY_FILE_SUFFIX;
665
+ try {
666
+ await fs$1.mkdir(path.dirname(histPath), { recursive: true });
667
+ await fs$1.writeFile(histPath, JSON.stringify(history, null, 2), "utf8");
668
+ } catch (err) {
669
+ log.warn("failed to save session history", { error: String(err) });
670
+ }
671
+ }
672
+ function resolveModel(model) {
673
+ const key = (model ?? "default").trim().toLowerCase() || "default";
674
+ return MODEL_MAP[key] ?? key;
675
+ }
676
+ function buildModelPath(model) {
677
+ return model.startsWith("models/") ? model : `models/${model}`;
678
+ }
679
+ /**
680
+ * Run an agent turn directly against generativelanguage.googleapis.com.
681
+ *
682
+ * Maintains multi-turn conversation history per session file.
683
+ * Falls back to single-turn if history is unavailable.
684
+ */
685
+ async function runGeminiDirectAgent(params) {
686
+ const started = Date.now();
687
+ const resolvedModel = resolveModel(params.model);
688
+ const modelPath = buildModelPath(resolvedModel);
689
+ log.info(`direct api exec: model=${resolvedModel} promptChars=${params.prompt.length}`);
690
+ const workspaceDir = resolveRunWorkspaceDir({
691
+ workspaceDir: params.workspaceDir,
692
+ sessionKey: params.sessionKey,
693
+ agentId: params.agentId,
694
+ config: params.config
695
+ }).workspaceDir;
696
+ const { contextFiles } = await resolveBootstrapContextForRun({
697
+ workspaceDir,
698
+ config: params.config,
699
+ sessionKey: params.sessionKey,
700
+ sessionId: params.sessionId,
701
+ warn: makeBootstrapWarn({
702
+ sessionLabel: params.sessionKey ?? params.sessionId,
703
+ warn: (msg) => log.warn(msg)
704
+ })
705
+ });
706
+ const { defaultAgentId, sessionAgentId } = resolveSessionAgentIds({
707
+ sessionKey: params.sessionKey,
708
+ config: params.config
709
+ });
710
+ const heartbeatPrompt = sessionAgentId === defaultAgentId ? resolveHeartbeatPrompt(params.config?.agents?.defaults?.heartbeat?.prompt) : void 0;
711
+ const docsPath = await resolveAnimaDocsPath({
712
+ workspaceDir,
713
+ argv1: process.argv[1],
714
+ cwd: process.cwd(),
715
+ moduleUrl: import.meta.url
716
+ });
717
+ const extraSystemPrompt = [params.extraSystemPrompt?.trim(), "Tools are disabled in this session. Do not call tools."].filter(Boolean).join("\n");
718
+ const systemPrompt = buildSystemPrompt({
719
+ workspaceDir,
720
+ config: params.config,
721
+ defaultThinkLevel: params.thinkLevel,
722
+ extraSystemPrompt,
723
+ ownerNumbers: params.ownerNumbers,
724
+ heartbeatPrompt,
725
+ docsPath: docsPath ?? void 0,
726
+ tools: [],
727
+ contextFiles,
728
+ modelDisplay: `google/${resolvedModel}`,
729
+ agentId: sessionAgentId
730
+ });
731
+ let history = await loadSessionHistory(params.sessionFile);
732
+ if (!history) history = {
733
+ sessionId: params.sessionId,
734
+ contents: [],
735
+ createdAt: started,
736
+ updatedAt: started
737
+ };
738
+ history.contents.push({
739
+ role: "user",
740
+ parts: [{ text: params.prompt }]
741
+ });
742
+ const requestBody = {
743
+ systemInstruction: { parts: [{ text: systemPrompt }] },
744
+ contents: history.contents,
745
+ generationConfig: {
746
+ maxOutputTokens: 8192,
747
+ temperature: 1
748
+ }
749
+ };
750
+ try {
751
+ const controller = new AbortController();
752
+ const timeoutHandle = setTimeout(() => controller.abort(), params.timeoutMs);
753
+ const url = `${DEFAULT_GEMINI_BASE_URL}/${modelPath}:generateContent?key=${params.apiKey}`;
754
+ const response = await fetch(url, {
755
+ method: "POST",
756
+ headers: {
757
+ "Content-Type": "application/json",
758
+ "User-Agent": `anima/5.0.1 (gemini-direct-runner; ${os.platform()})`
759
+ },
760
+ body: JSON.stringify(requestBody),
761
+ signal: controller.signal
762
+ });
763
+ clearTimeout(timeoutHandle);
764
+ if (!response.ok) {
765
+ const body = await response.text().catch(() => "");
766
+ const isAuth = response.status === 401 || response.status === 403;
767
+ const isRateLimit = response.status === 429;
768
+ const rateHint = isRateLimit ? " — rate limit hit, will retry next heartbeat." : "";
769
+ const authHint = isAuth ? " — API key may be invalid. Check GEMINI_API_KEY environment variable." : "";
770
+ log.error(`gemini api error: HTTP ${response.status}${authHint}${rateHint}`, {
771
+ status: response.status,
772
+ body: body.slice(0, 500)
773
+ });
774
+ return {
775
+ status: "failed",
776
+ meta: {
777
+ durationMs: Date.now() - started,
778
+ error: {
779
+ message: `HTTP ${response.status}: ${body.slice(0, 200)}${authHint}${rateHint}`,
780
+ kind: isAuth ? "auth" : isRateLimit ? "rate_limit" : "unknown"
781
+ }
782
+ }
783
+ };
784
+ }
785
+ const data = await response.json();
786
+ const candidate = data.candidates?.[0];
787
+ const assistantText = (candidate?.content?.parts ?? []).filter((p) => typeof p.text === "string").map((p) => p.text).join("\n");
788
+ if (assistantText && params.onPartialReply) await params.onPartialReply({ text: assistantText });
789
+ if (assistantText) {
790
+ history.contents.push({
791
+ role: "model",
792
+ parts: [{ text: assistantText }]
793
+ });
794
+ history.updatedAt = Date.now();
795
+ await saveSessionHistory(params.sessionFile, history);
796
+ }
797
+ const usage = data.usageMetadata;
798
+ const durationMs = Date.now() - started;
799
+ log.info(`gemini api complete: ${durationMs}ms`, {
800
+ inputTokens: usage?.promptTokenCount,
801
+ outputTokens: usage?.candidatesTokenCount,
802
+ finishReason: candidate?.finishReason
803
+ });
804
+ return {
805
+ status: "completed",
806
+ output: assistantText,
807
+ meta: {
808
+ durationMs,
809
+ agentMeta: {
810
+ model: resolvedModel,
811
+ provider: "google",
812
+ usage: usage ? {
813
+ input: usage.promptTokenCount ?? 0,
814
+ output: usage.candidatesTokenCount ?? 0
815
+ } : void 0
816
+ }
817
+ }
818
+ };
819
+ } catch (err) {
820
+ const isAbort = err instanceof Error && err.name === "AbortError";
821
+ const errorKind = isAbort ? "timeout" : "unknown";
822
+ const errorMsg = isAbort ? `Request timed out after ${params.timeoutMs}ms` : String(err);
823
+ log.error(`gemini api error: ${errorMsg}`, { error: String(err) });
824
+ return {
825
+ status: "failed",
826
+ meta: {
827
+ durationMs: Date.now() - started,
828
+ error: {
829
+ message: errorMsg,
830
+ kind: errorKind
831
+ }
832
+ }
833
+ };
834
+ }
835
+ }
836
+
571
837
  //#endregion
572
838
  //#region src/agents/pi-embedded.ts
573
839
  function normalizeEmbeddedProvider(provider) {
@@ -649,6 +915,57 @@ async function runEmbeddedPiAgent(...args) {
649
915
  }
650
916
  }
651
917
  }
918
+ if (provider === "google" || provider === "gemini") {
919
+ const geminiApiKey = (await resolveApiKeyForProvider({
920
+ provider: "google",
921
+ cfg: params.config
922
+ }))?.apiKey;
923
+ if (geminiApiKey) {
924
+ await emitAgentEvent(params, "lifecycle", {
925
+ phase: "start",
926
+ startedAt
927
+ });
928
+ try {
929
+ const result = await runGeminiDirectAgent({
930
+ apiKey: geminiApiKey,
931
+ sessionId: params.sessionId,
932
+ sessionKey: params.sessionKey,
933
+ agentId: params.agentId,
934
+ sessionFile: params.sessionFile,
935
+ workspaceDir: params.workspaceDir,
936
+ config: params.config,
937
+ prompt: params.prompt,
938
+ model: params.model,
939
+ thinkLevel: params.thinkLevel,
940
+ timeoutMs,
941
+ runId,
942
+ extraSystemPrompt: params.extraSystemPrompt,
943
+ ownerNumbers: params.ownerNumbers,
944
+ onPartialReply: async (payload) => {
945
+ if (!assistantStarted) {
946
+ assistantStarted = true;
947
+ await params.onAssistantMessageStart?.();
948
+ }
949
+ await params.onPartialReply?.(payload);
950
+ await emitAgentEvent(params, "assistant", { text: payload.text });
951
+ },
952
+ onAssistantMessageStart: params.onAssistantMessageStart
953
+ });
954
+ await emitAgentEvent(params, "lifecycle", {
955
+ phase: "end",
956
+ durationMs: Date.now() - startedAt,
957
+ status: result.status
958
+ });
959
+ return result;
960
+ } catch (err) {
961
+ await emitAgentEvent(params, "lifecycle", {
962
+ phase: "error",
963
+ error: String(err instanceof Error ? err.message : err)
964
+ });
965
+ throw err;
966
+ }
967
+ }
968
+ }
652
969
  const cliProvider = resolveCompatCliProvider(provider, params.config);
653
970
  if (!resolveCliBackendConfig(cliProvider, params.config)) throw new Error(`No CLI backend available for provider "${provider}" (resolved "${cliProvider}").\nEither:\n • Run: anima setup-token (set an Anthropic API key — no CLI needed)\n • Install the matching CLI and log in`);
654
971
  await emitAgentEvent(params, "lifecycle", {
@@ -1,4 +1,4 @@
1
- import { l as escapeRegExp } from "./utils-dWKYjULE.js";
1
+ import { l as escapeRegExp } from "./utils-B60lF9Wq.js";
2
2
 
3
3
  //#region src/auto-reply/tokens.ts
4
4
  const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
@@ -1,5 +1,5 @@
1
- import { t as createSubsystemLogger } from "./subsystem-WFp78xn1.js";
2
- import { _ as getImageMetadata, b as resizeToJpeg } from "./plugins-C_GedoUi.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-BP2l3SHn.js";
2
+ import { _ as getImageMetadata, b as resizeToJpeg } from "./plugins-DCXdhkeB.js";
3
3
 
4
4
  //#region src/agents/tool-images.ts
5
5
  const MAX_IMAGE_DIMENSION_PX = 2e3;
@@ -1,5 +1,5 @@
1
- import { t as createSubsystemLogger } from "./subsystem-Cn6bJV8Z.js";
2
- import { a as resizeToJpeg, n as getImageMetadata } from "./image-ops-B7tKwzpV.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-BMsbqSb4.js";
2
+ import { a as resizeToJpeg, n as getImageMetadata } from "./image-ops-C_aRXc-7.js";
3
3
 
4
4
  //#region src/agents/tool-images.ts
5
5
  const MAX_IMAGE_DIMENSION_PX = 2e3;
@@ -1,13 +1,13 @@
1
- import { l as stripAnsi, u as visibleWidth } from "./subsystem-Cn6bJV8Z.js";
2
- import { S as shortenHomeInString } from "./utils-dWKYjULE.js";
3
- import { S as resolveResponseUsageMode, b as normalizeUsageDisplay, h as listThinkingLevelLabels, p as formatThinkingLevels, r as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-iju5zIIA.js";
1
+ import { l as stripAnsi, u as visibleWidth } from "./subsystem-BMsbqSb4.js";
2
+ import { S as shortenHomeInString } from "./utils-B60lF9Wq.js";
3
+ import { S as resolveResponseUsageMode, b as normalizeUsageDisplay, h as listThinkingLevelLabels, p as formatThinkingLevels, r as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-B6wVA0hU.js";
4
4
  import { i as buildAgentMainSessionKey, l as normalizeAgentId, u as normalizeMainKey, x as parseAgentSessionKey } from "./session-key-DxcgHezu.js";
5
- import { c as resolveDefaultAgentId } from "./agent-scope-BLiq3nK_.js";
6
- import { M as VERSION, i as loadConfig } from "./config-CG7uuHNE.js";
7
- import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DuxJGOJz.js";
8
- import { n as listChatCommands, r as listChatCommandsForConfig } from "./parse-timeout-C8t_lmnL.js";
9
- import { Dt as PROTOCOL_VERSION, t as GatewayClient } from "./client-BObcTF_9.js";
10
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-BOwaQIXo.js";
5
+ import { c as resolveDefaultAgentId } from "./agent-scope-ryeVDUKe.js";
6
+ import { M as VERSION, i as loadConfig } from "./config-Dk-5Mb_G.js";
7
+ import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C5I8UgGH.js";
8
+ import { n as listChatCommands, r as listChatCommandsForConfig } from "./parse-timeout-aZGyXXFz.js";
9
+ import { Dt as PROTOCOL_VERSION, t as GatewayClient } from "./client-BT3pbXCv.js";
10
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-C3CH9PNK.js";
11
11
  import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-htT5sGY3.js";
12
12
  import { n as formatTokenCount } from "./usage-format-hd37en6b.js";
13
13
  import { r as redactToolDetail } from "./redact-Bt-krp_b.js";
@@ -2,12 +2,12 @@ import { h as visibleWidth, m as stripAnsi } from "./entry.js";
2
2
  import { i as buildAgentMainSessionKey, l as normalizeAgentId, u as normalizeMainKey, x as parseAgentSessionKey } from "./session-key-DP2WHl90.js";
3
3
  import { x as shortenHomeInString } from "./utils-D1VGbO3C.js";
4
4
  import { c as resolveDefaultAgentId } from "./agent-scope-Dm8IL1Ks.js";
5
- import { M as VERSION, i as loadConfig } from "./config-D6D_ieel.js";
5
+ import { M as VERSION, i as loadConfig } from "./config-Ofh9gKvs.js";
6
6
  import { Dt as PROTOCOL_VERSION, t as GatewayClient } from "./client-tKWDYo7c.js";
7
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-Z_GCO8CL.js";
7
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-BKsdSTVf.js";
8
8
  import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DdOBO6Qm.js";
9
9
  import { c as normalizeUsageDisplay, m as formatRawAssistantErrorForUi, r as listThinkingLevelLabels, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./pi-embedded-helpers-Cxzk0pra.js";
10
- import { n as listChatCommands, r as listChatCommandsForConfig } from "./parse-timeout-BnOIKwx8.js";
10
+ import { n as listChatCommands, r as listChatCommandsForConfig } from "./parse-timeout-C59j-ev4.js";
11
11
  import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-CEWK-aoC.js";
12
12
  import { n as formatTokenCount } from "./usage-format-CzRY73um.js";
13
13
  import { r as redactToolDetail } from "./redact-BGU5Bi0z.js";
@@ -2,30 +2,30 @@ import { N as theme, g as defaultRuntime } from "./entry.js";
2
2
  import "./utils-D1VGbO3C.js";
3
3
  import "./exec-BtBJICHE.js";
4
4
  import "./agent-scope-Dm8IL1Ks.js";
5
- import "./model-selection-BKFF7fDb.js";
5
+ import "./model-selection-DFbDH9o2.js";
6
6
  import "./skills-DtoVe1dS.js";
7
7
  import "./manifest-registry-W_OfCIRP.js";
8
- import "./config-D6D_ieel.js";
8
+ import "./config-Ofh9gKvs.js";
9
9
  import "./shell-env-2QqHvBMl.js";
10
10
  import "./client-tKWDYo7c.js";
11
- import "./call-Z_GCO8CL.js";
11
+ import "./call-BKsdSTVf.js";
12
12
  import "./message-channel-DdOBO6Qm.js";
13
- import "./sessions-B7ikzhI_.js";
13
+ import "./sessions-CAiEkTKb.js";
14
14
  import "./pi-embedded-helpers-Cxzk0pra.js";
15
- import "./sandbox-CiwAPzO7.js";
15
+ import "./sandbox-DhcoWMaN.js";
16
16
  import "./chrome-B2-33FWf.js";
17
17
  import "./auth-DuBZWd74.js";
18
- import "./server-context-B78_sSOW.js";
19
- import "./routes-XhTPYecR.js";
18
+ import "./server-context-C-usQ5Np.js";
19
+ import "./routes-cdfVFYMI.js";
20
20
  import "./image-ops-BVtm-rU-.js";
21
21
  import "./ports-COy7Yg_k.js";
22
22
  import "./plugins-CFBEoAN4.js";
23
23
  import "./paths-B_RPJLsn.js";
24
24
  import "./tool-images-y_Ribdl6.js";
25
- import { t as parseTimeoutMs } from "./parse-timeout-BnOIKwx8.js";
25
+ import { t as parseTimeoutMs } from "./parse-timeout-C59j-ev4.js";
26
26
  import "./redact-BGU5Bi0z.js";
27
27
  import { t as formatDocsLink } from "./links-BEV1YSPz.js";
28
- import { t as runTui } from "./tui--eIVX_W0.js";
28
+ import { t as runTui } from "./tui-YsmTyq58.js";
29
29
 
30
30
  //#region src/cli/tui-cli.ts
31
31
  function registerTuiCli(program) {
@@ -1,34 +1,34 @@
1
1
  import "./paths-zhVksOvm.js";
2
- import { V as theme, d as defaultRuntime } from "./subsystem-Cn6bJV8Z.js";
3
- import "./utils-dWKYjULE.js";
4
- import "./pi-embedded-helpers-iju5zIIA.js";
5
- import "./exec-DbnX_71w.js";
6
- import "./agent-scope-BLiq3nK_.js";
7
- import "./model-selection-C2dAUmK_.js";
8
- import "./config-CG7uuHNE.js";
2
+ import { V as theme, d as defaultRuntime } from "./subsystem-BMsbqSb4.js";
3
+ import "./utils-B60lF9Wq.js";
4
+ import "./pi-embedded-helpers-B6wVA0hU.js";
5
+ import "./exec-Bo7Vwe77.js";
6
+ import "./agent-scope-ryeVDUKe.js";
7
+ import "./model-selection-DRIxw3do.js";
8
+ import "./config-Dk-5Mb_G.js";
9
9
  import "./boolean-Wzu0-e0P.js";
10
- import "./env-T3-raV4i.js";
11
- import "./shell-env-JzaPTLKV.js";
12
- import "./manifest-registry-BiGCvMJ8.js";
13
- import "./sessions-kJgmpWtv.js";
14
- import "./image-ops-B7tKwzpV.js";
15
- import "./sandbox-BwUo1b0I.js";
16
- import "./chrome-C3-muxXb.js";
17
- import "./auth-Cs_c5TKt.js";
18
- import "./server-context-efO1YgXk.js";
19
- import "./skills-ppB3qrZU.js";
20
- import "./routes-C2EyUA9x.js";
21
- import "./ports-DOiSDgNp.js";
22
- import "./message-channel-DuxJGOJz.js";
23
- import "./plugins-BmYfBGLM.js";
24
- import "./paths-BvY3CbW0.js";
25
- import "./tool-images-BehEzEZF.js";
26
- import { t as parseTimeoutMs } from "./parse-timeout-C8t_lmnL.js";
27
- import "./client-BObcTF_9.js";
28
- import "./call-BOwaQIXo.js";
10
+ import "./env-CLiKFfXU.js";
11
+ import "./shell-env-BZ_fIIlm.js";
12
+ import "./manifest-registry-BJat2nhC.js";
13
+ import "./sessions-BduC6sZj.js";
14
+ import "./image-ops-C_aRXc-7.js";
15
+ import "./sandbox-B4-dXpqZ.js";
16
+ import "./chrome-CLhrEjgx.js";
17
+ import "./auth-DQfFqQBz.js";
18
+ import "./server-context-r7wPe4ZD.js";
19
+ import "./skills-wS8aRGeO.js";
20
+ import "./routes-CYHrkIjB.js";
21
+ import "./ports-CWvYU8j6.js";
22
+ import "./message-channel-C5I8UgGH.js";
23
+ import "./plugins-NbldDVJs.js";
24
+ import "./paths-CnuAkdfx.js";
25
+ import "./tool-images-RiPaL7wQ.js";
26
+ import { t as parseTimeoutMs } from "./parse-timeout-aZGyXXFz.js";
27
+ import "./client-BT3pbXCv.js";
28
+ import "./call-C3CH9PNK.js";
29
29
  import "./redact-Bt-krp_b.js";
30
- import { t as formatDocsLink } from "./links-CziCxopc.js";
31
- import { t as runTui } from "./tui-PCTDV7Ct.js";
30
+ import { t as formatDocsLink } from "./links-C4Hwnnc9.js";
31
+ import { t as runTui } from "./tui-NlR4LFBm.js";
32
32
 
33
33
  //#region src/cli/tui-cli.ts
34
34
  function registerTuiCli(program) {
@@ -1,6 +1,6 @@
1
- import { b as resolveUserPath } from "./utils-dWKYjULE.js";
2
- import { n as discoverAnimaPlugins, r as loadPluginManifest } from "./manifest-registry-BiGCvMJ8.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BxZFjTKY.js";
1
+ import { b as resolveUserPath } from "./utils-B60lF9Wq.js";
2
+ import { n as discoverAnimaPlugins, r as loadPluginManifest } from "./manifest-registry-BJat2nhC.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-DW-ErO4y.js";
4
4
  import fs from "node:fs/promises";
5
5
 
6
6
  //#region src/plugins/update.ts