gemcode 0.3.121__tar.gz → 0.4.1__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.121/src/gemcode.egg-info → gemcode-0.4.1}/PKG-INFO +127 -43
- gemcode-0.4.1/README.md +356 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/pyproject.toml +2 -2
- gemcode-0.4.1/src/gemcode/a2a_bridge.py +258 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/agent.py +85 -32
- gemcode-0.4.1/src/gemcode/agent_habits.py +413 -0
- gemcode-0.4.1/src/gemcode/agent_intelligence.py +650 -0
- gemcode-0.4.1/src/gemcode/agent_mesh.py +643 -0
- gemcode-0.4.1/src/gemcode/agent_triggers.py +332 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/callbacks.py +34 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/checkpoints.py +19 -1
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/cli.py +1 -1
- gemcode-0.4.1/src/gemcode/codebase_awareness.py +368 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/config.py +5 -2
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/curated_memory.py +1 -1
- gemcode-0.4.1/src/gemcode/delegation_learning.py +245 -0
- gemcode-0.4.1/src/gemcode/event_bus.py +201 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/fleet_reports.py +3 -1
- gemcode-0.4.1/src/gemcode/invoke.py +366 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/kaira_client.py +4 -2
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/kaira_daemon.py +21 -7
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/kaira_ipc.py +67 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/learning.py +1 -1
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/model_routing.py +19 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/plugins/terminal_hooks_plugin.py +1 -1
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/repl_slash.py +36 -13
- gemcode-0.4.1/src/gemcode/self_healing.py +303 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/session_runtime.py +1 -1
- gemcode-0.4.1/src/gemcode/tool_synthesis.py +234 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/__init__.py +66 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/automations_tools.py +3 -3
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/curated_memory.py +1 -1
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/edit.py +1 -1
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/org_tools.py +113 -104
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/subtask.py +21 -10
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tui/scrollback.py +6 -3
- {gemcode-0.3.121 → gemcode-0.4.1/src/gemcode.egg-info}/PKG-INFO +127 -43
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode.egg-info/SOURCES.txt +14 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode.egg-info/requires.txt +1 -1
- gemcode-0.4.1/tests/test_agent_habits.py +113 -0
- gemcode-0.4.1/tests/test_agent_mesh.py +96 -0
- gemcode-0.4.1/tests/test_event_bus.py +151 -0
- gemcode-0.4.1/tests/test_kaira_ipc_paths.py +39 -0
- gemcode-0.3.121/README.md +0 -272
- gemcode-0.3.121/src/gemcode/invoke.py +0 -547
- {gemcode-0.3.121 → gemcode-0.4.1}/LICENSE +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/MANIFEST.in +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/setup.cfg +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/__init__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/__main__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/audit.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/autocompact.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/automations.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/autotune.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/capability_routing.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/compaction.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/computer_use/__init__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/computer_use/browser_computer.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/context_budget.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/context_warning.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/credentials.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/dynamic_policy.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/evals/harness.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/hitl_session.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/hooks.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/ide_protocol.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/ide_stdio.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/intent_classifier.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/interactions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/kaira_job_store.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/limits.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/live_audio_engine.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/logging_config.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/mcp_loader.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/memory/__init__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/memory/embedding_memory_service.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/memory/file_memory_service.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/modality_tools.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/model_errors.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/multimodal_input.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/openapi_loader.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/org.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/output_styles.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/paths.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/permissions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/plugins/__init__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/plugins/tool_recovery_plugin.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/policy_profile.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/pricing.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/prompt_suggestions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/__init__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/config.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/deps.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/engine.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/stop_hooks.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/token_budget.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query/transitions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/query_sanitizer.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/refine.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/repl_commands.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/review_agent.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/rules.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/session_store.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/session_summariser.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/skills.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/slash_commands.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/thinking.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tool_prompt_manifest.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tool_registry.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tool_result_store.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/bash.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/browser.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/compress_memory.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/filesystem.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/notebook.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/notes.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/repo_map.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/search.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/shell.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/shell_gate.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/skills.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/tasks.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/think.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/todo.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/user_choice.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/veomem_tools.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/web.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools/web_search.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tools_inspector.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/trust.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tui/input_handler.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tui/spinner.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tui/welcome_banner.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/tui/welcome_rich.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/veomem_bridge.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/version.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/vertex.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/wal.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/web/__init__.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/web/sse_adapter.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/web/terminal_repl.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/web/web_sse_compat.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode/workspace_hints.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode.egg-info/dependency_links.txt +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode.egg-info/entry_points.txt +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/src/gemcode.egg-info/top_level.txt +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_add_dir.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_agent_instruction.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_autocompact.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_automations.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_capability_routing.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_checkpoint_diff_command.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_cli_init.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_compress_memory_tool.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_computer_use_permissions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_context_budget.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_context_warning.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_credentials.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_eval_harness_layout.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_fleet_reports.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_ide_stdio_attachments.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_interactive_permission_ask.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_kaira_scheduler.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_modality_tools.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_model_error_retry.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_model_errors.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_model_routing.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_multimodal_input.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_output_styles_and_rules.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_paths.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_permissions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_prompt_suggestions.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_repl_commands.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_repl_slash.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_session_runtime_cache.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_skills.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_slash_commands.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_slash_completion_registry.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_thinking_config.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_token_budget.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_tool_context_circulation.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_tools.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_tools_inspector.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_web_sse_adapter.py +0 -0
- {gemcode-0.3.121 → gemcode-0.4.1}/tests/test_workspace_hints.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gemcode
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Local-first coding agent on Google Gemini + ADK
|
|
5
5
|
Author: GemCode Contributors
|
|
6
6
|
License: Apache License
|
|
@@ -175,7 +175,7 @@ Classifier: Topic :: Terminals
|
|
|
175
175
|
Requires-Python: >=3.11
|
|
176
176
|
Description-Content-Type: text/markdown
|
|
177
177
|
License-File: LICENSE
|
|
178
|
-
Requires-Dist: google-adk>=1.0.0
|
|
178
|
+
Requires-Dist: google-adk[a2a]>=1.0.0
|
|
179
179
|
Requires-Dist: google-genai>=1.0.0
|
|
180
180
|
Requires-Dist: python-dotenv>=1.0.0
|
|
181
181
|
Requires-Dist: rich>=13.0.0
|
|
@@ -195,14 +195,18 @@ Dynamic: license-file
|
|
|
195
195
|
This document is the primary user-facing manual for GemCode. It explains the product at a high level and points to the subsystem-specific documentation pages that provide production-grade depth.
|
|
196
196
|
|
|
197
197
|
## What GemCode is
|
|
198
|
-
GemCode is a local-first coding agent built
|
|
199
|
-
- a configuration model
|
|
200
|
-
- a runtime runner
|
|
201
|
-
- a root language-model agent
|
|
202
|
-
- a configurable tool inventory
|
|
203
|
-
- project-local state under `.gemcode/`
|
|
198
|
+
GemCode is a local-first, self-evolving coding agent built on Google Gemini and the Agent Development Kit (ADK). It operates against a chosen project root and provides:
|
|
204
199
|
|
|
205
|
-
|
|
200
|
+
- **Autonomous multi-agent orchestration** — agents delegate, verify, and fix each other's work
|
|
201
|
+
- **Self-healing code** — changes are auto-verified; failures are auto-fixed
|
|
202
|
+
- **Self-evolving tools** — the agent creates new reusable tools from repeated patterns
|
|
203
|
+
- **Progressive learning** — gets smarter with every session (memory, skills, project map)
|
|
204
|
+
- **Scheduled habits** — agents wake up on cron/interval to run tests, audits, checks
|
|
205
|
+
- **Cross-machine agents** — expose/consume agents via Google A2A protocol
|
|
206
|
+
- **58 built-in tools** — filesystem, shell, web, search, memory, orchestration, synthesis
|
|
207
|
+
- **Full ADK integration** — native sub-agents, transfer_to_agent, output_key, workflow agents
|
|
208
|
+
|
|
209
|
+
All state lives under `.gemcode/` in the project root. No external services required beyond a Gemini API key.
|
|
206
210
|
|
|
207
211
|
## Runtime modes
|
|
208
212
|
|
|
@@ -212,8 +216,10 @@ GemCode is designed for repository-native work rather than copy-paste chat workf
|
|
|
212
216
|
| REPL | Stateful terminal interaction |
|
|
213
217
|
| TUI | GemCode terminal UI (scrollback-style; `tui/scrollback.py`) |
|
|
214
218
|
| IDE stdio | Editor integration over JSONL stdin/stdout |
|
|
215
|
-
|
|
|
216
|
-
|
|
|
219
|
+
| Agent Mesh | In-process multi-agent orchestration (automatic) |
|
|
220
|
+
| Kaira daemon | Optional always-on background scheduler |
|
|
221
|
+
| A2A server | Cross-machine agent communication via Google A2A protocol |
|
|
222
|
+
| Live audio (experimental) | Microphone-driven Gemini Live sessions |
|
|
217
223
|
|
|
218
224
|
## Recommended reading order
|
|
219
225
|
|
|
@@ -329,14 +335,20 @@ Reference:
|
|
|
329
335
|
|
|
330
336
|
### Super mode (fully autonomous)
|
|
331
337
|
|
|
332
|
-
Use when you want GemCode to run
|
|
338
|
+
Use when you want GemCode to run with all powers unlocked and zero friction. In super mode:
|
|
339
|
+
- All capabilities auto-enable (memory, web search, agents, habits, triggers)
|
|
340
|
+
- Default org members auto-create (kaira + verifier)
|
|
341
|
+
- Habits auto-generate based on project type
|
|
342
|
+
- Auto-verification runs after risky changes
|
|
343
|
+
- No confirmation prompts for any operation
|
|
333
344
|
|
|
334
345
|
- **CLI:** `gemcode -C . --super "your task"`
|
|
335
346
|
- **Env:** `GEMCODE_SUPER_MODE=1`
|
|
336
|
-
- **REPL/TUI:** `/super` (use `/super off` to clear
|
|
337
|
-
|
|
347
|
+
- **REPL/TUI:** `/super` (use `/super off` to clear)
|
|
348
|
+
|
|
349
|
+
In normal mode, GemCode asks on first run: "Enable autonomous mode? [Y/n]"
|
|
338
350
|
|
|
339
|
-
Details
|
|
351
|
+
Details: [`../docs/orchestration.md`](../docs/orchestration.md).
|
|
340
352
|
|
|
341
353
|
## Common commands
|
|
342
354
|
|
|
@@ -360,34 +372,30 @@ gemcode -C . --attach ./report.pdf "Summarize this"
|
|
|
360
372
|
gemcode kaira -C .
|
|
361
373
|
```
|
|
362
374
|
|
|
363
|
-
### Orchestration (
|
|
364
|
-
|
|
365
|
-
Background completions are visible on the runtime **bus** and also accumulated in **`.gemcode/fleet_reports.jsonl`** for the next manager turn (optional auto-continue). See `../docs/orchestration.md`.
|
|
366
|
-
|
|
367
|
-
Docs:
|
|
368
|
-
- `../docs/orchestration.md`
|
|
369
|
-
|
|
370
|
-
In one terminal:
|
|
375
|
+
### Orchestration (Agent Mesh + Multi-Agent)
|
|
371
376
|
|
|
372
|
-
|
|
373
|
-
gemcode kaira -C .
|
|
374
|
-
```
|
|
377
|
+
GemCode includes a built-in multi-agent orchestration system that works automatically — no separate daemon required.
|
|
375
378
|
|
|
376
|
-
|
|
379
|
+
**Key features:**
|
|
380
|
+
- **Native ADK sub-agents** — org members are real ADK sub-agents with `transfer_to_agent` routing
|
|
381
|
+
- **Agent Mesh** — async background execution with full GemCode sessions per agent
|
|
382
|
+
- **Event Bus** — agents communicate via pub/sub (no Unix sockets needed)
|
|
383
|
+
- **Self-Healing** — closed loop: change → verify → fix → verify → done
|
|
384
|
+
- **Self-Triggers** — agents auto-activate on events (verification, failure recovery)
|
|
385
|
+
- **Tool Synthesis** — agent creates new reusable tools from repeated patterns
|
|
386
|
+
- **Delegation Learning** — remembers which agents succeed at which tasks
|
|
387
|
+
- **A2A Bridge** — expose/consume agents across machines via Google A2A protocol
|
|
377
388
|
|
|
378
|
-
|
|
379
|
-
|
|
389
|
+
Quick example in the REPL:
|
|
390
|
+
```text
|
|
391
|
+
> Analyze the auth module. Delegate security review to the verifier.
|
|
380
392
|
```
|
|
393
|
+
The LLM calls `transfer_to_agent(agent_name='verifier')` → ADK routes natively → verifier runs → result saved to session state.
|
|
381
394
|
|
|
382
|
-
|
|
395
|
+
For background work: `org_delegate("kaira", "run tests")` → mesh runs kaira as a full GemCode session → result flows back via fleet reports.
|
|
383
396
|
|
|
384
|
-
|
|
385
|
-
/
|
|
386
|
-
/org hire verifier "QA / test planner" subagent gemcode "Find risks, propose tests, review plans."
|
|
387
|
-
/org assign verifier "Review the plan and propose tests"
|
|
388
|
-
/kaira jobs
|
|
389
|
-
/kaira follow <job_id_prefix>
|
|
390
|
-
```
|
|
397
|
+
Docs:
|
|
398
|
+
- [`../docs/orchestration.md`](../docs/orchestration.md)
|
|
391
399
|
|
|
392
400
|
### Start the IDE bridge
|
|
393
401
|
```bash
|
|
@@ -420,11 +428,75 @@ Status note:
|
|
|
420
428
|
| `/rules` | Inspect active rules |
|
|
421
429
|
| `/diff` | Show current diff/checkpoint diff |
|
|
422
430
|
| `/rewind` | Restore checkpoints |
|
|
423
|
-
| `/review` | Run a review
|
|
431
|
+
| `/review` | Run a parallel code review pipeline |
|
|
424
432
|
| `/eval` | Run evaluation gates |
|
|
425
433
|
| `/kaira` | Show scheduler usage help |
|
|
426
434
|
| `/super` | Super mode: auto-approve tools, no GemCode HITL · `/super off` |
|
|
427
435
|
|
|
436
|
+
## Orchestration commands
|
|
437
|
+
|
|
438
|
+
| Command | Purpose |
|
|
439
|
+
|---|---|
|
|
440
|
+
| `/agent list` | Show all org members |
|
|
441
|
+
| `/agent tree` | Show org hierarchy |
|
|
442
|
+
| `/agent create` | Create a new agent member |
|
|
443
|
+
| `/agent assign <member> <task>` | Delegate work to a member |
|
|
444
|
+
| `/agent improve <member> <lessons>` | Improve a member's skill |
|
|
445
|
+
|
|
446
|
+
## Intelligence features (automatic)
|
|
447
|
+
|
|
448
|
+
These work without configuration. In super mode, everything is enabled silently. In normal mode, GemCode asks once on first run.
|
|
449
|
+
|
|
450
|
+
| Feature | How it works |
|
|
451
|
+
|---|---|
|
|
452
|
+
| **Codebase awareness** | Builds a persistent understanding of the project from every tool call — file structure, imports/exports, recent changes, learned facts. The agent starts each turn already knowing the project. |
|
|
453
|
+
| **Self-healing** | After file changes, auto-runs tests/lint. If they fail, auto-fixes (up to 2 attempts). Closed loop: change → verify → fix → verify → done. |
|
|
454
|
+
| **Tool synthesis** | When the agent repeats multi-step operations, it can create a reusable tool (bash/python script) stored in `.gemcode/synthesized_tools/`. |
|
|
455
|
+
| **Self-improving skills** | When a delegation succeeds, the member's skill file gets a "Learned pattern" appended. Future invocations benefit from past successes. |
|
|
456
|
+
| **Proactive memory** | After exploring 5+ files or running 3+ commands, key discoveries are auto-saved to curated memory. Future sessions start with this knowledge. |
|
|
457
|
+
| **Impact analysis** | When a file changes, GemCode knows which other files are affected (via import tracking + learned correlations). Self-healing runs only relevant tests. |
|
|
458
|
+
| **Auto-verification** | After 3+ file writes, the verifier agent auto-checks for syntax errors, broken imports, and logic bugs. |
|
|
459
|
+
| **Delegation suggestions** | `suggest_delegate(task)` recommends the best agent based on historical success patterns. |
|
|
460
|
+
| **Capability auto-enable** | If a project consistently uses web search or memory, those capabilities auto-enable in future sessions. |
|
|
461
|
+
|
|
462
|
+
## Tool Synthesis (self-evolving)
|
|
463
|
+
|
|
464
|
+
The agent can create new reusable tools when it detects repeated patterns:
|
|
465
|
+
|
|
466
|
+
```text
|
|
467
|
+
# Create a tool
|
|
468
|
+
synthesize_tool("run-tests", "Run pytest with coverage", "pytest --cov=src -q")
|
|
469
|
+
synthesize_tool("deploy-staging", "Deploy to staging", "git push origin main && ssh staging 'cd app && git pull'")
|
|
470
|
+
|
|
471
|
+
# Use it later
|
|
472
|
+
run_synthesized_tool("run-tests")
|
|
473
|
+
run_synthesized_tool("deploy-staging")
|
|
474
|
+
|
|
475
|
+
# List all synthesized tools
|
|
476
|
+
list_synthesized_tools()
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
Tools persist in `.gemcode/synthesized_tools/` across sessions.
|
|
480
|
+
|
|
481
|
+
## Agent Habits (scheduled tasks)
|
|
482
|
+
|
|
483
|
+
Agents can run recurring tasks on a schedule — no daemon needed, runs inside the main GemCode process.
|
|
484
|
+
|
|
485
|
+
```text
|
|
486
|
+
# From the agent (tools):
|
|
487
|
+
habits_add("test-watch", "kaira", "Run pytest -q and report", every_minutes=30)
|
|
488
|
+
habits_add("nightly-audit", "verifier", "Full security review", daily_at="02:00")
|
|
489
|
+
habits_add("hourly-status", "self", "Summarize recent changes", cron="0 * * * *")
|
|
490
|
+
|
|
491
|
+
# Management:
|
|
492
|
+
habits_list()
|
|
493
|
+
habits_pause("test-watch")
|
|
494
|
+
habits_resume("test-watch")
|
|
495
|
+
habits_remove("test-watch")
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
In super mode, GemCode auto-creates habits based on project type (test-watch for Python, lint-watch for Node).
|
|
499
|
+
|
|
428
500
|
Detailed behavior:
|
|
429
501
|
- [`../docs/cli-and-repl.md`](../docs/cli-and-repl.md)
|
|
430
502
|
|
|
@@ -432,11 +504,23 @@ Detailed behavior:
|
|
|
432
504
|
|
|
433
505
|
| Capability | What it adds |
|
|
434
506
|
|---|---|
|
|
435
|
-
|
|
|
436
|
-
|
|
|
437
|
-
|
|
|
438
|
-
|
|
|
439
|
-
|
|
|
507
|
+
| **Codebase Awareness** | Persistent understanding of the project — structure graph, change journal, insight cache. Compounds over time, zero extra cost |
|
|
508
|
+
| **Agent Mesh** | In-process multi-agent orchestration — each agent is a full GemCode session with own workspace, memory, and persistent history |
|
|
509
|
+
| **Self-Healing** | Closed loop: change → verify → fix → verify → done. Code repairs itself automatically |
|
|
510
|
+
| **Tool Synthesis** | Agent creates new reusable tools at runtime from repeated patterns |
|
|
511
|
+
| **Agent Habits** | Scheduled recurring tasks (cron/interval/daily) — agents wake up and do work autonomously |
|
|
512
|
+
| **Self-Triggers** | Agents auto-activate on events (verification after changes, failure recovery) |
|
|
513
|
+
| **Self-Improving Skills** | Skills evolve — successful patterns are appended automatically |
|
|
514
|
+
| **Delegation Learning** | Remembers which agents succeed at which tasks, suggests optimal routing |
|
|
515
|
+
| **Proactive Memory** | Auto-saves important discoveries to curated memory without being asked |
|
|
516
|
+
| **A2A Bridge** | Cross-machine agent communication via Google A2A protocol |
|
|
517
|
+
| **Event Bus** | In-memory pub/sub for agent-to-agent communication |
|
|
518
|
+
| **Deep research** | Research-focused tool routing and optional dedicated model path |
|
|
519
|
+
| **Embeddings** | Semantic search and optional embedding-backed memory |
|
|
520
|
+
| **Memory** | Retrieval-oriented persistent memory across sessions |
|
|
521
|
+
| **Browser/computer use** | Playwright-backed browser automation and inspection |
|
|
522
|
+
| **Checkpoints** | File mutations are reversible — undo any agent edit |
|
|
523
|
+
| **Live audio** | Gemini Live microphone sessions (experimental) |
|
|
440
524
|
|
|
441
525
|
Detailed behavior:
|
|
442
526
|
- [`../docs/capabilities.md`](../docs/capabilities.md)
|
gemcode-0.4.1/README.md
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
# GemCode User Manual
|
|
2
|
+
|
|
3
|
+
This document is the primary user-facing manual for GemCode. It explains the product at a high level and points to the subsystem-specific documentation pages that provide production-grade depth.
|
|
4
|
+
|
|
5
|
+
## What GemCode is
|
|
6
|
+
GemCode is a local-first, self-evolving coding agent built on Google Gemini and the Agent Development Kit (ADK). It operates against a chosen project root and provides:
|
|
7
|
+
|
|
8
|
+
- **Autonomous multi-agent orchestration** — agents delegate, verify, and fix each other's work
|
|
9
|
+
- **Self-healing code** — changes are auto-verified; failures are auto-fixed
|
|
10
|
+
- **Self-evolving tools** — the agent creates new reusable tools from repeated patterns
|
|
11
|
+
- **Progressive learning** — gets smarter with every session (memory, skills, project map)
|
|
12
|
+
- **Scheduled habits** — agents wake up on cron/interval to run tests, audits, checks
|
|
13
|
+
- **Cross-machine agents** — expose/consume agents via Google A2A protocol
|
|
14
|
+
- **58 built-in tools** — filesystem, shell, web, search, memory, orchestration, synthesis
|
|
15
|
+
- **Full ADK integration** — native sub-agents, transfer_to_agent, output_key, workflow agents
|
|
16
|
+
|
|
17
|
+
All state lives under `.gemcode/` in the project root. No external services required beyond a Gemini API key.
|
|
18
|
+
|
|
19
|
+
## Runtime modes
|
|
20
|
+
|
|
21
|
+
| Mode | Purpose |
|
|
22
|
+
|---|---|
|
|
23
|
+
| One-shot CLI | Single prompt/response runs |
|
|
24
|
+
| REPL | Stateful terminal interaction |
|
|
25
|
+
| TUI | GemCode terminal UI (scrollback-style; `tui/scrollback.py`) |
|
|
26
|
+
| IDE stdio | Editor integration over JSONL stdin/stdout |
|
|
27
|
+
| Agent Mesh | In-process multi-agent orchestration (automatic) |
|
|
28
|
+
| Kaira daemon | Optional always-on background scheduler |
|
|
29
|
+
| A2A server | Cross-machine agent communication via Google A2A protocol |
|
|
30
|
+
| Live audio (experimental) | Microphone-driven Gemini Live sessions |
|
|
31
|
+
|
|
32
|
+
## Recommended reading order
|
|
33
|
+
|
|
34
|
+
### 1. Setup and first use
|
|
35
|
+
- [`../docs/install.md`](../docs/install.md)
|
|
36
|
+
|
|
37
|
+
### 2. Interactive use
|
|
38
|
+
- [`../docs/cli-and-repl.md`](../docs/cli-and-repl.md)
|
|
39
|
+
|
|
40
|
+
### 3. Configuration and local assets
|
|
41
|
+
- [`../docs/configuration.md`](../docs/configuration.md)
|
|
42
|
+
|
|
43
|
+
### 4. Tooling and safety model
|
|
44
|
+
- [`../docs/tools-and-permissions.md`](../docs/tools-and-permissions.md)
|
|
45
|
+
|
|
46
|
+
### 5. Optional capability bundles
|
|
47
|
+
- [`../docs/capabilities.md`](../docs/capabilities.md)
|
|
48
|
+
|
|
49
|
+
### 6. Integrations
|
|
50
|
+
- [`../docs/integrations.md`](../docs/integrations.md)
|
|
51
|
+
- [`../docs/web-ui-contract.md`](../docs/web-ui-contract.md)
|
|
52
|
+
|
|
53
|
+
### 7. Operations and release
|
|
54
|
+
- [`../docs/operations.md`](../docs/operations.md)
|
|
55
|
+
|
|
56
|
+
### 8. `.gemcode/` state reference
|
|
57
|
+
- [`../docs/reference-gemcode-state.md`](../docs/reference-gemcode-state.md)
|
|
58
|
+
|
|
59
|
+
### 9. Architecture deep dive
|
|
60
|
+
- [`../docs/architecture.md`](../docs/architecture.md)
|
|
61
|
+
|
|
62
|
+
## Quickstart
|
|
63
|
+
|
|
64
|
+
### Install
|
|
65
|
+
```bash
|
|
66
|
+
cd gemcode
|
|
67
|
+
python3 -m venv .venv
|
|
68
|
+
source .venv/bin/activate
|
|
69
|
+
python3 -m pip install -e ".[dev]"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Set your API key
|
|
73
|
+
```bash
|
|
74
|
+
export GOOGLE_API_KEY="your-key"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Start GemCode against a project
|
|
78
|
+
```bash
|
|
79
|
+
gemcode -C /path/to/project
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### One-shot run
|
|
83
|
+
```bash
|
|
84
|
+
gemcode -C /path/to/project "Explain this repository"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Mutating run
|
|
88
|
+
```bash
|
|
89
|
+
gemcode -C /path/to/project --yes "Fix the failing tests"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Essential concepts
|
|
93
|
+
|
|
94
|
+
### Project root
|
|
95
|
+
Every GemCode run is anchored to a project root. This determines:
|
|
96
|
+
- what files are visible
|
|
97
|
+
- where `.gemcode/` state is stored
|
|
98
|
+
- what instruction files are loaded
|
|
99
|
+
- which repo-local assets are active
|
|
100
|
+
|
|
101
|
+
### `.gemcode/`
|
|
102
|
+
GemCode stores project-local state under `.gemcode/`, including:
|
|
103
|
+
- sessions
|
|
104
|
+
- logs
|
|
105
|
+
- artifacts
|
|
106
|
+
- memory
|
|
107
|
+
- skills
|
|
108
|
+
- rules
|
|
109
|
+
- output styles
|
|
110
|
+
- hooks
|
|
111
|
+
- integration config
|
|
112
|
+
|
|
113
|
+
Reference:
|
|
114
|
+
- [`../docs/reference-gemcode-state.md`](../docs/reference-gemcode-state.md)
|
|
115
|
+
|
|
116
|
+
### Project instruction files
|
|
117
|
+
GemCode supports project instruction files loaded by the agent layer. The live code treats `gemcode.md` as the primary project instruction file and also supports legacy instruction filenames for compatibility.
|
|
118
|
+
|
|
119
|
+
Reference:
|
|
120
|
+
- [`../docs/configuration.md`](../docs/configuration.md)
|
|
121
|
+
|
|
122
|
+
### GemSkills
|
|
123
|
+
GemSkills are reusable prompt playbooks stored under:
|
|
124
|
+
- `.gemcode/skills/<name>/SKILL.md`
|
|
125
|
+
- `~/.gemcode/skills/<name>/SKILL.md`
|
|
126
|
+
|
|
127
|
+
They support:
|
|
128
|
+
- creation
|
|
129
|
+
- session loading
|
|
130
|
+
- one-shot invocation
|
|
131
|
+
- iterative editing
|
|
132
|
+
|
|
133
|
+
### Permissions
|
|
134
|
+
GemCode combines:
|
|
135
|
+
- workspace trust
|
|
136
|
+
- permission mode
|
|
137
|
+
- allow/deny settings
|
|
138
|
+
- blanket approval flags
|
|
139
|
+
- interactive approval prompts
|
|
140
|
+
|
|
141
|
+
Reference:
|
|
142
|
+
- [`../docs/tools-and-permissions.md`](../docs/tools-and-permissions.md)
|
|
143
|
+
|
|
144
|
+
### Super mode (fully autonomous)
|
|
145
|
+
|
|
146
|
+
Use when you want GemCode to run with all powers unlocked and zero friction. In super mode:
|
|
147
|
+
- All capabilities auto-enable (memory, web search, agents, habits, triggers)
|
|
148
|
+
- Default org members auto-create (kaira + verifier)
|
|
149
|
+
- Habits auto-generate based on project type
|
|
150
|
+
- Auto-verification runs after risky changes
|
|
151
|
+
- No confirmation prompts for any operation
|
|
152
|
+
|
|
153
|
+
- **CLI:** `gemcode -C . --super "your task"`
|
|
154
|
+
- **Env:** `GEMCODE_SUPER_MODE=1`
|
|
155
|
+
- **REPL/TUI:** `/super` (use `/super off` to clear)
|
|
156
|
+
|
|
157
|
+
In normal mode, GemCode asks on first run: "Enable autonomous mode? [Y/n]"
|
|
158
|
+
|
|
159
|
+
Details: [`../docs/orchestration.md`](../docs/orchestration.md).
|
|
160
|
+
|
|
161
|
+
## Common commands
|
|
162
|
+
|
|
163
|
+
### Inspect models
|
|
164
|
+
```bash
|
|
165
|
+
gemcode models
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Start the REPL
|
|
169
|
+
```bash
|
|
170
|
+
gemcode -C .
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Attach a file to a one-shot turn
|
|
174
|
+
```bash
|
|
175
|
+
gemcode -C . --attach ./report.pdf "Summarize this"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Run the scheduler
|
|
179
|
+
```bash
|
|
180
|
+
gemcode kaira -C .
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Orchestration (Agent Mesh + Multi-Agent)
|
|
184
|
+
|
|
185
|
+
GemCode includes a built-in multi-agent orchestration system that works automatically — no separate daemon required.
|
|
186
|
+
|
|
187
|
+
**Key features:**
|
|
188
|
+
- **Native ADK sub-agents** — org members are real ADK sub-agents with `transfer_to_agent` routing
|
|
189
|
+
- **Agent Mesh** — async background execution with full GemCode sessions per agent
|
|
190
|
+
- **Event Bus** — agents communicate via pub/sub (no Unix sockets needed)
|
|
191
|
+
- **Self-Healing** — closed loop: change → verify → fix → verify → done
|
|
192
|
+
- **Self-Triggers** — agents auto-activate on events (verification, failure recovery)
|
|
193
|
+
- **Tool Synthesis** — agent creates new reusable tools from repeated patterns
|
|
194
|
+
- **Delegation Learning** — remembers which agents succeed at which tasks
|
|
195
|
+
- **A2A Bridge** — expose/consume agents across machines via Google A2A protocol
|
|
196
|
+
|
|
197
|
+
Quick example in the REPL:
|
|
198
|
+
```text
|
|
199
|
+
> Analyze the auth module. Delegate security review to the verifier.
|
|
200
|
+
```
|
|
201
|
+
The LLM calls `transfer_to_agent(agent_name='verifier')` → ADK routes natively → verifier runs → result saved to session state.
|
|
202
|
+
|
|
203
|
+
For background work: `org_delegate("kaira", "run tests")` → mesh runs kaira as a full GemCode session → result flows back via fleet reports.
|
|
204
|
+
|
|
205
|
+
Docs:
|
|
206
|
+
- [`../docs/orchestration.md`](../docs/orchestration.md)
|
|
207
|
+
|
|
208
|
+
### Start the IDE bridge
|
|
209
|
+
```bash
|
|
210
|
+
gemcode ide --stdio
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Run live audio
|
|
214
|
+
```bash
|
|
215
|
+
gemcode live-audio -C .
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Status note:
|
|
219
|
+
- `live-audio` is currently **experimental** and may fail due to upstream Gemini Live availability/reliability (for example transient `1011` internal errors).
|
|
220
|
+
- Treat this as **future scope** for production workflows.
|
|
221
|
+
|
|
222
|
+
## REPL command highlights
|
|
223
|
+
|
|
224
|
+
| Command | Purpose |
|
|
225
|
+
|---|---|
|
|
226
|
+
| `/help` | Command summary |
|
|
227
|
+
| `/status` | Model, capabilities, context, and runtime telemetry |
|
|
228
|
+
| `/context` | Context pressure and prompt budget telemetry |
|
|
229
|
+
| `/cost` | Token and cost estimate summary |
|
|
230
|
+
| `/attach` | Queue file attachments for the next turn |
|
|
231
|
+
| `/trust` | Manage workspace trust |
|
|
232
|
+
| `/init` | Generate project instructions |
|
|
233
|
+
| `/skills` | List skills |
|
|
234
|
+
| `/gemskill` | Load a skill into the session prompt |
|
|
235
|
+
| `/style` | Set session output style |
|
|
236
|
+
| `/rules` | Inspect active rules |
|
|
237
|
+
| `/diff` | Show current diff/checkpoint diff |
|
|
238
|
+
| `/rewind` | Restore checkpoints |
|
|
239
|
+
| `/review` | Run a parallel code review pipeline |
|
|
240
|
+
| `/eval` | Run evaluation gates |
|
|
241
|
+
| `/kaira` | Show scheduler usage help |
|
|
242
|
+
| `/super` | Super mode: auto-approve tools, no GemCode HITL · `/super off` |
|
|
243
|
+
|
|
244
|
+
## Orchestration commands
|
|
245
|
+
|
|
246
|
+
| Command | Purpose |
|
|
247
|
+
|---|---|
|
|
248
|
+
| `/agent list` | Show all org members |
|
|
249
|
+
| `/agent tree` | Show org hierarchy |
|
|
250
|
+
| `/agent create` | Create a new agent member |
|
|
251
|
+
| `/agent assign <member> <task>` | Delegate work to a member |
|
|
252
|
+
| `/agent improve <member> <lessons>` | Improve a member's skill |
|
|
253
|
+
|
|
254
|
+
## Intelligence features (automatic)
|
|
255
|
+
|
|
256
|
+
These work without configuration. In super mode, everything is enabled silently. In normal mode, GemCode asks once on first run.
|
|
257
|
+
|
|
258
|
+
| Feature | How it works |
|
|
259
|
+
|---|---|
|
|
260
|
+
| **Codebase awareness** | Builds a persistent understanding of the project from every tool call — file structure, imports/exports, recent changes, learned facts. The agent starts each turn already knowing the project. |
|
|
261
|
+
| **Self-healing** | After file changes, auto-runs tests/lint. If they fail, auto-fixes (up to 2 attempts). Closed loop: change → verify → fix → verify → done. |
|
|
262
|
+
| **Tool synthesis** | When the agent repeats multi-step operations, it can create a reusable tool (bash/python script) stored in `.gemcode/synthesized_tools/`. |
|
|
263
|
+
| **Self-improving skills** | When a delegation succeeds, the member's skill file gets a "Learned pattern" appended. Future invocations benefit from past successes. |
|
|
264
|
+
| **Proactive memory** | After exploring 5+ files or running 3+ commands, key discoveries are auto-saved to curated memory. Future sessions start with this knowledge. |
|
|
265
|
+
| **Impact analysis** | When a file changes, GemCode knows which other files are affected (via import tracking + learned correlations). Self-healing runs only relevant tests. |
|
|
266
|
+
| **Auto-verification** | After 3+ file writes, the verifier agent auto-checks for syntax errors, broken imports, and logic bugs. |
|
|
267
|
+
| **Delegation suggestions** | `suggest_delegate(task)` recommends the best agent based on historical success patterns. |
|
|
268
|
+
| **Capability auto-enable** | If a project consistently uses web search or memory, those capabilities auto-enable in future sessions. |
|
|
269
|
+
|
|
270
|
+
## Tool Synthesis (self-evolving)
|
|
271
|
+
|
|
272
|
+
The agent can create new reusable tools when it detects repeated patterns:
|
|
273
|
+
|
|
274
|
+
```text
|
|
275
|
+
# Create a tool
|
|
276
|
+
synthesize_tool("run-tests", "Run pytest with coverage", "pytest --cov=src -q")
|
|
277
|
+
synthesize_tool("deploy-staging", "Deploy to staging", "git push origin main && ssh staging 'cd app && git pull'")
|
|
278
|
+
|
|
279
|
+
# Use it later
|
|
280
|
+
run_synthesized_tool("run-tests")
|
|
281
|
+
run_synthesized_tool("deploy-staging")
|
|
282
|
+
|
|
283
|
+
# List all synthesized tools
|
|
284
|
+
list_synthesized_tools()
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Tools persist in `.gemcode/synthesized_tools/` across sessions.
|
|
288
|
+
|
|
289
|
+
## Agent Habits (scheduled tasks)
|
|
290
|
+
|
|
291
|
+
Agents can run recurring tasks on a schedule — no daemon needed, runs inside the main GemCode process.
|
|
292
|
+
|
|
293
|
+
```text
|
|
294
|
+
# From the agent (tools):
|
|
295
|
+
habits_add("test-watch", "kaira", "Run pytest -q and report", every_minutes=30)
|
|
296
|
+
habits_add("nightly-audit", "verifier", "Full security review", daily_at="02:00")
|
|
297
|
+
habits_add("hourly-status", "self", "Summarize recent changes", cron="0 * * * *")
|
|
298
|
+
|
|
299
|
+
# Management:
|
|
300
|
+
habits_list()
|
|
301
|
+
habits_pause("test-watch")
|
|
302
|
+
habits_resume("test-watch")
|
|
303
|
+
habits_remove("test-watch")
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
In super mode, GemCode auto-creates habits based on project type (test-watch for Python, lint-watch for Node).
|
|
307
|
+
|
|
308
|
+
Detailed behavior:
|
|
309
|
+
- [`../docs/cli-and-repl.md`](../docs/cli-and-repl.md)
|
|
310
|
+
|
|
311
|
+
## Capability overview
|
|
312
|
+
|
|
313
|
+
| Capability | What it adds |
|
|
314
|
+
|---|---|
|
|
315
|
+
| **Codebase Awareness** | Persistent understanding of the project — structure graph, change journal, insight cache. Compounds over time, zero extra cost |
|
|
316
|
+
| **Agent Mesh** | In-process multi-agent orchestration — each agent is a full GemCode session with own workspace, memory, and persistent history |
|
|
317
|
+
| **Self-Healing** | Closed loop: change → verify → fix → verify → done. Code repairs itself automatically |
|
|
318
|
+
| **Tool Synthesis** | Agent creates new reusable tools at runtime from repeated patterns |
|
|
319
|
+
| **Agent Habits** | Scheduled recurring tasks (cron/interval/daily) — agents wake up and do work autonomously |
|
|
320
|
+
| **Self-Triggers** | Agents auto-activate on events (verification after changes, failure recovery) |
|
|
321
|
+
| **Self-Improving Skills** | Skills evolve — successful patterns are appended automatically |
|
|
322
|
+
| **Delegation Learning** | Remembers which agents succeed at which tasks, suggests optimal routing |
|
|
323
|
+
| **Proactive Memory** | Auto-saves important discoveries to curated memory without being asked |
|
|
324
|
+
| **A2A Bridge** | Cross-machine agent communication via Google A2A protocol |
|
|
325
|
+
| **Event Bus** | In-memory pub/sub for agent-to-agent communication |
|
|
326
|
+
| **Deep research** | Research-focused tool routing and optional dedicated model path |
|
|
327
|
+
| **Embeddings** | Semantic search and optional embedding-backed memory |
|
|
328
|
+
| **Memory** | Retrieval-oriented persistent memory across sessions |
|
|
329
|
+
| **Browser/computer use** | Playwright-backed browser automation and inspection |
|
|
330
|
+
| **Checkpoints** | File mutations are reversible — undo any agent edit |
|
|
331
|
+
| **Live audio** | Gemini Live microphone sessions (experimental) |
|
|
332
|
+
|
|
333
|
+
Detailed behavior:
|
|
334
|
+
- [`../docs/capabilities.md`](../docs/capabilities.md)
|
|
335
|
+
|
|
336
|
+
## Integrations overview
|
|
337
|
+
|
|
338
|
+
| Integration | Entry point |
|
|
339
|
+
|---|---|
|
|
340
|
+
| IDE bridge | `gemcode ide --stdio` |
|
|
341
|
+
| Web/SSE | documented in `docs/web-ui-contract.md` |
|
|
342
|
+
| MCP | `.gemcode/mcp.json` |
|
|
343
|
+
| OpenAPI | `.gemcode/openapi/` |
|
|
344
|
+
|
|
345
|
+
Detailed behavior:
|
|
346
|
+
- [`../docs/integrations.md`](../docs/integrations.md)
|
|
347
|
+
|
|
348
|
+
## Release and maintenance
|
|
349
|
+
Package version lives in:
|
|
350
|
+
- `gemcode/pyproject.toml`
|
|
351
|
+
|
|
352
|
+
Release operations, troubleshooting, and PyPI workflow are documented in:
|
|
353
|
+
- [`../docs/operations.md`](../docs/operations.md)
|
|
354
|
+
|
|
355
|
+
## Documentation policy
|
|
356
|
+
This manual is intentionally concise. The detailed production documentation lives under `docs/` and is organized by subsystem and operator concern so it can stay accurate as GemCode evolves.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "gemcode"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.4.1"
|
|
8
8
|
description = "Local-first coding agent on Google Gemini + ADK"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -27,7 +27,7 @@ classifiers = [
|
|
|
27
27
|
"Topic :: Terminals",
|
|
28
28
|
]
|
|
29
29
|
dependencies = [
|
|
30
|
-
"google-adk>=1.0.0",
|
|
30
|
+
"google-adk[a2a]>=1.0.0",
|
|
31
31
|
"google-genai>=1.0.0",
|
|
32
32
|
"python-dotenv>=1.0.0",
|
|
33
33
|
"rich>=13.0.0",
|