@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.
- package/README.md +42 -193
- package/bundle/docs/cli/settings.md +8 -9
- package/bundle/docs/extensions/reference.md +14 -38
- package/bundle/docs/hooks/reference.md +0 -8
- package/bundle/docs/reference/configuration.md +0 -8
- package/bundle/gemini.js +10730 -11704
- package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
- package/bundle/package.json +2 -1
- package/package.json +67 -5
- package/packages/cli/dist/index.js +0 -0
- package/packages/cli/dist/package.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/custom-commands/gemini-extension.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/exclude-tools/gemini-extension.json +3 -3
- package/packages/cli/dist/src/commands/extensions/examples/hooks/gemini-extension.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/hooks/hooks/hooks.json +11 -11
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js +1 -1
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +8 -8
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/package.json +9 -9
- package/packages/cli/dist/src/commands/extensions/examples/skills/gemini-extension.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/themes-example/README.md +8 -5
- package/packages/cli/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +27 -27
- package/packages/cli/dist/src/config/config.js +4 -65
- package/packages/cli/dist/src/config/config.js.map +1 -1
- package/packages/cli/dist/src/config/settingsSchema.d.ts +1 -235
- package/packages/cli/dist/src/config/settingsSchema.js +1 -235
- package/packages/cli/dist/src/config/settingsSchema.js.map +1 -1
- package/packages/cli/dist/src/gemini.js +0 -2
- package/packages/cli/dist/src/gemini.js.map +1 -1
- package/packages/cli/dist/src/generated/git-commit.d.ts +2 -2
- package/packages/cli/dist/src/generated/git-commit.js +2 -2
- package/packages/cli/dist/src/patches/empty-module.d.ts +2 -0
- package/packages/cli/dist/src/patches/empty-module.js +2 -0
- package/packages/cli/dist/src/patches/empty-module.js.map +1 -0
- package/packages/cli/dist/src/services/McpPromptLoader.js +3 -6
- package/packages/cli/dist/src/services/McpPromptLoader.js.map +1 -1
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.js +19 -5
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js +41 -19
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/DialogManager.d.ts +1 -1
- package/packages/cli/dist/src/ui/components/DialogManager.js +34 -7
- package/packages/cli/dist/src/ui/components/DialogManager.js.map +1 -1
- package/packages/cli/dist/src/ui/components/InputPrompt.d.ts +9 -0
- package/packages/cli/dist/src/ui/components/InputPrompt.js +350 -125
- package/packages/cli/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/packages/cli/dist/src/ui/components/InputPrompt.test.js +788 -35
- package/packages/cli/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js +2 -2
- package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js +4 -77
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -51
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolMessage.js +2 -2
- package/packages/cli/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolShared.d.ts +0 -1
- package/packages/cli/dist/src/ui/components/messages/ToolShared.js +2 -2
- package/packages/cli/dist/src/ui/components/messages/ToolShared.js.map +1 -1
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js +4 -1
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js +139 -40
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/shared/TextInput.js +2 -1
- package/packages/cli/dist/src/ui/components/shared/TextInput.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/toolMapping.js +0 -1
- package/packages/cli/dist/src/ui/hooks/toolMapping.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/toolMapping.test.js +0 -13
- package/packages/cli/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.js +2 -18
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js +0 -44
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/packages/cli/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/packages/cli/dist/src/ui/types.d.ts +0 -1
- package/packages/cli/dist/src/ui/types.js.map +1 -1
- package/packages/cli/dist/src/ui/utils/commandUtils.js +4 -1
- package/packages/cli/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/packages/cli/dist/src/utils/activityLogger.js +23 -94
- package/packages/cli/dist/src/utils/activityLogger.js.map +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.d.ts +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.js +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.test.js +11 -11
- package/packages/cli/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
- package/{bundle/sandbox-macos-restrictive-closed.sb → packages/cli/dist/src/utils/sandbox-macos-strict-open.sb} +42 -4
- package/packages/cli/dist/src/utils/{sandbox-macos-restrictive-closed.sb → sandbox-macos-strict-proxied.sb} +44 -4
- package/packages/cli/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/core/dist/docs/admin/enterprise-controls.md +115 -0
- package/packages/core/dist/docs/changelogs/index.md +57 -1
- package/packages/core/dist/docs/changelogs/latest.md +357 -314
- package/packages/core/dist/docs/changelogs/preview.md +288 -411
- package/packages/core/dist/docs/cli/checkpointing.md +2 -3
- package/packages/core/dist/docs/cli/cli-reference.md +42 -28
- package/packages/core/dist/docs/cli/custom-commands.md +3 -0
- package/packages/core/dist/docs/cli/enterprise.md +28 -8
- package/packages/core/dist/docs/cli/gemini-md.md +21 -13
- package/packages/core/dist/docs/cli/headless.md +34 -372
- package/packages/core/dist/docs/cli/model.md +1 -1
- package/packages/core/dist/docs/cli/plan-mode.md +245 -0
- package/packages/core/dist/docs/cli/rewind.md +11 -11
- package/packages/core/dist/docs/cli/sandbox.md +6 -5
- package/packages/core/dist/docs/cli/session-management.md +61 -44
- package/packages/core/dist/docs/cli/settings.md +64 -49
- package/packages/core/dist/docs/cli/skills.md +29 -7
- package/packages/core/dist/docs/cli/telemetry.md +41 -5
- package/packages/core/dist/docs/cli/themes.md +88 -54
- package/packages/core/dist/docs/cli/trusted-folders.md +31 -0
- package/packages/core/dist/docs/cli/tutorials/automation.md +187 -0
- package/packages/core/dist/docs/cli/tutorials/file-management.md +142 -0
- package/packages/core/dist/docs/cli/tutorials/mcp-setup.md +105 -0
- package/packages/core/dist/docs/cli/tutorials/memory-management.md +126 -0
- package/packages/core/dist/docs/cli/tutorials/session-management.md +105 -0
- package/packages/core/dist/docs/cli/tutorials/shell-commands.md +107 -0
- package/packages/core/dist/docs/cli/tutorials/skills-getting-started.md +36 -31
- package/packages/core/dist/docs/cli/tutorials/task-planning.md +93 -0
- package/packages/core/dist/docs/cli/tutorials/web-tools.md +78 -0
- package/packages/core/dist/docs/core/index.md +7 -7
- package/packages/core/dist/docs/core/subagents.md +40 -40
- package/packages/core/dist/docs/extensions/best-practices.md +102 -53
- package/packages/core/dist/docs/extensions/index.md +37 -21
- package/packages/core/dist/docs/extensions/reference.md +148 -219
- package/packages/core/dist/docs/extensions/releasing.md +93 -122
- package/packages/core/dist/docs/extensions/writing-extensions.md +87 -76
- package/packages/core/dist/docs/get-started/authentication.md +4 -4
- package/packages/core/dist/docs/get-started/examples.md +39 -119
- package/packages/core/dist/docs/get-started/gemini-3.md +17 -3
- package/packages/core/dist/docs/get-started/index.md +16 -5
- package/packages/core/dist/docs/get-started/installation.md +110 -77
- package/packages/core/dist/docs/hooks/best-practices.md +1 -1
- package/packages/core/dist/docs/hooks/reference.md +2 -2
- package/packages/core/dist/docs/index.md +142 -149
- package/packages/core/dist/docs/redirects.json +19 -0
- package/packages/core/dist/docs/reference/commands.md +523 -0
- package/{bundle/docs/get-started → packages/core/dist/docs/reference}/configuration.md +180 -71
- package/packages/core/dist/docs/{cli → reference}/keyboard-shortcuts.md +49 -35
- package/packages/core/dist/docs/{core → reference}/policy-engine.md +76 -32
- package/packages/core/dist/docs/releases.md +2 -2
- package/{bundle/docs → packages/core/dist/docs/resources}/faq.md +1 -1
- package/packages/core/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
- package/{bundle/docs → packages/core/dist/docs/resources}/tos-privacy.md +3 -3
- package/packages/core/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
- package/packages/core/dist/docs/sidebar.json +194 -113
- package/packages/core/dist/docs/tools/activate-skill.md +43 -0
- package/packages/core/dist/docs/tools/ask-user.md +95 -0
- package/packages/core/dist/docs/tools/file-system.md +55 -143
- package/packages/core/dist/docs/tools/index.md +97 -93
- package/packages/core/dist/docs/tools/internal-docs.md +46 -0
- package/packages/core/dist/docs/tools/mcp-server.md +65 -16
- package/packages/core/dist/docs/tools/memory.md +21 -40
- package/packages/core/dist/docs/tools/planning.md +57 -0
- package/packages/core/dist/docs/tools/shell.md +44 -88
- package/packages/core/dist/docs/tools/todos.md +22 -44
- package/packages/core/dist/docs/tools/web-fetch.md +22 -46
- package/packages/core/dist/docs/tools/web-search.md +19 -29
- package/packages/core/dist/src/code_assist/types.d.ts +14 -14
- package/packages/core/dist/src/config/config.d.ts +1 -13
- package/packages/core/dist/src/config/config.js +6 -39
- package/packages/core/dist/src/config/config.js.map +1 -1
- package/packages/core/dist/src/confirmation-bus/types.d.ts +0 -3
- package/packages/core/dist/src/confirmation-bus/types.js.map +1 -1
- package/packages/core/dist/src/core/coreToolHookTriggers.d.ts +1 -1
- package/packages/core/dist/src/core/coreToolHookTriggers.js +3 -8
- package/packages/core/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/packages/core/dist/src/generated/git-commit.d.ts +2 -2
- package/packages/core/dist/src/generated/git-commit.js +2 -2
- package/packages/core/dist/src/hooks/hookEventHandler.d.ts +2 -2
- package/packages/core/dist/src/hooks/hookEventHandler.js +2 -8
- package/packages/core/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/packages/core/dist/src/hooks/hookSystem.d.ts +2 -2
- package/packages/core/dist/src/hooks/hookSystem.js +4 -4
- package/packages/core/dist/src/hooks/hookSystem.js.map +1 -1
- package/packages/core/dist/src/hooks/types.d.ts +0 -18
- package/packages/core/dist/src/hooks/types.js +0 -17
- package/packages/core/dist/src/hooks/types.js.map +1 -1
- package/packages/core/dist/src/ide/ide-client.js +1 -1
- package/packages/core/dist/src/ide/ide-client.js.map +1 -1
- package/packages/core/dist/src/ide/types.d.ts +8 -8
- package/packages/core/dist/src/index.d.ts +2 -0
- package/packages/core/dist/src/index.js +2 -0
- package/packages/core/dist/src/index.js.map +1 -1
- package/packages/core/dist/src/policy/policies/plan.toml +29 -43
- package/packages/core/dist/src/policy/policies/read-only.toml +12 -11
- package/packages/core/dist/src/policy/policies/write.toml +11 -10
- package/packages/core/dist/src/policy/policies/yolo.toml +24 -12
- package/packages/core/dist/src/policy/policy-engine.js +1 -5
- package/packages/core/dist/src/policy/policy-engine.js.map +1 -1
- package/packages/core/dist/src/policy/types.d.ts +1 -2
- package/packages/core/dist/src/policy/types.js +0 -1
- package/packages/core/dist/src/policy/types.js.map +1 -1
- package/packages/core/dist/src/safety/context-builder.d.ts +3 -3
- package/packages/core/dist/src/safety/context-builder.js +4 -60
- package/packages/core/dist/src/safety/context-builder.js.map +1 -1
- package/packages/core/dist/src/safety/context-builder.test.js +18 -98
- package/packages/core/dist/src/safety/context-builder.test.js.map +1 -1
- package/packages/core/dist/src/safety/protocol.d.ts +0 -4
- package/packages/core/dist/src/safety/registry.d.ts +1 -2
- package/packages/core/dist/src/safety/registry.js +4 -14
- package/packages/core/dist/src/safety/registry.js.map +1 -1
- package/packages/core/dist/src/safety/registry.test.js +2 -5
- package/packages/core/dist/src/safety/registry.test.js.map +1 -1
- package/packages/core/dist/src/scheduler/scheduler.d.ts +1 -1
- package/packages/core/dist/src/scheduler/scheduler.js +4 -49
- package/packages/core/dist/src/scheduler/scheduler.js.map +1 -1
- package/packages/core/dist/src/scheduler/scheduler.test.js +0 -91
- package/packages/core/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/packages/core/dist/src/scheduler/state-manager.d.ts +0 -6
- package/packages/core/dist/src/scheduler/state-manager.js +0 -12
- package/packages/core/dist/src/scheduler/state-manager.js.map +1 -1
- package/packages/core/dist/src/scheduler/tool-executor.js +7 -9
- package/packages/core/dist/src/scheduler/tool-executor.js.map +1 -1
- package/packages/core/dist/src/scheduler/tool-executor.test.js +1 -1
- package/packages/core/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/packages/core/dist/src/scheduler/types.d.ts +0 -13
- package/packages/core/dist/src/services/shellExecutionService.d.ts +1 -1
- package/packages/core/dist/src/services/shellExecutionService.js +7 -8
- package/packages/core/dist/src/services/shellExecutionService.js.map +1 -1
- package/packages/core/dist/src/services/shellExecutionService.test.js +5 -5
- package/packages/core/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/packages/core/dist/src/services/test-data/resolved-aliases-retry.golden.json +251 -251
- package/packages/core/dist/src/services/test-data/resolved-aliases.golden.json +251 -251
- package/packages/core/dist/src/skills/builtin/skill-creator/scripts/init_skill.cjs +5 -1
- package/packages/core/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +5 -1
- package/packages/core/dist/src/skills/builtin/skill-creator/scripts/validate_skill.cjs +5 -1
- package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -3
- package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -2
- package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -9
- package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js +1 -19
- package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/packages/core/dist/src/telemetry/index.d.ts +1 -2
- package/packages/core/dist/src/telemetry/index.js +1 -2
- package/packages/core/dist/src/telemetry/index.js.map +1 -1
- package/packages/core/dist/src/telemetry/loggers.js +0 -4
- package/packages/core/dist/src/telemetry/loggers.js.map +1 -1
- package/packages/core/dist/src/telemetry/trace.js.map +1 -1
- package/packages/core/dist/src/telemetry/types.d.ts +0 -26
- package/packages/core/dist/src/telemetry/types.js +2 -76
- package/packages/core/dist/src/telemetry/types.js.map +1 -1
- package/packages/core/dist/src/tools/diffOptions.d.ts +2 -2
- package/packages/core/dist/src/tools/diffOptions.js.map +1 -1
- package/packages/core/dist/src/tools/mcp-client.test.js.map +1 -1
- package/packages/core/dist/src/tools/mcp-tool.d.ts +1 -3
- package/packages/core/dist/src/tools/mcp-tool.js +2 -9
- package/packages/core/dist/src/tools/mcp-tool.js.map +1 -1
- package/packages/core/dist/src/tools/memoryTool.d.ts +0 -10
- package/packages/core/dist/src/tools/memoryTool.js +30 -25
- package/packages/core/dist/src/tools/memoryTool.js.map +1 -1
- package/packages/core/dist/src/tools/tool-names.d.ts +6 -0
- package/packages/core/dist/src/tools/tool-names.js +16 -1
- package/packages/core/dist/src/tools/tool-names.js.map +1 -1
- package/packages/core/dist/src/tools/tools.d.ts +0 -11
- package/packages/core/dist/src/tools/tools.js.map +1 -1
- package/packages/core/dist/src/utils/getPty.d.ts +14 -1
- package/packages/core/dist/src/utils/getPty.js +67 -2
- package/packages/core/dist/src/utils/getPty.js.map +1 -1
- package/packages/core/dist/src/utils/memoryDiscovery.d.ts +11 -3
- package/packages/core/dist/src/utils/memoryDiscovery.js +56 -21
- package/packages/core/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/packages/core/dist/src/utils/secure-browser-launcher.js +40 -29
- package/packages/core/dist/src/utils/secure-browser-launcher.js.map +1 -1
- package/packages/core/dist/src/utils/textUtils.d.ts +0 -9
- package/packages/core/dist/src/utils/textUtils.js +0 -15
- package/packages/core/dist/src/utils/textUtils.js.map +1 -1
- package/packages/core/dist/src/utils/textUtils.test.js +1 -42
- package/packages/core/dist/src/utils/textUtils.test.js.map +1 -1
- package/packages/core/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/test-utils/dist/tsconfig.tsbuildinfo +1 -1
- package/bundle/docs/ROADMAP.md +0 -113
- package/bundle/docs/TERMUX.md +0 -95
- package/bundle/docs/architecture.md +0 -80
- package/bundle/docs/assets/hero.png +0 -0
- package/bundle/docs/cli/authentication.md +0 -3
- package/bundle/docs/cli/commands.md +0 -430
- package/bundle/docs/cli/context-memory.md +0 -69
- package/bundle/docs/cli/index.md +0 -65
- package/bundle/docs/cli/keyboard-shortcuts.md +0 -140
- package/bundle/docs/cli/tutorials.md +0 -87
- package/bundle/docs/core/policy-engine.md +0 -305
- package/bundle/docs/get-started/configuration-v1.md +0 -888
- package/bundle/docs/patches/README.md +0 -74
- package/bundle/docs/patches/mcp-sdk-typings-shim.md +0 -27
- package/bundle/docs/quota-and-pricing.md +0 -158
- package/bundle/docs/termux-api/COMMANDS.md +0 -592
- package/bundle/docs/termux-api/DISCOVERY_SETUP.md +0 -670
- package/bundle/docs/termux-api/EXECUTION_PLAN.md +0 -532
- package/bundle/docs/termux-api/MERGE_STRATEGY.md +0 -365
- package/bundle/docs/termux-api/PATCHES.md +0 -480
- package/bundle/docs/termux-api/README.md +0 -416
- package/bundle/docs/troubleshooting.md +0 -173
- package/bundle/policies/conseca.toml +0 -6
- package/bundle/sandbox-macos-permissive-closed.sb +0 -32
- package/packages/cli/README.md +0 -173
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.d.ts +0 -6
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js.map +0 -1
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.d.ts +0 -6
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js +0 -111
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +0 -1
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js +0 -93
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.d.ts +0 -42
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js +0 -105
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js +0 -58
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js +0 -7
- package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.d.ts +0 -9
- package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js +0 -59
- package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.d.ts +0 -30
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js +0 -149
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js +0 -376
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js +0 -45
- package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js.map +0 -1
- package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js +0 -21
- package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js.map +0 -1
- package/packages/cli/dist/src/ui/utils/terminalUtils.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/utils/terminalUtils.test.js +0 -40
- package/packages/cli/dist/src/ui/utils/terminalUtils.test.js.map +0 -1
- package/packages/cli/dist/src/utils/checks.d.ts +0 -19
- package/packages/cli/dist/src/utils/checks.js +0 -24
- package/packages/cli/dist/src/utils/checks.js.map +0 -1
- package/packages/cli/dist/src/utils/checks.test.d.ts +0 -6
- package/packages/cli/dist/src/utils/checks.test.js +0 -29
- package/packages/cli/dist/src/utils/checks.test.js.map +0 -1
- package/packages/cli/dist/src/utils/sandbox-macos-permissive-closed.sb +0 -32
- package/packages/cli/index.js +0 -2
- package/packages/core/dist/docs/TERMUX.md +0 -95
- package/packages/core/dist/docs/architecture.md +0 -80
- package/packages/core/dist/docs/assets/hero.png +0 -0
- package/packages/core/dist/docs/cli/authentication.md +0 -3
- package/packages/core/dist/docs/cli/commands.md +0 -430
- package/packages/core/dist/docs/cli/context-memory.md +0 -69
- package/packages/core/dist/docs/cli/index.md +0 -65
- package/packages/core/dist/docs/cli/tutorials.md +0 -87
- package/packages/core/dist/docs/cli/uninstall.md +0 -65
- package/packages/core/dist/docs/core/memport.md +0 -246
- package/packages/core/dist/docs/core/tools-api.md +0 -131
- package/packages/core/dist/docs/faq.md +0 -154
- package/packages/core/dist/docs/get-started/configuration-v1.md +0 -888
- package/packages/core/dist/docs/get-started/configuration.md +0 -1585
- package/packages/core/dist/docs/patches/README.md +0 -74
- package/packages/core/dist/docs/patches/mcp-sdk-typings-shim.md +0 -27
- package/packages/core/dist/docs/termux-api/COMMANDS.md +0 -592
- package/packages/core/dist/docs/termux-api/DISCOVERY_SETUP.md +0 -670
- package/packages/core/dist/docs/termux-api/EXECUTION_PLAN.md +0 -532
- package/packages/core/dist/docs/termux-api/MERGE_STRATEGY.md +0 -365
- package/packages/core/dist/docs/termux-api/PATCHES.md +0 -480
- package/packages/core/dist/docs/termux-api/README.md +0 -416
- package/packages/core/dist/docs/tos-privacy.md +0 -96
- package/packages/core/dist/src/safety/conseca/conseca.d.ts +0 -31
- package/packages/core/dist/src/safety/conseca/conseca.js +0 -105
- package/packages/core/dist/src/safety/conseca/conseca.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/conseca.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/conseca.test.js +0 -226
- package/packages/core/dist/src/safety/conseca/conseca.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/integration.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/integration.test.js +0 -19
- package/packages/core/dist/src/safety/conseca/integration.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-enforcer.d.ts +0 -13
- package/packages/core/dist/src/safety/conseca/policy-enforcer.js +0 -135
- package/packages/core/dist/src/safety/conseca/policy-enforcer.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-enforcer.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js +0 -141
- package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-generator.d.ts +0 -15
- package/packages/core/dist/src/safety/conseca/policy-generator.js +0 -144
- package/packages/core/dist/src/safety/conseca/policy-generator.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-generator.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/policy-generator.test.js +0 -84
- package/packages/core/dist/src/safety/conseca/policy-generator.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/types.d.ts +0 -15
- package/packages/core/dist/src/safety/conseca/types.js +0 -7
- package/packages/core/dist/src/safety/conseca/types.js.map +0 -1
- package/packages/core/dist/src/telemetry/conseca-logger.d.ts +0 -9
- package/packages/core/dist/src/telemetry/conseca-logger.js +0 -91
- package/packages/core/dist/src/telemetry/conseca-logger.js.map +0 -1
- package/packages/core/dist/src/telemetry/conseca-logger.test.d.ts +0 -6
- package/packages/core/dist/src/telemetry/conseca-logger.test.js +0 -89
- package/packages/core/dist/src/telemetry/conseca-logger.test.js.map +0 -1
- package/packages/core/dist/src/tools/mcpImportTool.d.ts +0 -31
- package/packages/core/dist/src/tools/mcpImportTool.js +0 -143
- package/packages/core/dist/src/tools/mcpImportTool.js.map +0 -1
- package/packages/core/dist/src/utils/contextMemory.d.ts +0 -67
- package/packages/core/dist/src/utils/contextMemory.js +0 -493
- package/packages/core/dist/src/utils/contextMemory.js.map +0 -1
- package/packages/core/dist/src/utils/contextMemory.test.d.ts +0 -6
- package/packages/core/dist/src/utils/contextMemory.test.js +0 -183
- package/packages/core/dist/src/utils/contextMemory.test.js.map +0 -1
- /package/{bundle/docs/core → packages/core/dist/docs/reference}/memport.md +0 -0
- /package/{bundle/docs/core → packages/core/dist/docs/reference}/tools-api.md +0 -0
- /package/{bundle/docs/cli → packages/core/dist/docs/resources}/uninstall.md +0 -0
package/packages/cli/README.md
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# 🤖 Gemini CLI – Termux Edition
|
|
2
|
-
|
|
3
|
-
Android/Termux optimized fork of Google Gemini CLI. Installs cleanly on Termux
|
|
4
|
-
with a native ARM64 PTY prebuild and clipboard detection for Termux.
|
|
5
|
-
|
|
6
|
-
[](https://www.npmjs.com/package/@mmmbuto/gemini-cli-termux)
|
|
7
|
-
[](https://www.npmjs.com/package/@mmmbuto/gemini-cli-termux)
|
|
8
|
-
[](https://ko-fi.com/dionanos)
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## What This Is
|
|
13
|
-
|
|
14
|
-
**Optimized Termux edition** of `google-gemini/gemini-cli`.
|
|
15
|
-
|
|
16
|
-
This project focuses on maintaining a first-class experience for Gemini on
|
|
17
|
-
Android/Termux. It provides critical adaptations for the mobile environment
|
|
18
|
-
while tracking upstream development closely.
|
|
19
|
-
|
|
20
|
-
- **Termux-First:** Pre-configured for Android filesystem and clipboard.
|
|
21
|
-
- **Lightweight:** Native dependencies managed for ARM64 without complex
|
|
22
|
-
compilation.
|
|
23
|
-
- **Up-to-Date:** Synchronized with the latest Google Gemini CLI features.
|
|
24
|
-
|
|
25
|
-
## Installation (Termux)
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
pkg update && pkg upgrade -y
|
|
29
|
-
pkg install nodejs-lts -y
|
|
30
|
-
npm install -g @mmmbuto/gemini-cli-termux
|
|
31
|
-
|
|
32
|
-
gemini --version # expected: 0.24.6-termux (npm latest)
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Build from source:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
git clone https://github.com/DioNanos/gemini-cli-termux.git
|
|
39
|
-
cd gemini-cli-termux
|
|
40
|
-
npm install
|
|
41
|
-
npm run build && npm run bundle
|
|
42
|
-
node bundle/gemini.js --version
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Termux Optimizations
|
|
46
|
-
|
|
47
|
-
- **Smart Clipboard:** Auto-detects Android environment to enable seamless
|
|
48
|
-
clipboard operations (fixes `TERMUX__PREFIX`).
|
|
49
|
-
- **Streamlined Install:** Uses `@mmmbuto/node-pty-android-arm64` prebuild (no
|
|
50
|
-
node-gyp) and file-based tokens instead of keychain.
|
|
51
|
-
- **Clean UX:** Suppresses desktop-centric warnings (like home directory checks)
|
|
52
|
-
to optimize the experience for mobile terminal usage.
|
|
53
|
-
- **ARM64 Native:** Bundled specifically for Android architecture.
|
|
54
|
-
|
|
55
|
-
## Environment Specifics
|
|
56
|
-
|
|
57
|
-
- **Shell Integration:** Uses `@mmmbuto/node-pty-android-arm64` on Termux for
|
|
58
|
-
interactive PTY support (falls back to `child_process` if unavailable).
|
|
59
|
-
- **Linux ARM64:** On non-Termux Linux ARM64, uses
|
|
60
|
-
`@lydell/node-pty-linux-arm64` when available (falls back to `child_process`).
|
|
61
|
-
- **Credentials:** Keys are stored in standard config files for portability (no
|
|
62
|
-
dependency on system keychains).
|
|
63
|
-
- **Parser:** Simplified Bash parsing to reduce heavy binary dependencies.
|
|
64
|
-
|
|
65
|
-
## Documentation & Fixes
|
|
66
|
-
|
|
67
|
-
### 📚 Complete Documentation
|
|
68
|
-
|
|
69
|
-
- **Test Results**
|
|
70
|
-
- [GEMINI_TEST_REPORT_v0.24.6.md](./GEMINI_TEST_REPORT_v0.24.6.md) — PARTIAL
|
|
71
|
-
(latest report; 0.24.6-termux)
|
|
72
|
-
- **[Test Suite](./GEMINI_TEST_SUITE.md)** - Test methodology and checklist
|
|
73
|
-
- **[Context Memory](./docs/cli/context-memory.md)** - Memory modes, JIT + JSON,
|
|
74
|
-
and setup guide
|
|
75
|
-
- **[Patches & Fixes](./docs/patches/)** - Known issues and workarounds
|
|
76
|
-
|
|
77
|
-
### 🔧 Common Issues & Solutions
|
|
78
|
-
|
|
79
|
-
| Issue | Quick Fix | Documentation |
|
|
80
|
-
| --------------------- | ----------------------------- | --------------------------------------------------- |
|
|
81
|
-
| CLI syntax (`--json`) | Use `-o json` instead | [Details](./docs/patches/cli-syntax-differences.md) |
|
|
82
|
-
| Hooks commands | Use interactive mode `/hooks` | [Details](./docs/patches/hooks-interactive-only.md) |
|
|
83
|
-
|
|
84
|
-
### 📝 Quick Reference
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
# Correct usage examples
|
|
88
|
-
gemini -o json "your prompt" # ✅ JSON output
|
|
89
|
-
gemini --output-format json "prompt" # ✅ Also works
|
|
90
|
-
gemini --json "prompt" # ❌ Wrong syntax
|
|
91
|
-
|
|
92
|
-
# Hooks management (interactive only)
|
|
93
|
-
gemini # Start interactive mode
|
|
94
|
-
/hooks # Manage hooks
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
See [docs/patches/README.md](./docs/patches/README.md) for complete solutions.
|
|
98
|
-
|
|
99
|
-
## Updating
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npm install -g @mmmbuto/gemini-cli-termux@latest
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Changelog (0.24.6-termux)
|
|
106
|
-
|
|
107
|
-
- **PTY on Termux**: Uses `@mmmbuto/node-pty-android-arm64` prebuild.
|
|
108
|
-
- **Deps cleanup**: Removed `@lydell/node-pty-*` and generic `node-pty`.
|
|
109
|
-
- **Docs**: Updated Termux notes for PTY support.
|
|
110
|
-
|
|
111
|
-
## Tests
|
|
112
|
-
|
|
113
|
-
- Suite: [`GEMINI_TEST_SUITE.md`](./GEMINI_TEST_SUITE.md)
|
|
114
|
-
- Latest report:
|
|
115
|
-
- [`GEMINI_TEST_REPORT_v0.24.6.md`](./GEMINI_TEST_REPORT_v0.24.6.md) — PARTIAL
|
|
116
|
-
(latest report; 0.24.6-termux latest). Notes include non‑interactive tool
|
|
117
|
-
confirmation limits.
|
|
118
|
-
|
|
119
|
-
## Termux-API Integration
|
|
120
|
-
|
|
121
|
-
This fork supports optional integration with Termux-API commands for Android
|
|
122
|
-
device access. Enable Gemini to interact with your device hardware and Android
|
|
123
|
-
features.
|
|
124
|
-
|
|
125
|
-
## Context memory + TTS note:
|
|
126
|
-
|
|
127
|
-
- The Termux fork ships JSON context memory at
|
|
128
|
-
`~/.gemini/context_memory/{base.json,user.json,user.journal.jsonl}`. In
|
|
129
|
-
`/settings → Memory` you can select **Memory Mode** (default / jit / jit+json)
|
|
130
|
-
and adjust Context Memory options (autoload, primary ordering, base writes).
|
|
131
|
-
- TTS notifications are controlled by
|
|
132
|
-
`/settings → Notifications → Enable TTS Notifications`. When disabled,
|
|
133
|
-
`termux-tts-speak` is blocked even if an agent asks for it. These behaviors
|
|
134
|
-
are merge-safe and confined to Termux patches.
|
|
135
|
-
|
|
136
|
-
### Quick Setup
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
# Install Termux-API package
|
|
140
|
-
pkg install termux-api jq
|
|
141
|
-
|
|
142
|
-
# Copy tool discovery scripts
|
|
143
|
-
mkdir -p ~/.config/gemini/termux-tools
|
|
144
|
-
cp scripts/termux-tools/*.sh ~/.config/gemini/termux-tools/
|
|
145
|
-
|
|
146
|
-
# Configure in settings
|
|
147
|
-
cat > ~/.config/gemini/settings.json << 'EOF'
|
|
148
|
-
{
|
|
149
|
-
"tool_discovery_command": "bash ~/.config/gemini/termux-tools/discovery.sh",
|
|
150
|
-
"tool_call_command": "bash ~/.config/gemini/termux-tools/call.sh"
|
|
151
|
-
}
|
|
152
|
-
EOF
|
|
153
|
-
|
|
154
|
-
# Test
|
|
155
|
-
gemini "What's my battery status?"
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Supported Commands
|
|
159
|
-
|
|
160
|
-
Battery, Clipboard, Toast, Notifications, TTS, Vibrate, Torch, WiFi info,
|
|
161
|
-
Location, Camera, Dialog, Share, and more.
|
|
162
|
-
|
|
163
|
-
See [docs/termux-api/](./docs/termux-api/) for complete documentation.
|
|
164
|
-
|
|
165
|
-
## Upstream Tracking
|
|
166
|
-
|
|
167
|
-
- Upstream: https://github.com/google-gemini/gemini-cli
|
|
168
|
-
- Divergent files: `esbuild.config.js`, `docs/TERMUX.md`, `package.json`,
|
|
169
|
-
`README.md`, `test-gemini/*`
|
|
170
|
-
|
|
171
|
-
## License
|
|
172
|
-
|
|
173
|
-
Apache 2.0 (same as upstream). See LICENSE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["example.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;IACE,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK;CAChC,EACD,KAAK,IAAI,EAAE;IACT,MAAM,WAAW,GAAG,MAAM,KAAK,CAC7B,4CAA4C,CAC7C,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9C,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC/B;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,cAAc,CACnB,aAAa,EACb;IACE,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;CAC/D,EACD,CAAC,EAAE,KAAK,EAAE,IAAI,EAAoC,EAAE,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gBAAgB,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,qFAAqF;aAChK;SACF;KACF;CACF,CAAC,CACH,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
-
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
// Mock the MCP server and transport
|
|
11
|
-
const mockRegisterTool = vi.fn();
|
|
12
|
-
const mockRegisterPrompt = vi.fn();
|
|
13
|
-
const mockConnect = vi.fn();
|
|
14
|
-
vi.mock('@modelcontextprotocol/sdk/server/mcp.js', () => ({
|
|
15
|
-
McpServer: vi.fn().mockImplementation(() => ({
|
|
16
|
-
registerTool: mockRegisterTool,
|
|
17
|
-
registerPrompt: mockRegisterPrompt,
|
|
18
|
-
connect: mockConnect,
|
|
19
|
-
})),
|
|
20
|
-
}));
|
|
21
|
-
vi.mock('@modelcontextprotocol/sdk/server/stdio.js', () => ({
|
|
22
|
-
StdioServerTransport: vi.fn(),
|
|
23
|
-
}));
|
|
24
|
-
describe('MCP Server Example', () => {
|
|
25
|
-
beforeEach(async () => {
|
|
26
|
-
// Dynamically import the server setup after mocks are in place
|
|
27
|
-
await import('./example.js');
|
|
28
|
-
});
|
|
29
|
-
afterEach(() => {
|
|
30
|
-
vi.clearAllMocks();
|
|
31
|
-
vi.resetModules();
|
|
32
|
-
});
|
|
33
|
-
it('should create an McpServer with the correct name and version', () => {
|
|
34
|
-
expect(McpServer).toHaveBeenCalledWith({
|
|
35
|
-
name: 'prompt-server',
|
|
36
|
-
version: '1.0.0',
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
it('should register the "fetch_posts" tool', () => {
|
|
40
|
-
expect(mockRegisterTool).toHaveBeenCalledWith('fetch_posts', {
|
|
41
|
-
description: 'Fetches a list of posts from a public API.',
|
|
42
|
-
inputSchema: z.object({}).shape,
|
|
43
|
-
}, expect.any(Function));
|
|
44
|
-
});
|
|
45
|
-
it('should register the "poem-writer" prompt', () => {
|
|
46
|
-
expect(mockRegisterPrompt).toHaveBeenCalledWith('poem-writer', {
|
|
47
|
-
title: 'Poem Writer',
|
|
48
|
-
description: 'Write a nice haiku',
|
|
49
|
-
argsSchema: expect.any(Object),
|
|
50
|
-
}, expect.any(Function));
|
|
51
|
-
});
|
|
52
|
-
it('should connect the server to an StdioServerTransport', () => {
|
|
53
|
-
expect(StdioServerTransport).toHaveBeenCalled();
|
|
54
|
-
expect(mockConnect).toHaveBeenCalledWith(expect.any(StdioServerTransport));
|
|
55
|
-
});
|
|
56
|
-
describe('fetch_posts tool implementation', () => {
|
|
57
|
-
it('should fetch posts and return a formatted response', async () => {
|
|
58
|
-
const mockPosts = [
|
|
59
|
-
{ id: 1, title: 'Post 1' },
|
|
60
|
-
{ id: 2, title: 'Post 2' },
|
|
61
|
-
];
|
|
62
|
-
global.fetch = vi.fn().mockResolvedValue({
|
|
63
|
-
json: vi.fn().mockResolvedValue(mockPosts),
|
|
64
|
-
});
|
|
65
|
-
const toolFn = mockRegisterTool.mock.calls[0][2];
|
|
66
|
-
const result = await toolFn();
|
|
67
|
-
expect(global.fetch).toHaveBeenCalledWith('https://jsonplaceholder.typicode.com/posts');
|
|
68
|
-
expect(result).toEqual({
|
|
69
|
-
content: [
|
|
70
|
-
{
|
|
71
|
-
type: 'text',
|
|
72
|
-
text: JSON.stringify({ posts: mockPosts }),
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('poem-writer prompt implementation', () => {
|
|
79
|
-
it('should generate a prompt with a title', () => {
|
|
80
|
-
const promptFn = mockRegisterPrompt.mock.calls[0][2];
|
|
81
|
-
const result = promptFn({ title: 'My Poem' });
|
|
82
|
-
expect(result).toEqual({
|
|
83
|
-
messages: [
|
|
84
|
-
{
|
|
85
|
-
role: 'user',
|
|
86
|
-
content: {
|
|
87
|
-
type: 'text',
|
|
88
|
-
text: 'Write a haiku called My Poem. Note that a haiku is 5 syllables followed by 7 syllables followed by 5 syllables ',
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
it('should generate a prompt with a title and mood', () => {
|
|
95
|
-
const promptFn = mockRegisterPrompt.mock.calls[0][2];
|
|
96
|
-
const result = promptFn({ title: 'My Poem', mood: 'sad' });
|
|
97
|
-
expect(result).toEqual({
|
|
98
|
-
messages: [
|
|
99
|
-
{
|
|
100
|
-
role: 'user',
|
|
101
|
-
content: {
|
|
102
|
-
type: 'text',
|
|
103
|
-
text: 'Write a haiku with the mood sad called My Poem. Note that a haiku is 5 syllables followed by 7 syllables followed by 5 syllables ',
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
//# sourceMappingURL=example.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.test.js","sourceRoot":"","sources":["example.test.ts"],"names":[],"mappings":"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"}
|
package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright 2026 Google LLC
|
|
5
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
*/
|
|
7
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
8
|
-
import { ToolGroupMessage } from './ToolGroupMessage.js';
|
|
9
|
-
import { renderWithProviders } from '../../../test-utils/render.js';
|
|
10
|
-
import { useToolActions } from '../../contexts/ToolActionsContext.js';
|
|
11
|
-
import { StreamingState, ToolCallStatus, } from '../../types.js';
|
|
12
|
-
import { OverflowProvider } from '../../contexts/OverflowContext.js';
|
|
13
|
-
import { waitFor } from '../../../test-utils/async.js';
|
|
14
|
-
vi.mock('../../contexts/ToolActionsContext.js', async (importOriginal) => {
|
|
15
|
-
const actual = await importOriginal();
|
|
16
|
-
return {
|
|
17
|
-
...actual,
|
|
18
|
-
useToolActions: vi.fn(),
|
|
19
|
-
};
|
|
20
|
-
});
|
|
21
|
-
describe('ToolConfirmationMessage Overflow', () => {
|
|
22
|
-
const mockConfirm = vi.fn();
|
|
23
|
-
vi.mocked(useToolActions).mockReturnValue({
|
|
24
|
-
confirm: mockConfirm,
|
|
25
|
-
cancel: vi.fn(),
|
|
26
|
-
isDiffingEnabled: false,
|
|
27
|
-
});
|
|
28
|
-
const mockConfig = {
|
|
29
|
-
isTrustedFolder: () => true,
|
|
30
|
-
getIdeMode: () => false,
|
|
31
|
-
getMessageBus: () => ({
|
|
32
|
-
subscribe: vi.fn(),
|
|
33
|
-
unsubscribe: vi.fn(),
|
|
34
|
-
publish: vi.fn(),
|
|
35
|
-
}),
|
|
36
|
-
isEventDrivenSchedulerEnabled: () => false,
|
|
37
|
-
getTheme: () => ({
|
|
38
|
-
status: { warning: 'yellow' },
|
|
39
|
-
text: { primary: 'white', secondary: 'gray', link: 'blue' },
|
|
40
|
-
border: { default: 'gray' },
|
|
41
|
-
ui: { symbol: 'cyan' },
|
|
42
|
-
}),
|
|
43
|
-
};
|
|
44
|
-
it('should display "press ctrl-o" hint when content overflows in ToolGroupMessage', async () => {
|
|
45
|
-
// Large diff that will definitely overflow
|
|
46
|
-
const diffLines = ['--- a/test.txt', '+++ b/test.txt', '@@ -1,20 +1,20 @@'];
|
|
47
|
-
for (let i = 0; i < 50; i++) {
|
|
48
|
-
diffLines.push(`+ line ${i + 1}`);
|
|
49
|
-
}
|
|
50
|
-
const fileDiff = diffLines.join('\n');
|
|
51
|
-
const confirmationDetails = {
|
|
52
|
-
type: 'edit',
|
|
53
|
-
title: 'Confirm Edit',
|
|
54
|
-
fileName: 'test.txt',
|
|
55
|
-
filePath: '/test.txt',
|
|
56
|
-
fileDiff,
|
|
57
|
-
originalContent: '',
|
|
58
|
-
newContent: 'lots of lines',
|
|
59
|
-
onConfirm: vi.fn(),
|
|
60
|
-
};
|
|
61
|
-
const toolCalls = [
|
|
62
|
-
{
|
|
63
|
-
callId: 'test-call-id',
|
|
64
|
-
name: 'test-tool',
|
|
65
|
-
description: 'a test tool',
|
|
66
|
-
status: ToolCallStatus.Confirming,
|
|
67
|
-
confirmationDetails,
|
|
68
|
-
resultDisplay: undefined,
|
|
69
|
-
},
|
|
70
|
-
];
|
|
71
|
-
const { lastFrame } = renderWithProviders(_jsx(OverflowProvider, { children: _jsx(ToolGroupMessage, { groupId: 1, toolCalls: toolCalls, availableTerminalHeight: 15, terminalWidth: 80 }) }), {
|
|
72
|
-
config: mockConfig,
|
|
73
|
-
uiState: {
|
|
74
|
-
streamingState: StreamingState.WaitingForConfirmation,
|
|
75
|
-
constrainHeight: true,
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
// ResizeObserver might take a tick
|
|
79
|
-
await waitFor(() => expect(lastFrame()).toContain('Press ctrl-o to show more lines'));
|
|
80
|
-
const frame = lastFrame();
|
|
81
|
-
expect(frame).toBeDefined();
|
|
82
|
-
if (frame) {
|
|
83
|
-
expect(frame).toContain('Press ctrl-o to show more lines');
|
|
84
|
-
// Ensure it's AFTER the bottom border
|
|
85
|
-
const linesOfOutput = frame.split('\n');
|
|
86
|
-
const bottomBorderIndex = linesOfOutput.findLastIndex((l) => l.includes('╰─'));
|
|
87
|
-
const hintIndex = linesOfOutput.findIndex((l) => l.includes('Press ctrl-o to show more lines'));
|
|
88
|
-
expect(hintIndex).toBeGreaterThan(bottomBorderIndex);
|
|
89
|
-
expect(frame).toMatchSnapshot();
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=ToolConfirmationMessageOverflow.test.js.map
|
package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolConfirmationMessageOverflow.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolConfirmationMessageOverflow.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import type { Config, ToolCallRequestInfo, EditorType, CompletedToolCall, ExecutingToolCall, ScheduledToolCall, ValidatingToolCall, WaitingToolCall, CancelledToolCall } from '@google/gemini-cli-core';
|
|
7
|
-
export type ScheduleFn = (request: ToolCallRequestInfo | ToolCallRequestInfo[], signal: AbortSignal) => Promise<void>;
|
|
8
|
-
export type MarkToolsAsSubmittedFn = (callIds: string[]) => void;
|
|
9
|
-
export type CancelAllFn = (signal: AbortSignal) => void;
|
|
10
|
-
export type TrackedScheduledToolCall = ScheduledToolCall & {
|
|
11
|
-
responseSubmittedToGemini?: boolean;
|
|
12
|
-
};
|
|
13
|
-
export type TrackedValidatingToolCall = ValidatingToolCall & {
|
|
14
|
-
responseSubmittedToGemini?: boolean;
|
|
15
|
-
};
|
|
16
|
-
export type TrackedWaitingToolCall = WaitingToolCall & {
|
|
17
|
-
responseSubmittedToGemini?: boolean;
|
|
18
|
-
};
|
|
19
|
-
export type TrackedExecutingToolCall = ExecutingToolCall & {
|
|
20
|
-
responseSubmittedToGemini?: boolean;
|
|
21
|
-
};
|
|
22
|
-
export type TrackedCompletedToolCall = CompletedToolCall & {
|
|
23
|
-
responseSubmittedToGemini?: boolean;
|
|
24
|
-
};
|
|
25
|
-
export type TrackedCancelledToolCall = CancelledToolCall & {
|
|
26
|
-
responseSubmittedToGemini?: boolean;
|
|
27
|
-
};
|
|
28
|
-
export type TrackedToolCall = TrackedScheduledToolCall | TrackedValidatingToolCall | TrackedWaitingToolCall | TrackedExecutingToolCall | TrackedCompletedToolCall | TrackedCancelledToolCall;
|
|
29
|
-
/**
|
|
30
|
-
* Legacy scheduler implementation based on CoreToolScheduler callbacks.
|
|
31
|
-
*
|
|
32
|
-
* This is currently the default implementation used by useGeminiStream.
|
|
33
|
-
* It will be phased out once the event-driven scheduler migration is complete.
|
|
34
|
-
*/
|
|
35
|
-
export declare function useReactToolScheduler(onComplete: (tools: CompletedToolCall[]) => Promise<void>, config: Config, getPreferredEditor: () => EditorType | undefined): [
|
|
36
|
-
TrackedToolCall[],
|
|
37
|
-
ScheduleFn,
|
|
38
|
-
MarkToolsAsSubmittedFn,
|
|
39
|
-
React.Dispatch<React.SetStateAction<TrackedToolCall[]>>,
|
|
40
|
-
CancelAllFn,
|
|
41
|
-
number
|
|
42
|
-
];
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { CoreToolScheduler } from '@google/gemini-cli-core';
|
|
7
|
-
import { useCallback, useState, useMemo, useEffect, useRef } from 'react';
|
|
8
|
-
/**
|
|
9
|
-
* Legacy scheduler implementation based on CoreToolScheduler callbacks.
|
|
10
|
-
*
|
|
11
|
-
* This is currently the default implementation used by useGeminiStream.
|
|
12
|
-
* It will be phased out once the event-driven scheduler migration is complete.
|
|
13
|
-
*/
|
|
14
|
-
export function useReactToolScheduler(onComplete, config, getPreferredEditor) {
|
|
15
|
-
const [toolCallsForDisplay, setToolCallsForDisplay] = useState([]);
|
|
16
|
-
const [lastToolOutputTime, setLastToolOutputTime] = useState(0);
|
|
17
|
-
const onCompleteRef = useRef(onComplete);
|
|
18
|
-
const getPreferredEditorRef = useRef(getPreferredEditor);
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
onCompleteRef.current = onComplete;
|
|
21
|
-
}, [onComplete]);
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
getPreferredEditorRef.current = getPreferredEditor;
|
|
24
|
-
}, [getPreferredEditor]);
|
|
25
|
-
const outputUpdateHandler = useCallback((toolCallId, outputChunk) => {
|
|
26
|
-
setLastToolOutputTime(Date.now());
|
|
27
|
-
setToolCallsForDisplay((prevCalls) => prevCalls.map((tc) => {
|
|
28
|
-
if (tc.request.callId === toolCallId && tc.status === 'executing') {
|
|
29
|
-
const executingTc = tc;
|
|
30
|
-
return { ...executingTc, liveOutput: outputChunk };
|
|
31
|
-
}
|
|
32
|
-
return tc;
|
|
33
|
-
}));
|
|
34
|
-
}, []);
|
|
35
|
-
const allToolCallsCompleteHandler = useCallback(async (completedToolCalls) => {
|
|
36
|
-
await onCompleteRef.current(completedToolCalls);
|
|
37
|
-
}, []);
|
|
38
|
-
const toolCallsUpdateHandler = useCallback((allCoreToolCalls) => {
|
|
39
|
-
setToolCallsForDisplay((prevTrackedCalls) => {
|
|
40
|
-
const prevCallsMap = new Map(prevTrackedCalls.map((c) => [c.request.callId, c]));
|
|
41
|
-
return allCoreToolCalls.map((coreTc) => {
|
|
42
|
-
const existingTrackedCall = prevCallsMap.get(coreTc.request.callId);
|
|
43
|
-
const responseSubmittedToGemini = existingTrackedCall?.responseSubmittedToGemini ?? false;
|
|
44
|
-
if (coreTc.status === 'executing') {
|
|
45
|
-
const liveOutput = existingTrackedCall
|
|
46
|
-
?.liveOutput;
|
|
47
|
-
return {
|
|
48
|
-
...coreTc,
|
|
49
|
-
responseSubmittedToGemini,
|
|
50
|
-
liveOutput,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
else if (coreTc.status === 'success' ||
|
|
54
|
-
coreTc.status === 'error' ||
|
|
55
|
-
coreTc.status === 'cancelled') {
|
|
56
|
-
return {
|
|
57
|
-
...coreTc,
|
|
58
|
-
responseSubmittedToGemini,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
return {
|
|
63
|
-
...coreTc,
|
|
64
|
-
responseSubmittedToGemini,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}, [setToolCallsForDisplay]);
|
|
70
|
-
const stableGetPreferredEditor = useCallback(() => getPreferredEditorRef.current(), []);
|
|
71
|
-
const scheduler = useMemo(() => new CoreToolScheduler({
|
|
72
|
-
outputUpdateHandler,
|
|
73
|
-
onAllToolCallsComplete: allToolCallsCompleteHandler,
|
|
74
|
-
onToolCallsUpdate: toolCallsUpdateHandler,
|
|
75
|
-
getPreferredEditor: stableGetPreferredEditor,
|
|
76
|
-
config,
|
|
77
|
-
}), [
|
|
78
|
-
config,
|
|
79
|
-
outputUpdateHandler,
|
|
80
|
-
allToolCallsCompleteHandler,
|
|
81
|
-
toolCallsUpdateHandler,
|
|
82
|
-
stableGetPreferredEditor,
|
|
83
|
-
]);
|
|
84
|
-
const schedule = useCallback((request, signal) => {
|
|
85
|
-
setToolCallsForDisplay([]);
|
|
86
|
-
return scheduler.schedule(request, signal);
|
|
87
|
-
}, [scheduler, setToolCallsForDisplay]);
|
|
88
|
-
const markToolsAsSubmitted = useCallback((callIdsToMark) => {
|
|
89
|
-
setToolCallsForDisplay((prevCalls) => prevCalls.map((tc) => callIdsToMark.includes(tc.request.callId)
|
|
90
|
-
? { ...tc, responseSubmittedToGemini: true }
|
|
91
|
-
: tc));
|
|
92
|
-
}, []);
|
|
93
|
-
const cancelAllToolCalls = useCallback((signal) => {
|
|
94
|
-
scheduler.cancelAll(signal);
|
|
95
|
-
}, [scheduler]);
|
|
96
|
-
return [
|
|
97
|
-
toolCallsForDisplay,
|
|
98
|
-
schedule,
|
|
99
|
-
markToolsAsSubmitted,
|
|
100
|
-
setToolCallsForDisplay,
|
|
101
|
-
cancelAllToolCalls,
|
|
102
|
-
lastToolOutputTime,
|
|
103
|
-
];
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=useReactToolScheduler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useReactToolScheduler.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useReactToolScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { CoreToolScheduler } from '@google/gemini-cli-core';
|
|
7
|
-
import { renderHook } from '../../test-utils/render.js';
|
|
8
|
-
import { vi, describe, it, expect, beforeEach } from 'vitest';
|
|
9
|
-
import { useReactToolScheduler } from './useReactToolScheduler.js';
|
|
10
|
-
vi.mock('@google/gemini-cli-core', async (importOriginal) => {
|
|
11
|
-
const actual = await importOriginal();
|
|
12
|
-
return {
|
|
13
|
-
...actual,
|
|
14
|
-
CoreToolScheduler: vi.fn(),
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
const mockCoreToolScheduler = vi.mocked(CoreToolScheduler);
|
|
18
|
-
describe('useReactToolScheduler', () => {
|
|
19
|
-
beforeEach(() => {
|
|
20
|
-
vi.clearAllMocks();
|
|
21
|
-
});
|
|
22
|
-
it('only creates one instance of CoreToolScheduler even if props change', () => {
|
|
23
|
-
const onComplete = vi.fn();
|
|
24
|
-
const getPreferredEditor = vi.fn();
|
|
25
|
-
const config = {};
|
|
26
|
-
const { rerender } = renderHook((props) => useReactToolScheduler(props.onComplete, props.config, props.getPreferredEditor), {
|
|
27
|
-
initialProps: {
|
|
28
|
-
onComplete,
|
|
29
|
-
config,
|
|
30
|
-
getPreferredEditor,
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
expect(mockCoreToolScheduler).toHaveBeenCalledTimes(1);
|
|
34
|
-
// Rerender with a new onComplete function
|
|
35
|
-
const newOnComplete = vi.fn();
|
|
36
|
-
rerender({
|
|
37
|
-
onComplete: newOnComplete,
|
|
38
|
-
config,
|
|
39
|
-
getPreferredEditor,
|
|
40
|
-
});
|
|
41
|
-
expect(mockCoreToolScheduler).toHaveBeenCalledTimes(1);
|
|
42
|
-
// Rerender with a new getPreferredEditor function
|
|
43
|
-
const newGetPreferredEditor = vi.fn();
|
|
44
|
-
rerender({
|
|
45
|
-
onComplete: newOnComplete,
|
|
46
|
-
config,
|
|
47
|
-
getPreferredEditor: newGetPreferredEditor,
|
|
48
|
-
});
|
|
49
|
-
expect(mockCoreToolScheduler).toHaveBeenCalledTimes(1);
|
|
50
|
-
rerender({
|
|
51
|
-
onComplete: newOnComplete,
|
|
52
|
-
config,
|
|
53
|
-
getPreferredEditor: newGetPreferredEditor,
|
|
54
|
-
});
|
|
55
|
-
expect(mockCoreToolScheduler).toHaveBeenCalledTimes(1);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=useReactToolScheduler.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useReactToolScheduler.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useReactToolScheduler.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC1D,MAAM,MAAM,GACV,MAAM,cAAc,EAA4C,CAAC;IACnE,OAAO;QACL,GAAG,MAAM;QACT,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC3B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE3D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,EAAY,CAAC;QAE5B,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,qBAAqB,CACnB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,kBAAkB,CACzB,EACH;YACE,YAAY,EAAE;gBACZ,UAAU;gBACV,MAAM;gBACN,kBAAkB;aACnB;SACF,CACF,CAAC;QAEF,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEvD,0CAA0C;QAC1C,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,QAAQ,CAAC;YACP,UAAU,EAAE,aAAa;YACzB,MAAM;YACN,kBAAkB;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEvD,kDAAkD;QAClD,MAAM,qBAAqB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,QAAQ,CAAC;YACP,UAAU,EAAE,aAAa;YACzB,MAAM;YACN,kBAAkB,EAAE,qBAAqB;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEvD,QAAQ,CAAC;YACP,UAAU,EAAE,aAAa;YACzB,MAAM;YACN,kBAAkB,EAAE,qBAAqB;SAC1C,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|