@mmmbuto/gemini-cli-termux 0.30.3-termux → 0.30.5-termux

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 (400) hide show
  1. package/README.md +42 -193
  2. package/bundle/docs/cli/settings.md +8 -9
  3. package/bundle/docs/extensions/reference.md +14 -38
  4. package/bundle/docs/hooks/reference.md +0 -8
  5. package/bundle/docs/reference/configuration.md +0 -8
  6. package/bundle/gemini.js +10730 -11704
  7. package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
  8. package/bundle/package.json +2 -1
  9. package/package.json +67 -5
  10. package/packages/cli/dist/index.js +0 -0
  11. package/packages/cli/dist/package.json +2 -2
  12. package/packages/cli/dist/src/commands/extensions/examples/custom-commands/gemini-extension.json +2 -2
  13. package/packages/cli/dist/src/commands/extensions/examples/exclude-tools/gemini-extension.json +3 -3
  14. package/packages/cli/dist/src/commands/extensions/examples/hooks/gemini-extension.json +2 -2
  15. package/packages/cli/dist/src/commands/extensions/examples/hooks/hooks/hooks.json +11 -11
  16. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js +1 -1
  17. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +8 -8
  18. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/package.json +9 -9
  19. package/packages/cli/dist/src/commands/extensions/examples/skills/gemini-extension.json +2 -2
  20. package/packages/cli/dist/src/commands/extensions/examples/themes-example/README.md +8 -5
  21. package/packages/cli/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +27 -27
  22. package/packages/cli/dist/src/config/config.js +4 -65
  23. package/packages/cli/dist/src/config/config.js.map +1 -1
  24. package/packages/cli/dist/src/config/settingsSchema.d.ts +1 -235
  25. package/packages/cli/dist/src/config/settingsSchema.js +1 -235
  26. package/packages/cli/dist/src/config/settingsSchema.js.map +1 -1
  27. package/packages/cli/dist/src/gemini.js +0 -2
  28. package/packages/cli/dist/src/gemini.js.map +1 -1
  29. package/packages/cli/dist/src/generated/git-commit.d.ts +2 -2
  30. package/packages/cli/dist/src/generated/git-commit.js +2 -2
  31. package/packages/cli/dist/src/patches/empty-module.d.ts +2 -0
  32. package/packages/cli/dist/src/patches/empty-module.js +2 -0
  33. package/packages/cli/dist/src/patches/empty-module.js.map +1 -0
  34. package/packages/cli/dist/src/services/McpPromptLoader.js +3 -6
  35. package/packages/cli/dist/src/services/McpPromptLoader.js.map +1 -1
  36. package/packages/cli/dist/src/ui/components/AgentConfigDialog.js +19 -5
  37. package/packages/cli/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
  38. package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js +41 -19
  39. package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
  40. package/packages/cli/dist/src/ui/components/DialogManager.d.ts +1 -1
  41. package/packages/cli/dist/src/ui/components/DialogManager.js +34 -7
  42. package/packages/cli/dist/src/ui/components/DialogManager.js.map +1 -1
  43. package/packages/cli/dist/src/ui/components/InputPrompt.d.ts +9 -0
  44. package/packages/cli/dist/src/ui/components/InputPrompt.js +350 -125
  45. package/packages/cli/dist/src/ui/components/InputPrompt.js.map +1 -1
  46. package/packages/cli/dist/src/ui/components/InputPrompt.test.js +788 -35
  47. package/packages/cli/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  48. package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js +2 -2
  49. package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
  50. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js +4 -77
  51. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  52. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -51
  53. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  54. package/packages/cli/dist/src/ui/components/messages/ToolMessage.js +2 -2
  55. package/packages/cli/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  56. package/packages/cli/dist/src/ui/components/messages/ToolShared.d.ts +0 -1
  57. package/packages/cli/dist/src/ui/components/messages/ToolShared.js +2 -2
  58. package/packages/cli/dist/src/ui/components/messages/ToolShared.js.map +1 -1
  59. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js +4 -1
  60. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
  61. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js +139 -40
  62. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
  63. package/packages/cli/dist/src/ui/components/shared/TextInput.js +2 -1
  64. package/packages/cli/dist/src/ui/components/shared/TextInput.js.map +1 -1
  65. package/packages/cli/dist/src/ui/hooks/toolMapping.js +0 -1
  66. package/packages/cli/dist/src/ui/hooks/toolMapping.js.map +1 -1
  67. package/packages/cli/dist/src/ui/hooks/toolMapping.test.js +0 -13
  68. package/packages/cli/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
  69. package/packages/cli/dist/src/ui/hooks/useToolScheduler.js +2 -18
  70. package/packages/cli/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
  71. package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js +0 -44
  72. package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  73. package/packages/cli/dist/src/ui/keyMatchers.test.js.map +1 -1
  74. package/packages/cli/dist/src/ui/types.d.ts +0 -1
  75. package/packages/cli/dist/src/ui/types.js.map +1 -1
  76. package/packages/cli/dist/src/ui/utils/commandUtils.js +4 -1
  77. package/packages/cli/dist/src/ui/utils/commandUtils.js.map +1 -1
  78. package/packages/cli/dist/src/utils/activityLogger.js +23 -94
  79. package/packages/cli/dist/src/utils/activityLogger.js.map +1 -1
  80. package/packages/cli/dist/src/utils/handleAutoUpdate.d.ts +1 -1
  81. package/packages/cli/dist/src/utils/handleAutoUpdate.js +1 -1
  82. package/packages/cli/dist/src/utils/handleAutoUpdate.js.map +1 -1
  83. package/packages/cli/dist/src/utils/handleAutoUpdate.test.js +11 -11
  84. package/packages/cli/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  85. package/{bundle/sandbox-macos-restrictive-closed.sb → packages/cli/dist/src/utils/sandbox-macos-strict-open.sb} +42 -4
  86. package/packages/cli/dist/src/utils/{sandbox-macos-restrictive-closed.sb → sandbox-macos-strict-proxied.sb} +44 -4
  87. package/packages/cli/dist/tsconfig.tsbuildinfo +1 -1
  88. package/packages/core/dist/docs/admin/enterprise-controls.md +115 -0
  89. package/packages/core/dist/docs/changelogs/index.md +57 -1
  90. package/packages/core/dist/docs/changelogs/latest.md +357 -314
  91. package/packages/core/dist/docs/changelogs/preview.md +288 -411
  92. package/packages/core/dist/docs/cli/checkpointing.md +2 -3
  93. package/packages/core/dist/docs/cli/cli-reference.md +42 -28
  94. package/packages/core/dist/docs/cli/custom-commands.md +3 -0
  95. package/packages/core/dist/docs/cli/enterprise.md +28 -8
  96. package/packages/core/dist/docs/cli/gemini-md.md +21 -13
  97. package/packages/core/dist/docs/cli/headless.md +34 -372
  98. package/packages/core/dist/docs/cli/model.md +1 -1
  99. package/packages/core/dist/docs/cli/plan-mode.md +245 -0
  100. package/packages/core/dist/docs/cli/rewind.md +11 -11
  101. package/packages/core/dist/docs/cli/sandbox.md +6 -5
  102. package/packages/core/dist/docs/cli/session-management.md +61 -44
  103. package/packages/core/dist/docs/cli/settings.md +64 -49
  104. package/packages/core/dist/docs/cli/skills.md +29 -7
  105. package/packages/core/dist/docs/cli/telemetry.md +41 -5
  106. package/packages/core/dist/docs/cli/themes.md +88 -54
  107. package/packages/core/dist/docs/cli/trusted-folders.md +31 -0
  108. package/packages/core/dist/docs/cli/tutorials/automation.md +187 -0
  109. package/packages/core/dist/docs/cli/tutorials/file-management.md +142 -0
  110. package/packages/core/dist/docs/cli/tutorials/mcp-setup.md +105 -0
  111. package/packages/core/dist/docs/cli/tutorials/memory-management.md +126 -0
  112. package/packages/core/dist/docs/cli/tutorials/session-management.md +105 -0
  113. package/packages/core/dist/docs/cli/tutorials/shell-commands.md +107 -0
  114. package/packages/core/dist/docs/cli/tutorials/skills-getting-started.md +36 -31
  115. package/packages/core/dist/docs/cli/tutorials/task-planning.md +93 -0
  116. package/packages/core/dist/docs/cli/tutorials/web-tools.md +78 -0
  117. package/packages/core/dist/docs/core/index.md +7 -7
  118. package/packages/core/dist/docs/core/subagents.md +40 -40
  119. package/packages/core/dist/docs/extensions/best-practices.md +102 -53
  120. package/packages/core/dist/docs/extensions/index.md +37 -21
  121. package/packages/core/dist/docs/extensions/reference.md +148 -219
  122. package/packages/core/dist/docs/extensions/releasing.md +93 -122
  123. package/packages/core/dist/docs/extensions/writing-extensions.md +87 -76
  124. package/packages/core/dist/docs/get-started/authentication.md +4 -4
  125. package/packages/core/dist/docs/get-started/examples.md +39 -119
  126. package/packages/core/dist/docs/get-started/gemini-3.md +17 -3
  127. package/packages/core/dist/docs/get-started/index.md +16 -5
  128. package/packages/core/dist/docs/get-started/installation.md +110 -77
  129. package/packages/core/dist/docs/hooks/best-practices.md +1 -1
  130. package/packages/core/dist/docs/hooks/reference.md +2 -2
  131. package/packages/core/dist/docs/index.md +142 -149
  132. package/packages/core/dist/docs/redirects.json +19 -0
  133. package/packages/core/dist/docs/reference/commands.md +523 -0
  134. package/{bundle/docs/get-started → packages/core/dist/docs/reference}/configuration.md +180 -71
  135. package/packages/core/dist/docs/{cli → reference}/keyboard-shortcuts.md +49 -35
  136. package/packages/core/dist/docs/{core → reference}/policy-engine.md +76 -32
  137. package/packages/core/dist/docs/releases.md +2 -2
  138. package/{bundle/docs → packages/core/dist/docs/resources}/faq.md +1 -1
  139. package/packages/core/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
  140. package/{bundle/docs → packages/core/dist/docs/resources}/tos-privacy.md +3 -3
  141. package/packages/core/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
  142. package/packages/core/dist/docs/sidebar.json +194 -113
  143. package/packages/core/dist/docs/tools/activate-skill.md +43 -0
  144. package/packages/core/dist/docs/tools/ask-user.md +95 -0
  145. package/packages/core/dist/docs/tools/file-system.md +55 -143
  146. package/packages/core/dist/docs/tools/index.md +97 -93
  147. package/packages/core/dist/docs/tools/internal-docs.md +46 -0
  148. package/packages/core/dist/docs/tools/mcp-server.md +65 -16
  149. package/packages/core/dist/docs/tools/memory.md +21 -40
  150. package/packages/core/dist/docs/tools/planning.md +57 -0
  151. package/packages/core/dist/docs/tools/shell.md +44 -88
  152. package/packages/core/dist/docs/tools/todos.md +22 -44
  153. package/packages/core/dist/docs/tools/web-fetch.md +22 -46
  154. package/packages/core/dist/docs/tools/web-search.md +19 -29
  155. package/packages/core/dist/src/code_assist/types.d.ts +14 -14
  156. package/packages/core/dist/src/config/config.d.ts +1 -13
  157. package/packages/core/dist/src/config/config.js +6 -39
  158. package/packages/core/dist/src/config/config.js.map +1 -1
  159. package/packages/core/dist/src/confirmation-bus/types.d.ts +0 -3
  160. package/packages/core/dist/src/confirmation-bus/types.js.map +1 -1
  161. package/packages/core/dist/src/core/coreToolHookTriggers.d.ts +1 -1
  162. package/packages/core/dist/src/core/coreToolHookTriggers.js +3 -8
  163. package/packages/core/dist/src/core/coreToolHookTriggers.js.map +1 -1
  164. package/packages/core/dist/src/generated/git-commit.d.ts +2 -2
  165. package/packages/core/dist/src/generated/git-commit.js +2 -2
  166. package/packages/core/dist/src/hooks/hookEventHandler.d.ts +2 -2
  167. package/packages/core/dist/src/hooks/hookEventHandler.js +2 -8
  168. package/packages/core/dist/src/hooks/hookEventHandler.js.map +1 -1
  169. package/packages/core/dist/src/hooks/hookSystem.d.ts +2 -2
  170. package/packages/core/dist/src/hooks/hookSystem.js +4 -4
  171. package/packages/core/dist/src/hooks/hookSystem.js.map +1 -1
  172. package/packages/core/dist/src/hooks/types.d.ts +0 -18
  173. package/packages/core/dist/src/hooks/types.js +0 -17
  174. package/packages/core/dist/src/hooks/types.js.map +1 -1
  175. package/packages/core/dist/src/ide/ide-client.js +1 -1
  176. package/packages/core/dist/src/ide/ide-client.js.map +1 -1
  177. package/packages/core/dist/src/ide/types.d.ts +8 -8
  178. package/packages/core/dist/src/index.d.ts +2 -0
  179. package/packages/core/dist/src/index.js +2 -0
  180. package/packages/core/dist/src/index.js.map +1 -1
  181. package/packages/core/dist/src/policy/policies/plan.toml +29 -43
  182. package/packages/core/dist/src/policy/policies/read-only.toml +12 -11
  183. package/packages/core/dist/src/policy/policies/write.toml +11 -10
  184. package/packages/core/dist/src/policy/policies/yolo.toml +24 -12
  185. package/packages/core/dist/src/policy/policy-engine.js +1 -5
  186. package/packages/core/dist/src/policy/policy-engine.js.map +1 -1
  187. package/packages/core/dist/src/policy/types.d.ts +1 -2
  188. package/packages/core/dist/src/policy/types.js +0 -1
  189. package/packages/core/dist/src/policy/types.js.map +1 -1
  190. package/packages/core/dist/src/safety/context-builder.d.ts +3 -3
  191. package/packages/core/dist/src/safety/context-builder.js +4 -60
  192. package/packages/core/dist/src/safety/context-builder.js.map +1 -1
  193. package/packages/core/dist/src/safety/context-builder.test.js +18 -98
  194. package/packages/core/dist/src/safety/context-builder.test.js.map +1 -1
  195. package/packages/core/dist/src/safety/protocol.d.ts +0 -4
  196. package/packages/core/dist/src/safety/registry.d.ts +1 -2
  197. package/packages/core/dist/src/safety/registry.js +4 -14
  198. package/packages/core/dist/src/safety/registry.js.map +1 -1
  199. package/packages/core/dist/src/safety/registry.test.js +2 -5
  200. package/packages/core/dist/src/safety/registry.test.js.map +1 -1
  201. package/packages/core/dist/src/scheduler/scheduler.d.ts +1 -1
  202. package/packages/core/dist/src/scheduler/scheduler.js +4 -49
  203. package/packages/core/dist/src/scheduler/scheduler.js.map +1 -1
  204. package/packages/core/dist/src/scheduler/scheduler.test.js +0 -91
  205. package/packages/core/dist/src/scheduler/scheduler.test.js.map +1 -1
  206. package/packages/core/dist/src/scheduler/state-manager.d.ts +0 -6
  207. package/packages/core/dist/src/scheduler/state-manager.js +0 -12
  208. package/packages/core/dist/src/scheduler/state-manager.js.map +1 -1
  209. package/packages/core/dist/src/scheduler/tool-executor.js +7 -9
  210. package/packages/core/dist/src/scheduler/tool-executor.js.map +1 -1
  211. package/packages/core/dist/src/scheduler/tool-executor.test.js +1 -1
  212. package/packages/core/dist/src/scheduler/tool-executor.test.js.map +1 -1
  213. package/packages/core/dist/src/scheduler/types.d.ts +0 -13
  214. package/packages/core/dist/src/services/shellExecutionService.d.ts +1 -1
  215. package/packages/core/dist/src/services/shellExecutionService.js +7 -8
  216. package/packages/core/dist/src/services/shellExecutionService.js.map +1 -1
  217. package/packages/core/dist/src/services/shellExecutionService.test.js +5 -5
  218. package/packages/core/dist/src/services/shellExecutionService.test.js.map +1 -1
  219. package/packages/core/dist/src/services/test-data/resolved-aliases-retry.golden.json +251 -251
  220. package/packages/core/dist/src/services/test-data/resolved-aliases.golden.json +251 -251
  221. package/packages/core/dist/src/skills/builtin/skill-creator/scripts/init_skill.cjs +5 -1
  222. package/packages/core/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +5 -1
  223. package/packages/core/dist/src/skills/builtin/skill-creator/scripts/validate_skill.cjs +5 -1
  224. package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -3
  225. package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -2
  226. package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  227. package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -9
  228. package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js +1 -19
  229. package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  230. package/packages/core/dist/src/telemetry/index.d.ts +1 -2
  231. package/packages/core/dist/src/telemetry/index.js +1 -2
  232. package/packages/core/dist/src/telemetry/index.js.map +1 -1
  233. package/packages/core/dist/src/telemetry/loggers.js +0 -4
  234. package/packages/core/dist/src/telemetry/loggers.js.map +1 -1
  235. package/packages/core/dist/src/telemetry/trace.js.map +1 -1
  236. package/packages/core/dist/src/telemetry/types.d.ts +0 -26
  237. package/packages/core/dist/src/telemetry/types.js +2 -76
  238. package/packages/core/dist/src/telemetry/types.js.map +1 -1
  239. package/packages/core/dist/src/tools/diffOptions.d.ts +2 -2
  240. package/packages/core/dist/src/tools/diffOptions.js.map +1 -1
  241. package/packages/core/dist/src/tools/mcp-client.test.js.map +1 -1
  242. package/packages/core/dist/src/tools/mcp-tool.d.ts +1 -3
  243. package/packages/core/dist/src/tools/mcp-tool.js +2 -9
  244. package/packages/core/dist/src/tools/mcp-tool.js.map +1 -1
  245. package/packages/core/dist/src/tools/memoryTool.d.ts +0 -10
  246. package/packages/core/dist/src/tools/memoryTool.js +30 -25
  247. package/packages/core/dist/src/tools/memoryTool.js.map +1 -1
  248. package/packages/core/dist/src/tools/tool-names.d.ts +6 -0
  249. package/packages/core/dist/src/tools/tool-names.js +16 -1
  250. package/packages/core/dist/src/tools/tool-names.js.map +1 -1
  251. package/packages/core/dist/src/tools/tools.d.ts +0 -11
  252. package/packages/core/dist/src/tools/tools.js.map +1 -1
  253. package/packages/core/dist/src/utils/getPty.d.ts +14 -1
  254. package/packages/core/dist/src/utils/getPty.js +67 -2
  255. package/packages/core/dist/src/utils/getPty.js.map +1 -1
  256. package/packages/core/dist/src/utils/memoryDiscovery.d.ts +11 -3
  257. package/packages/core/dist/src/utils/memoryDiscovery.js +56 -21
  258. package/packages/core/dist/src/utils/memoryDiscovery.js.map +1 -1
  259. package/packages/core/dist/src/utils/secure-browser-launcher.js +40 -29
  260. package/packages/core/dist/src/utils/secure-browser-launcher.js.map +1 -1
  261. package/packages/core/dist/src/utils/textUtils.d.ts +0 -9
  262. package/packages/core/dist/src/utils/textUtils.js +0 -15
  263. package/packages/core/dist/src/utils/textUtils.js.map +1 -1
  264. package/packages/core/dist/src/utils/textUtils.test.js +1 -42
  265. package/packages/core/dist/src/utils/textUtils.test.js.map +1 -1
  266. package/packages/core/dist/tsconfig.tsbuildinfo +1 -1
  267. package/packages/test-utils/dist/tsconfig.tsbuildinfo +1 -1
  268. package/bundle/docs/ROADMAP.md +0 -113
  269. package/bundle/docs/TERMUX.md +0 -95
  270. package/bundle/docs/architecture.md +0 -80
  271. package/bundle/docs/assets/hero.png +0 -0
  272. package/bundle/docs/cli/authentication.md +0 -3
  273. package/bundle/docs/cli/commands.md +0 -430
  274. package/bundle/docs/cli/context-memory.md +0 -69
  275. package/bundle/docs/cli/index.md +0 -65
  276. package/bundle/docs/cli/keyboard-shortcuts.md +0 -140
  277. package/bundle/docs/cli/tutorials.md +0 -87
  278. package/bundle/docs/core/policy-engine.md +0 -305
  279. package/bundle/docs/get-started/configuration-v1.md +0 -888
  280. package/bundle/docs/patches/README.md +0 -74
  281. package/bundle/docs/patches/mcp-sdk-typings-shim.md +0 -27
  282. package/bundle/docs/quota-and-pricing.md +0 -158
  283. package/bundle/docs/termux-api/COMMANDS.md +0 -592
  284. package/bundle/docs/termux-api/DISCOVERY_SETUP.md +0 -670
  285. package/bundle/docs/termux-api/EXECUTION_PLAN.md +0 -532
  286. package/bundle/docs/termux-api/MERGE_STRATEGY.md +0 -365
  287. package/bundle/docs/termux-api/PATCHES.md +0 -480
  288. package/bundle/docs/termux-api/README.md +0 -416
  289. package/bundle/docs/troubleshooting.md +0 -173
  290. package/bundle/policies/conseca.toml +0 -6
  291. package/bundle/sandbox-macos-permissive-closed.sb +0 -32
  292. package/packages/cli/README.md +0 -173
  293. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.d.ts +0 -6
  294. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js.map +0 -1
  295. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.d.ts +0 -6
  296. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js +0 -111
  297. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +0 -1
  298. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.d.ts +0 -6
  299. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js +0 -93
  300. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js.map +0 -1
  301. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.d.ts +0 -42
  302. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js +0 -105
  303. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js.map +0 -1
  304. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +0 -6
  305. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js +0 -58
  306. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js.map +0 -1
  307. package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.d.ts +0 -6
  308. package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js +0 -7
  309. package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js.map +0 -1
  310. package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.d.ts +0 -9
  311. package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js +0 -59
  312. package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js.map +0 -1
  313. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.d.ts +0 -30
  314. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js +0 -149
  315. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js.map +0 -1
  316. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.d.ts +0 -6
  317. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js +0 -376
  318. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +0 -1
  319. package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.d.ts +0 -6
  320. package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js +0 -45
  321. package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js.map +0 -1
  322. package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.d.ts +0 -6
  323. package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js +0 -21
  324. package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js.map +0 -1
  325. package/packages/cli/dist/src/ui/utils/terminalUtils.test.d.ts +0 -6
  326. package/packages/cli/dist/src/ui/utils/terminalUtils.test.js +0 -40
  327. package/packages/cli/dist/src/ui/utils/terminalUtils.test.js.map +0 -1
  328. package/packages/cli/dist/src/utils/checks.d.ts +0 -19
  329. package/packages/cli/dist/src/utils/checks.js +0 -24
  330. package/packages/cli/dist/src/utils/checks.js.map +0 -1
  331. package/packages/cli/dist/src/utils/checks.test.d.ts +0 -6
  332. package/packages/cli/dist/src/utils/checks.test.js +0 -29
  333. package/packages/cli/dist/src/utils/checks.test.js.map +0 -1
  334. package/packages/cli/dist/src/utils/sandbox-macos-permissive-closed.sb +0 -32
  335. package/packages/cli/index.js +0 -2
  336. package/packages/core/dist/docs/TERMUX.md +0 -95
  337. package/packages/core/dist/docs/architecture.md +0 -80
  338. package/packages/core/dist/docs/assets/hero.png +0 -0
  339. package/packages/core/dist/docs/cli/authentication.md +0 -3
  340. package/packages/core/dist/docs/cli/commands.md +0 -430
  341. package/packages/core/dist/docs/cli/context-memory.md +0 -69
  342. package/packages/core/dist/docs/cli/index.md +0 -65
  343. package/packages/core/dist/docs/cli/tutorials.md +0 -87
  344. package/packages/core/dist/docs/cli/uninstall.md +0 -65
  345. package/packages/core/dist/docs/core/memport.md +0 -246
  346. package/packages/core/dist/docs/core/tools-api.md +0 -131
  347. package/packages/core/dist/docs/faq.md +0 -154
  348. package/packages/core/dist/docs/get-started/configuration-v1.md +0 -888
  349. package/packages/core/dist/docs/get-started/configuration.md +0 -1585
  350. package/packages/core/dist/docs/patches/README.md +0 -74
  351. package/packages/core/dist/docs/patches/mcp-sdk-typings-shim.md +0 -27
  352. package/packages/core/dist/docs/termux-api/COMMANDS.md +0 -592
  353. package/packages/core/dist/docs/termux-api/DISCOVERY_SETUP.md +0 -670
  354. package/packages/core/dist/docs/termux-api/EXECUTION_PLAN.md +0 -532
  355. package/packages/core/dist/docs/termux-api/MERGE_STRATEGY.md +0 -365
  356. package/packages/core/dist/docs/termux-api/PATCHES.md +0 -480
  357. package/packages/core/dist/docs/termux-api/README.md +0 -416
  358. package/packages/core/dist/docs/tos-privacy.md +0 -96
  359. package/packages/core/dist/src/safety/conseca/conseca.d.ts +0 -31
  360. package/packages/core/dist/src/safety/conseca/conseca.js +0 -105
  361. package/packages/core/dist/src/safety/conseca/conseca.js.map +0 -1
  362. package/packages/core/dist/src/safety/conseca/conseca.test.d.ts +0 -6
  363. package/packages/core/dist/src/safety/conseca/conseca.test.js +0 -226
  364. package/packages/core/dist/src/safety/conseca/conseca.test.js.map +0 -1
  365. package/packages/core/dist/src/safety/conseca/integration.test.d.ts +0 -6
  366. package/packages/core/dist/src/safety/conseca/integration.test.js +0 -19
  367. package/packages/core/dist/src/safety/conseca/integration.test.js.map +0 -1
  368. package/packages/core/dist/src/safety/conseca/policy-enforcer.d.ts +0 -13
  369. package/packages/core/dist/src/safety/conseca/policy-enforcer.js +0 -135
  370. package/packages/core/dist/src/safety/conseca/policy-enforcer.js.map +0 -1
  371. package/packages/core/dist/src/safety/conseca/policy-enforcer.test.d.ts +0 -6
  372. package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js +0 -141
  373. package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js.map +0 -1
  374. package/packages/core/dist/src/safety/conseca/policy-generator.d.ts +0 -15
  375. package/packages/core/dist/src/safety/conseca/policy-generator.js +0 -144
  376. package/packages/core/dist/src/safety/conseca/policy-generator.js.map +0 -1
  377. package/packages/core/dist/src/safety/conseca/policy-generator.test.d.ts +0 -6
  378. package/packages/core/dist/src/safety/conseca/policy-generator.test.js +0 -84
  379. package/packages/core/dist/src/safety/conseca/policy-generator.test.js.map +0 -1
  380. package/packages/core/dist/src/safety/conseca/types.d.ts +0 -15
  381. package/packages/core/dist/src/safety/conseca/types.js +0 -7
  382. package/packages/core/dist/src/safety/conseca/types.js.map +0 -1
  383. package/packages/core/dist/src/telemetry/conseca-logger.d.ts +0 -9
  384. package/packages/core/dist/src/telemetry/conseca-logger.js +0 -91
  385. package/packages/core/dist/src/telemetry/conseca-logger.js.map +0 -1
  386. package/packages/core/dist/src/telemetry/conseca-logger.test.d.ts +0 -6
  387. package/packages/core/dist/src/telemetry/conseca-logger.test.js +0 -89
  388. package/packages/core/dist/src/telemetry/conseca-logger.test.js.map +0 -1
  389. package/packages/core/dist/src/tools/mcpImportTool.d.ts +0 -31
  390. package/packages/core/dist/src/tools/mcpImportTool.js +0 -143
  391. package/packages/core/dist/src/tools/mcpImportTool.js.map +0 -1
  392. package/packages/core/dist/src/utils/contextMemory.d.ts +0 -67
  393. package/packages/core/dist/src/utils/contextMemory.js +0 -493
  394. package/packages/core/dist/src/utils/contextMemory.js.map +0 -1
  395. package/packages/core/dist/src/utils/contextMemory.test.d.ts +0 -6
  396. package/packages/core/dist/src/utils/contextMemory.test.js +0 -183
  397. package/packages/core/dist/src/utils/contextMemory.test.js.map +0 -1
  398. /package/{bundle/docs/core → packages/core/dist/docs/reference}/memport.md +0 -0
  399. /package/{bundle/docs/core → packages/core/dist/docs/reference}/tools-api.md +0 -0
  400. /package/{bundle/docs/cli → packages/core/dist/docs/resources}/uninstall.md +0 -0
