gemcode 0.3.41__tar.gz → 0.3.42__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.41/src/gemcode.egg-info → gemcode-0.3.42}/PKG-INFO +1 -1
- {gemcode-0.3.41 → gemcode-0.3.42}/pyproject.toml +1 -1
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/intent_classifier.py +5 -21
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tui/scrollback.py +3 -4
- {gemcode-0.3.41 → gemcode-0.3.42/src/gemcode.egg-info}/PKG-INFO +1 -1
- {gemcode-0.3.41 → gemcode-0.3.42}/LICENSE +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/MANIFEST.in +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/README.md +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/setup.cfg +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/__main__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/agent.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/audit.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/autocompact.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/callbacks.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/capability_routing.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/cli.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/compaction.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/computer_use/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/computer_use/browser_computer.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/config.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/context_budget.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/context_warning.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/credentials.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/hitl_session.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/hooks.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/interactions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/invoke.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/kairos_daemon.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/limits.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/live_audio_engine.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/logging_config.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/mcp_loader.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/memory/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/memory/embedding_memory_service.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/memory/file_memory_service.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/modality_tools.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/model_errors.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/model_routing.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/openapi_loader.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/paths.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/permissions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/plugins/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/plugins/terminal_hooks_plugin.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/plugins/tool_recovery_plugin.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/pricing.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/prompt_suggestions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/config.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/deps.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/engine.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/stop_hooks.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/token_budget.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/query/transitions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/refine.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/repl_commands.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/repl_slash.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/review_agent.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/session_runtime.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/session_store.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/slash_commands.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/thinking.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tool_prompt_manifest.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tool_registry.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/bash.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/browser.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/edit.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/filesystem.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/notes.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/search.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/shell.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/shell_gate.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/subtask.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/think.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/todo.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools/web.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tools_inspector.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/trust.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tui/input_handler.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tui/spinner.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tui/welcome_banner.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/tui/welcome_rich.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/version.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/vertex.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/web/__init__.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/web/claude_sse_adapter.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/web/terminal_repl.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode/workspace_hints.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode.egg-info/SOURCES.txt +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode.egg-info/dependency_links.txt +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode.egg-info/entry_points.txt +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode.egg-info/requires.txt +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/src/gemcode.egg-info/top_level.txt +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_agent_instruction.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_autocompact.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_capability_routing.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_claude_web_adapter_sse.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_cli_init.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_computer_use_permissions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_context_budget.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_context_warning.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_credentials.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_interactive_permission_ask.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_kairos_scheduler.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_modality_tools.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_model_error_retry.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_model_errors.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_model_routing.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_paths.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_permissions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_prompt_suggestions.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_repl_commands.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_repl_slash.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_slash_commands.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_thinking_config.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_token_budget.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_tool_context_circulation.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_tools.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_tools_inspector.py +0 -0
- {gemcode-0.3.41 → gemcode-0.3.42}/tests/test_workspace_hints.py +0 -0
|
@@ -41,35 +41,19 @@ INTENT_DESCRIPTIONS: dict[str, str] = {
|
|
|
41
41
|
INTENT_ANALYSIS: "Systematic audit or summarisation — thorough tool sweep, then synthesise.",
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
# One-line summaries for the TUI — same visual lane as ∴ Thinking (collapsed)
|
|
45
|
-
INTENT_THINKING_SUMMARY: dict[str, str] = {
|
|
46
|
-
INTENT_GREETING: "Greeting / chitchat — no tools",
|
|
47
|
-
INTENT_CONCEPT: "General knowledge — answer without repo reads if possible",
|
|
48
|
-
INTENT_PROJECT_QUESTION: "About this repo — a few read-only tools, then answer",
|
|
49
|
-
INTENT_ENGINEERING_TASK: "Engineering task — orient → plan → execute → verify",
|
|
50
|
-
INTENT_ANALYSIS: "Deep analysis — systematic read / grep / synthesise",
|
|
51
|
-
}
|
|
52
|
-
|
|
53
44
|
# How the intent was determined (for TUI suffix)
|
|
54
45
|
SOURCE_LOCAL = "local" # obvious greeting / heuristic, no classifier API call
|
|
55
46
|
SOURCE_LLM = "llm" # gemini-2.5-flash-lite classifier
|
|
56
47
|
SOURCE_OFF = "off" # classifier disabled
|
|
57
48
|
|
|
58
49
|
|
|
59
|
-
def
|
|
50
|
+
def show_intentifying_line(source: str) -> bool:
|
|
60
51
|
"""
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
52
|
+
Whether to show the minimal ``∴ Intentifying…`` line in the TUI (same lane
|
|
53
|
+
as ``∴ Thinking``). Hidden only when intent classification is disabled
|
|
54
|
+
(``SOURCE_OFF``).
|
|
64
55
|
"""
|
|
65
|
-
|
|
66
|
-
return None
|
|
67
|
-
summary = INTENT_THINKING_SUMMARY.get(intent, intent)
|
|
68
|
-
if source == SOURCE_LOCAL:
|
|
69
|
-
tag = "instant"
|
|
70
|
-
else:
|
|
71
|
-
tag = "flash-lite classifier"
|
|
72
|
-
return f"{intent} — {summary} · {tag}"
|
|
56
|
+
return source != SOURCE_OFF
|
|
73
57
|
|
|
74
58
|
# ── Prompts ───────────────────────────────────────────────────────────────────
|
|
75
59
|
_CLASSIFY_PROMPT = """\
|
|
@@ -521,15 +521,14 @@ async def run_gemcode_scrollback_tui(
|
|
|
521
521
|
from gemcode.intent_classifier import (
|
|
522
522
|
classify_intent_with_source,
|
|
523
523
|
generate_greeting_reply,
|
|
524
|
-
|
|
524
|
+
show_intentifying_line,
|
|
525
525
|
INTENT_GREETING,
|
|
526
526
|
INTENT_DESCRIPTIONS,
|
|
527
527
|
)
|
|
528
528
|
_intent, _intent_src = await classify_intent_with_source(prompt)
|
|
529
|
-
|
|
530
|
-
if _intent_line:
|
|
529
|
+
if show_intentifying_line(_intent_src):
|
|
531
530
|
print(
|
|
532
|
-
f" \u23bf {ansi.dim}\u2234
|
|
531
|
+
f" \u23bf {ansi.dim}\u2234 Intentifying\u2026{ansi.reset}"
|
|
533
532
|
)
|
|
534
533
|
print("")
|
|
535
534
|
|
|
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
|
|
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
|