gemcode 0.3.7__tar.gz → 0.3.8__tar.gz
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.
- {gemcode-0.3.7/src/gemcode.egg-info → gemcode-0.3.8}/PKG-INFO +1 -1
- {gemcode-0.3.7 → gemcode-0.3.8}/pyproject.toml +1 -1
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/agent.py +1 -1
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/repl_commands.py +1 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/repl_slash.py +33 -0
- {gemcode-0.3.7 → gemcode-0.3.8/src/gemcode.egg-info}/PKG-INFO +1 -1
- {gemcode-0.3.7 → gemcode-0.3.8}/LICENSE +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/MANIFEST.in +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/README.md +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/setup.cfg +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/__main__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/audit.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/autocompact.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/callbacks.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/capability_routing.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/cli.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/compaction.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/computer_use/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/computer_use/browser_computer.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/config.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/context_budget.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/context_warning.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/credentials.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/hitl_session.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/interactions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/invoke.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/kairos_daemon.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/limits.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/live_audio_engine.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/logging_config.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/mcp_loader.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/memory/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/memory/embedding_memory_service.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/memory/file_memory_service.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/modality_tools.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/model_errors.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/model_routing.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/paths.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/permissions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/plugins/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/plugins/terminal_hooks_plugin.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/plugins/tool_recovery_plugin.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/prompt_suggestions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/config.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/deps.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/engine.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/stop_hooks.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/token_budget.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/query/transitions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/session_runtime.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/slash_commands.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/thinking.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tool_prompt_manifest.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tool_registry.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/edit.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/filesystem.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/search.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/shell.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/shell_gate.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools/todo.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tools_inspector.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/trust.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tui/app.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/tui/scrollback.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/version.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/vertex.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/web/__init__.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/web/claude_sse_adapter.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/web/terminal_repl.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode/workspace_hints.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode.egg-info/SOURCES.txt +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode.egg-info/dependency_links.txt +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode.egg-info/entry_points.txt +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode.egg-info/requires.txt +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/src/gemcode.egg-info/top_level.txt +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_agent_instruction.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_autocompact.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_capability_routing.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_claude_web_adapter_sse.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_cli_init.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_computer_use_permissions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_context_budget.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_context_warning.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_credentials.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_interactive_permission_ask.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_kairos_scheduler.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_modality_tools.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_model_error_retry.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_model_errors.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_model_routing.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_paths.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_permissions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_prompt_suggestions.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_repl_commands.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_repl_slash.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_slash_commands.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_thinking_config.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_token_budget.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_tool_context_circulation.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_tools.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_tools_inspector.py +0 -0
- {gemcode-0.3.7 → gemcode-0.3.8}/tests/test_workspace_hints.py +0 -0
|
@@ -65,7 +65,7 @@ def _build_runtime_facts(cfg: GemCodeConfig) -> str:
|
|
|
65
65
|
model = (getattr(cfg, "model", None) or "").strip() or "(default)"
|
|
66
66
|
return f"""## Runtime facts (authoritative for this session)
|
|
67
67
|
- **Project root** — every filesystem tool path is relative to: `{root}`
|
|
68
|
-
- **Model id in use:** `{model}`.
|
|
68
|
+
- **Model id in use:** `{model}`. In this TUI/REPL you can override it for subsequent turns with `/model use <id>` (use `/model list` to browse IDs). For a full restart you can still use `--model <id>` or env `GEMCODE_MODEL`.
|
|
69
69
|
- **UI banner** phrases such as "GemCode Pro" are **terminal marketing**, not a separate API tier or model you enable from chat.
|
|
70
70
|
- **Env toggles** (`GEMCODE_ENABLE_COMPUTER_USE`, `GEMCODE_MODEL`, etc.) affect only the **OS process** that launched `gemcode`. Pasting `VAR=1` in chat does **not** reconfigure a running session—tell the user to export in their shell, use project `.env`, or restart the CLI.
|
|
71
71
|
- **Working in subfolders** — use tools: e.g. `list_directory("Desktop")`, `glob_files("**/query.ts")`, `read_file("testing/ai-edtech-app/src/app/page.tsx")`, or `run_command` with `cwd_subdir`. Never claim the sandbox cannot reach a subpath unless a tool returned an explicit error."""
|
|
@@ -175,6 +175,7 @@ def slash_help_lines() -> list[str]:
|
|
|
175
175
|
" /doctor Environment sanity check",
|
|
176
176
|
" /model Show model routing info",
|
|
177
177
|
" /model use <id> Override model for this REPL session",
|
|
178
|
+
" /model list List available Gemini model IDs",
|
|
178
179
|
" /permissions Show permission / HITL settings",
|
|
179
180
|
" /memory Show persistent memory settings",
|
|
180
181
|
" /hooks Show post-turn hook configuration",
|
|
@@ -104,6 +104,39 @@ async def process_repl_slash(
|
|
|
104
104
|
out()
|
|
105
105
|
return ReplSlashResult(skip_model_turn=True)
|
|
106
106
|
|
|
107
|
+
if sub in ("list", "ls", "show"):
|
|
108
|
+
# Best-effort list: query Gemini via the same API used by GemCode.
|
|
109
|
+
show_all = "--show-all" in parts or "--show-all" in args
|
|
110
|
+
try:
|
|
111
|
+
from gemcode.config import load_cli_environment
|
|
112
|
+
|
|
113
|
+
load_cli_environment()
|
|
114
|
+
except Exception:
|
|
115
|
+
pass
|
|
116
|
+
from gemcode.cli import require_google_api_key
|
|
117
|
+
|
|
118
|
+
require_google_api_key()
|
|
119
|
+
from google.genai import Client
|
|
120
|
+
|
|
121
|
+
client = Client(api_key=os.environ["GOOGLE_API_KEY"])
|
|
122
|
+
models = client.models.list()
|
|
123
|
+
out("Available models:")
|
|
124
|
+
for m in models:
|
|
125
|
+
name = getattr(m, "name", None)
|
|
126
|
+
actions = getattr(m, "supported_actions", None)
|
|
127
|
+
if not name:
|
|
128
|
+
continue
|
|
129
|
+
if not show_all and actions and isinstance(actions, list):
|
|
130
|
+
# Keep only models that support generateContent-style generation.
|
|
131
|
+
if "generateContent" not in actions:
|
|
132
|
+
continue
|
|
133
|
+
if actions and isinstance(actions, list):
|
|
134
|
+
out(f" {name}\t{','.join(actions)}")
|
|
135
|
+
else:
|
|
136
|
+
out(f" {name}")
|
|
137
|
+
out()
|
|
138
|
+
return ReplSlashResult(skip_model_turn=True)
|
|
139
|
+
|
|
107
140
|
# Fallback: show current routing info.
|
|
108
141
|
out("\n".join(format_model_lines(cfg)))
|
|
109
142
|
out("Tip: /model use <model-id> to override for this session.")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|