@@ -1,670 +0,0 @@
1
- # Tool Discovery Setup for Termux-API
2
-
3
- **Project**: gemini-cli-termux **Author**: DioNanos **Date**: 2025-12-17
4
-
5
- ---
6
-
7
- ## Overview
8
-
9
- This guide explains how to set up Tool Discovery to expose Termux-API commands
10
- to Gemini CLI without modifying the core code.
11
-
12
- ## Prerequisites
13
-
14
- 1. Termux with termux-api package installed:
15
-
16
- ```bash
17
- pkg install termux-api
18
- ```
19
-
20
- 2. Termux:API App installed from F-Droid
21
-
22
- 3. Working Gemini CLI:
23
- ```bash
24
- gemini --version
25
- ```
26
-
27
- ---
28
-
29
- ## Quick Setup
30
-
31
- ### 1. Create config directory
32
-
33
- ```bash
34
- mkdir -p ~/.config/gemini/termux-tools
35
- ```
36
-
37
- ### 2. Create discovery script
38
-
39
- ```bash
40
- cat > ~/.config/gemini/termux-tools/discovery.sh << 'SCRIPT'
41
- #!/data/data/com.termux/files/usr/bin/bash
42
- # Termux-API Tool Discovery for Gemini CLI
43
- # Returns FunctionDeclarations for Termux commands
44
-
45
- cat << 'EOF'
46
- [
47
- {
48
- "name": "termux_battery_status",
49
- "description": "Get device battery status including percentage, health, temperature, and charging state. Returns JSON with: health (GOOD/OVERHEAT/DEAD/etc), percentage (0-100), plugged (AC/USB/WIRELESS/UNPLUGGED), status (CHARGING/DISCHARGING/FULL/NOT_CHARGING), temperature (Celsius), current (microamperes).",
50
- "parametersJsonSchema": {
51
- "type": "object",
52
- "properties": {}
53
- }
54
- },
55
- {
56
- "name": "termux_clipboard_get",
57
- "description": "Read the current content of the Android clipboard. Returns the clipboard text content to stdout.",
58
- "parametersJsonSchema": {
59
- "type": "object",
60
- "properties": {}
61
- }
62
- },
63
- {
64
- "name": "termux_clipboard_set",
65
- "description": "Set the Android clipboard content. The text parameter will be copied to the system clipboard.",
66
- "parametersJsonSchema": {
67
- "type": "object",
68
- "properties": {
69
- "text": {
70
- "type": "string",
71
- "description": "Text to copy to clipboard"
72
- }
73
- },
74
- "required": ["text"]
75
- }
76
- },
77
- {
78
- "name": "termux_toast",
79
- "description": "Show a toast notification message on screen. Optional parameters control appearance and duration.",
80
- "parametersJsonSchema": {
81
- "type": "object",
82
- "properties": {
83
- "message": {
84
- "type": "string",
85
- "description": "Message to display in toast"
86
- },
87
- "short": {
88
- "type": "boolean",
89
- "description": "Use short duration (default: false for long)"
90
- },
91
- "gravity": {
92
- "type": "string",
93
- "enum": ["top", "middle", "bottom"],
94
- "description": "Toast position on screen"
95
- },
96
- "background_color": {
97
- "type": "string",
98
- "description": "Background color (e.g., 'red', '#FF0000')"
99
- },
100
- "text_color": {
101
- "type": "string",
102
- "description": "Text color (e.g., 'white', '#FFFFFF')"
103
- }
104
- },
105
- "required": ["message"]
106
- }
107
- },
108
- {
109
- "name": "termux_notification",
110
- "description": "Create a persistent notification in the Android notification shade. Supports title, content, icons, actions, buttons, LED, sound, and vibration.",
111
- "parametersJsonSchema": {
112
- "type": "object",
113
- "properties": {
114
- "title": {
115
- "type": "string",
116
- "description": "Notification title"
117
- },
118
- "content": {
119
- "type": "string",
120
- "description": "Notification body text"
121
- },
122
- "id": {
123
- "type": "string",
124
- "description": "Unique ID to update/remove notification later"
125
- },
126
- "priority": {
127
- "type": "string",
128
- "enum": ["high", "low", "default"],
129
- "description": "Notification priority"
130
- },
131
- "sound": {
132
- "type": "boolean",
133
- "description": "Play notification sound"
134
- },
135
- "vibrate": {
136
- "type": "string",
137
- "description": "Vibration pattern (e.g., '500,500,500')"
138
- },
139
- "ongoing": {
140
- "type": "boolean",
141
- "description": "Make notification persistent (cannot be swiped away)"
142
- }
143
- },
144
- "required": ["title", "content"]
145
- }
146
- },
147
- {
148
- "name": "termux_notification_remove",
149
- "description": "Remove a notification by its ID.",
150
- "parametersJsonSchema": {
151
- "type": "object",
152
- "properties": {
153
- "id": {
154
- "type": "string",
155
- "description": "Notification ID to remove"
156
- }
157
- },
158
- "required": ["id"]
159
- }
160
- },
161
- {
162
- "name": "termux_tts_speak",
163
- "description": "Speak text using Android Text-to-Speech engine. Supports language, pitch, and rate settings.",
164
- "parametersJsonSchema": {
165
- "type": "object",
166
- "properties": {
167
- "text": {
168
- "type": "string",
169
- "description": "Text to speak"
170
- },
171
- "language": {
172
- "type": "string",
173
- "description": "Language code (e.g., 'en', 'it', 'de')"
174
- },
175
- "pitch": {
176
- "type": "number",
177
- "description": "Pitch multiplier (default: 1.0)"
178
- },
179
- "rate": {
180
- "type": "number",
181
- "description": "Speech rate multiplier (default: 1.0)"
182
- }
183
- },
184
- "required": ["text"]
185
- }
186
- },
187
- {
188
- "name": "termux_vibrate",
189
- "description": "Vibrate the device for specified duration.",
190
- "parametersJsonSchema": {
191
- "type": "object",
192
- "properties": {
193
- "duration": {
194
- "type": "integer",
195
- "description": "Vibration duration in milliseconds (default: 1000)"
196
- },
197
- "force": {
198
- "type": "boolean",
199
- "description": "Vibrate even if device is in silent mode"
200
- }
201
- }
202
- }
203
- },
204
- {
205
- "name": "termux_torch",
206
- "description": "Control the device flashlight/torch.",
207
- "parametersJsonSchema": {
208
- "type": "object",
209
- "properties": {
210
- "state": {
211
- "type": "string",
212
- "enum": ["on", "off"],
213
- "description": "Turn torch on or off"
214
- }
215
- },
216
- "required": ["state"]
217
- }
218
- },
219
- {
220
- "name": "termux_wifi_connectioninfo",
221
- "description": "Get current WiFi connection information. Returns JSON with SSID, BSSID, IP address, link speed, RSSI signal strength, and more.",
222
- "parametersJsonSchema": {
223
- "type": "object",
224
- "properties": {}
225
- }
226
- },
227
- {
228
- "name": "termux_location",
229
- "description": "Get device GPS location. Returns JSON with latitude, longitude, altitude, accuracy, speed, bearing, and provider information.",
230
- "parametersJsonSchema": {
231
- "type": "object",
232
- "properties": {
233
- "provider": {
234
- "type": "string",
235
- "enum": ["gps", "network", "passive"],
236
- "description": "Location provider (gps=high accuracy, network=fast, passive=lowest power)"
237
- },
238
- "request": {
239
- "type": "string",
240
- "enum": ["once", "last", "updates"],
241
- "description": "Request type: once (single fix), last (cached), updates (continuous)"
242
- }
243
- }
244
- }
245
- },
246
- {
247
- "name": "termux_audio_info",
248
- "description": "Get audio system information including speaker, bluetooth, and headset states.",
249
- "parametersJsonSchema": {
250
- "type": "object",
251
- "properties": {}
252
- }
253
- },
254
- {
255
- "name": "termux_volume",
256
- "description": "Get or set system volume levels. Without parameters returns all volume levels. With parameters sets specific stream volume.",
257
- "parametersJsonSchema": {
258
- "type": "object",
259
- "properties": {
260
- "stream": {
261
- "type": "string",
262
- "enum": ["alarm", "music", "notification", "ring", "system", "call"],
263
- "description": "Audio stream to control"
264
- },
265
- "volume": {
266
- "type": "integer",
267
- "description": "Volume level to set (0-15 typically)"
268
- }
269
- }
270
- }
271
- },
272
- {
273
- "name": "termux_brightness",
274
- "description": "Set screen brightness level.",
275
- "parametersJsonSchema": {
276
- "type": "object",
277
- "properties": {
278
- "brightness": {
279
- "type": "string",
280
- "description": "Brightness value 0-255 or 'auto'"
281
- }
282
- },
283
- "required": ["brightness"]
284
- }
285
- },
286
- {
287
- "name": "termux_camera_info",
288
- "description": "Get information about available cameras. Returns JSON array with camera IDs, facing direction, and supported resolutions.",
289
- "parametersJsonSchema": {
290
- "type": "object",
291
- "properties": {}
292
- }
293
- },
294
- {
295
- "name": "termux_camera_photo",
296
- "description": "Take a photo with the device camera.",
297
- "parametersJsonSchema": {
298
- "type": "object",
299
- "properties": {
300
- "camera_id": {
301
- "type": "integer",
302
- "description": "Camera ID (0=back, 1=front typically)"
303
- },
304
- "output_file": {
305
- "type": "string",
306
- "description": "Output file path for the photo"
307
- }
308
- },
309
- "required": ["output_file"]
310
- }
311
- },
312
- {
313
- "name": "termux_dialog",
314
- "description": "Show an interactive dialog to the user. Supports various input types.",
315
- "parametersJsonSchema": {
316
- "type": "object",
317
- "properties": {
318
- "title": {
319
- "type": "string",
320
- "description": "Dialog title"
321
- },
322
- "type": {
323
- "type": "string",
324
- "enum": ["confirm", "text", "spinner", "date", "time", "counter"],
325
- "description": "Dialog type"
326
- },
327
- "values": {
328
- "type": "string",
329
- "description": "Comma-separated values for spinner/radio"
330
- },
331
- "hint": {
332
- "type": "string",
333
- "description": "Input hint for text dialogs"
334
- }
335
- }
336
- }
337
- },
338
- {
339
- "name": "termux_share",
340
- "description": "Share content using Android share intent.",
341
- "parametersJsonSchema": {
342
- "type": "object",
343
- "properties": {
344
- "text": {
345
- "type": "string",
346
- "description": "Text to share"
347
- },
348
- "file": {
349
- "type": "string",
350
- "description": "File path to share"
351
- },
352
- "title": {
353
- "type": "string",
354
- "description": "Share dialog title"
355
- },
356
- "action": {
357
- "type": "string",
358
- "enum": ["send", "view", "edit"],
359
- "description": "Share action type"
360
- }
361
- }
362
- }
363
- },
364
- {
365
- "name": "termux_open_url",
366
- "description": "Open a URL in the default browser.",
367
- "parametersJsonSchema": {
368
- "type": "object",
369
- "properties": {
370
- "url": {
371
- "type": "string",
372
- "description": "URL to open"
373
- }
374
- },
375
- "required": ["url"]
376
- }
377
- }
378
- ]
379
- EOF
380
- SCRIPT
381
- chmod +x ~/.config/gemini/termux-tools/discovery.sh
382
- ```
383
-
384
- ### 3. Create call script
385
-
386
- ```bash
387
- cat > ~/.config/gemini/termux-tools/call.sh << 'SCRIPT'
388
- #!/data/data/com.termux/files/usr/bin/bash
389
- # Termux-API Tool Call dispatcher for Gemini CLI
390
- # Usage: call.sh <tool_name> < params.json
391
-
392
- TOOL_NAME="$1"
393
-
394
- # Read JSON params from stdin
395
- PARAMS=$(cat)
396
-
397
- case "$TOOL_NAME" in
398
- termux_battery_status)
399
- termux-battery-status
400
- ;;
401
-
402
- termux_clipboard_get)
403
- termux-clipboard-get
404
- ;;
405
-
406
- termux_clipboard_set)
407
- TEXT=$(echo "$PARAMS" | jq -r '.text // empty')
408
- if [ -n "$TEXT" ]; then
409
- echo "$TEXT" | termux-clipboard-set
410
- echo '{"status": "ok"}'
411
- else
412
- echo '{"error": "text parameter required"}'
413
- exit 1
414
- fi
415
- ;;
416
-
417
- termux_toast)
418
- MSG=$(echo "$PARAMS" | jq -r '.message // empty')
419
- SHORT=$(echo "$PARAMS" | jq -r '.short // false')
420
- GRAVITY=$(echo "$PARAMS" | jq -r '.gravity // empty')
421
- BG=$(echo "$PARAMS" | jq -r '.background_color // empty')
422
- TC=$(echo "$PARAMS" | jq -r '.text_color // empty')
423
-
424
- ARGS=""
425
- [ "$SHORT" = "true" ] && ARGS="$ARGS -s"
426
- [ -n "$GRAVITY" ] && ARGS="$ARGS -g $GRAVITY"
427
- [ -n "$BG" ] && ARGS="$ARGS -c $BG"
428
- [ -n "$TC" ] && ARGS="$ARGS -C $TC"
429
-
430
- echo "$MSG" | termux-toast $ARGS
431
- echo '{"status": "ok"}'
432
- ;;
433
-
434
- termux_notification)
435
- TITLE=$(echo "$PARAMS" | jq -r '.title // empty')
436
- CONTENT=$(echo "$PARAMS" | jq -r '.content // empty')
437
- ID=$(echo "$PARAMS" | jq -r '.id // empty')
438
- PRIORITY=$(echo "$PARAMS" | jq -r '.priority // empty')
439
- SOUND=$(echo "$PARAMS" | jq -r '.sound // false')
440
- VIBRATE=$(echo "$PARAMS" | jq -r '.vibrate // empty')
441
- ONGOING=$(echo "$PARAMS" | jq -r '.ongoing // false')
442
-
443
- ARGS="-t \"$TITLE\" -c \"$CONTENT\""
444
- [ -n "$ID" ] && ARGS="$ARGS --id $ID"
445
- [ -n "$PRIORITY" ] && ARGS="$ARGS --priority $PRIORITY"
446
- [ "$SOUND" = "true" ] && ARGS="$ARGS --sound"
447
- [ -n "$VIBRATE" ] && ARGS="$ARGS --vibrate $VIBRATE"
448
- [ "$ONGOING" = "true" ] && ARGS="$ARGS --ongoing"
449
-
450
- eval "termux-notification $ARGS"
451
- echo '{"status": "ok"}'
452
- ;;
453
-
454
- termux_notification_remove)
455
- ID=$(echo "$PARAMS" | jq -r '.id // empty')
456
- termux-notification-remove --id "$ID"
457
- echo '{"status": "ok"}'
458
- ;;
459
-
460
- termux_tts_speak)
461
- TEXT=$(echo "$PARAMS" | jq -r '.text // empty')
462
- LANG=$(echo "$PARAMS" | jq -r '.language // empty')
463
- PITCH=$(echo "$PARAMS" | jq -r '.pitch // empty')
464
- RATE=$(echo "$PARAMS" | jq -r '.rate // empty')
465
-
466
- ARGS=""
467
- [ -n "$LANG" ] && ARGS="$ARGS -l $LANG"
468
- [ -n "$PITCH" ] && ARGS="$ARGS -p $PITCH"
469
- [ -n "$RATE" ] && ARGS="$ARGS -r $RATE"
470
-
471
- echo "$TEXT" | termux-tts-speak $ARGS
472
- echo '{"status": "ok"}'
473
- ;;
474
-
475
- termux_vibrate)
476
- DUR=$(echo "$PARAMS" | jq -r '.duration // 1000')
477
- FORCE=$(echo "$PARAMS" | jq -r '.force // false')
478
-
479
- ARGS="-d $DUR"
480
- [ "$FORCE" = "true" ] && ARGS="$ARGS -f"
481
-
482
- termux-vibrate $ARGS
483
- echo '{"status": "ok"}'
484
- ;;
485
-
486
- termux_torch)
487
- STATE=$(echo "$PARAMS" | jq -r '.state // empty')
488
- termux-torch "$STATE"
489
- echo '{"status": "ok"}'
490
- ;;
491
-
492
- termux_wifi_connectioninfo)
493
- termux-wifi-connectioninfo
494
- ;;
495
-
496
- termux_location)
497
- PROVIDER=$(echo "$PARAMS" | jq -r '.provider // "gps"')
498
- REQUEST=$(echo "$PARAMS" | jq -r '.request // "once"')
499
- termux-location -p "$PROVIDER" -r "$REQUEST"
500
- ;;
501
-
502
- termux_audio_info)
503
- termux-audio-info
504
- ;;
505
-
506
- termux_volume)
507
- STREAM=$(echo "$PARAMS" | jq -r '.stream // empty')
508
- VOL=$(echo "$PARAMS" | jq -r '.volume // empty')
509
-
510
- if [ -n "$STREAM" ] && [ -n "$VOL" ]; then
511
- termux-volume "$STREAM" "$VOL"
512
- echo '{"status": "ok"}'
513
- else
514
- termux-volume
515
- fi
516
- ;;
517
-
518
- termux_brightness)
519
- BRIGHTNESS=$(echo "$PARAMS" | jq -r '.brightness // empty')
520
- termux-brightness "$BRIGHTNESS"
521
- echo '{"status": "ok"}'
522
- ;;
523
-
524
- termux_camera_info)
525
- termux-camera-info
526
- ;;
527
-
528
- termux_camera_photo)
529
- CAM_ID=$(echo "$PARAMS" | jq -r '.camera_id // 0')
530
- OUTPUT=$(echo "$PARAMS" | jq -r '.output_file // empty')
531
- termux-camera-photo -c "$CAM_ID" "$OUTPUT"
532
- echo "{\"status\": \"ok\", \"file\": \"$OUTPUT\"}"
533
- ;;
534
-
535
- termux_dialog)
536
- TITLE=$(echo "$PARAMS" | jq -r '.title // empty')
537
- TYPE=$(echo "$PARAMS" | jq -r '.type // "confirm"')
538
- VALUES=$(echo "$PARAMS" | jq -r '.values // empty')
539
- HINT=$(echo "$PARAMS" | jq -r '.hint // empty')
540
-
541
- ARGS=""
542
- [ -n "$TITLE" ] && ARGS="$ARGS -t \"$TITLE\""
543
-
544
- case "$TYPE" in
545
- confirm) ARGS="$ARGS confirm" ;;
546
- text) ARGS="$ARGS -i" ;;
547
- spinner) ARGS="$ARGS spinner --values \"$VALUES\"" ;;
548
- date) ARGS="$ARGS date" ;;
549
- time) ARGS="$ARGS time" ;;
550
- counter) ARGS="$ARGS counter" ;;
551
- esac
552
-
553
- [ -n "$HINT" ] && ARGS="$ARGS -i \"$HINT\""
554
-
555
- eval "termux-dialog $ARGS"
556
- ;;
557
-
558
- termux_share)
559
- TEXT=$(echo "$PARAMS" | jq -r '.text // empty')
560
- FILE=$(echo "$PARAMS" | jq -r '.file // empty')
561
- TITLE=$(echo "$PARAMS" | jq -r '.title // empty')
562
- ACTION=$(echo "$PARAMS" | jq -r '.action // "send"')
563
-
564
- ARGS="-a $ACTION"
565
- [ -n "$TITLE" ] && ARGS="$ARGS -t \"$TITLE\""
566
-
567
- if [ -n "$TEXT" ]; then
568
- echo "$TEXT" | termux-share $ARGS
569
- elif [ -n "$FILE" ]; then
570
- termux-share $ARGS "$FILE"
571
- fi
572
- echo '{"status": "ok"}'
573
- ;;
574
-
575
- termux_open_url)
576
- URL=$(echo "$PARAMS" | jq -r '.url // empty')
577
- termux-open-url "$URL"
578
- echo '{"status": "ok"}'
579
- ;;
580
-
581
- *)
582
- echo "{\"error\": \"Unknown tool: $TOOL_NAME\"}"
583
- exit 1
584
- ;;
585
- esac
586
- SCRIPT
587
- chmod +x ~/.config/gemini/termux-tools/call.sh
588
- ```
589
-
590
- ### 4. Configure Gemini CLI
591
-
592
- Edit `~/.config/gemini/settings.json`:
593
-
594
- ```json
595
- {
596
- "tool_discovery_command": "bash ~/.config/gemini/termux-tools/discovery.sh",
597
- "tool_call_command": "bash ~/.config/gemini/termux-tools/call.sh"
598
- }
599
- ```
600
-
601
- ### 5. Test
602
-
603
- ```bash
604
- # Verify discovery
605
- ~/.config/gemini/termux-tools/discovery.sh | jq '.[] | .name'
606
-
607
- # Verify call
608
- echo '{}' | ~/.config/gemini/termux-tools/call.sh termux_battery_status
609
-
610
- # Test with Gemini
611
- gemini "What's my battery status?"
612
- ```
613
-
614
- ---
615
-
616
- ## Installation Verification
617
-
618
- ```bash
619
- # Check Termux-API
620
- pkg list-installed | grep termux-api
621
-
622
- # Check jq (required for call.sh)
623
- which jq || pkg install jq
624
-
625
- # Check permissions
626
- termux-setup-storage # Grant storage access
627
- ```
628
-
629
- ---
630
-
631
- ## Troubleshooting
632
-
633
- ### Tool not found
634
-
635
- ```
636
- Error: Unknown tool: termux_xxx
637
- ```
638
-
639
- **Solution**: Verify that the tool is defined in `discovery.sh` and `call.sh`
640
-
641
- ### Permission denied
642
-
643
- ```
644
- Error: Permission denied for termux-xxx
645
- ```
646
-
647
- **Solution**: Open Termux:API app and grant necessary permissions
648
-
649
- ### JSON parse error
650
-
651
- ```
652
- Error: jq: parse error
653
- ```
654
-
655
- **Solution**: Verify that parameters are valid JSON
656
-
657
- ---
658
-
659
- ## Extending
660
-
661
- To add new commands:
662
-
663
- 1. Add FunctionDeclaration in `discovery.sh`
664
- 2. Add case handler in `call.sh`
665
- 3. Test with direct call
666
- 4. Verify with Gemini
667
-
668
- ---
669
-
670
- _Author: DioNanos_