gemcode 0.4.9__tar.gz → 0.4.10__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.4.9/src/gemcode.egg-info → gemcode-0.4.10}/PKG-INFO +7 -4
- {gemcode-0.4.9 → gemcode-0.4.10}/README.md +6 -3
- {gemcode-0.4.9 → gemcode-0.4.10}/pyproject.toml +1 -1
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/agent_mesh.py +4 -4
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/repl_commands.py +5 -5
- {gemcode-0.4.9 → gemcode-0.4.10/src/gemcode.egg-info}/PKG-INFO +7 -4
- {gemcode-0.4.9 → gemcode-0.4.10}/LICENSE +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/MANIFEST.in +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/setup.cfg +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/__main__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/a2a_bridge.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/agent.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/agent_habits.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/agent_intelligence.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/agent_triggers.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/audit.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/autocompact.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/automations.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/autotune.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/callbacks.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/capability_routing.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/checkpoints.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/cli.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/codebase_awareness.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/compaction.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/computer_use/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/computer_use/browser_computer.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/config.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/context_budget.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/context_warning.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/credentials.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/curated_memory.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/delegation_learning.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/dynamic_policy.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/evals/harness.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/event_bus.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/fleet_reports.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/hitl_session.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/hooks.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/ide_protocol.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/ide_stdio.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/intent_classifier.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/interactions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/invoke.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/kaira_client.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/kaira_daemon.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/kaira_ipc.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/kaira_job_store.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/learning.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/limits.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/live_audio_engine.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/logging_config.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/mcp_loader.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/memory/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/memory/embedding_memory_service.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/memory/file_memory_service.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/modality_tools.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/model_errors.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/model_routing.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/multimodal_input.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/openapi_loader.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/org.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/output_styles.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/paths.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/permissions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/plugins/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/plugins/terminal_hooks_plugin.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/plugins/tool_recovery_plugin.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/policy_profile.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/pricing.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/prompt_suggestions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/config.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/deps.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/engine.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/stop_hooks.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/token_budget.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query/transitions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/query_sanitizer.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/refine.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/repl_slash.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/review_agent.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/rules.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/self_healing.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/session_runtime.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/session_store.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/session_summariser.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/skills.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/slash_commands.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/thinking.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tool_prompt_manifest.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tool_registry.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tool_result_store.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tool_synthesis.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/automations_tools.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/bash.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/browser.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/compress_memory.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/curated_memory.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/edit.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/filesystem.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/notebook.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/notes.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/org_tools.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/repo_map.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/search.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/shell.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/shell_gate.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/skills.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/subtask.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/tasks.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/think.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/todo.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/user_choice.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/veomem_tools.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/web.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools/web_search.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tools_inspector.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/trust.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tui/input_handler.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tui/scrollback.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tui/spinner.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tui/welcome_banner.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/tui/welcome_rich.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/veomem_bridge.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/version.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/vertex.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/wal.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/web/__init__.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/web/sse_adapter.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/web/terminal_repl.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/web/web_sse_compat.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode/workspace_hints.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode.egg-info/SOURCES.txt +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode.egg-info/dependency_links.txt +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode.egg-info/entry_points.txt +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode.egg-info/requires.txt +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/src/gemcode.egg-info/top_level.txt +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_add_dir.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_agent_habits.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_agent_instruction.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_agent_mesh.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_autocompact.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_automations.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_capability_routing.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_checkpoint_diff_command.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_cli_init.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_compress_memory_tool.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_computer_use_permissions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_context_budget.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_context_warning.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_credentials.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_eval_harness_layout.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_event_bus.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_fleet_reports.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_ide_stdio_attachments.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_interactive_permission_ask.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_kaira_ipc_paths.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_kaira_scheduler.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_modality_tools.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_model_error_retry.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_model_errors.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_model_routing.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_multimodal_input.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_output_styles_and_rules.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_paths.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_permissions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_prompt_suggestions.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_repl_commands.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_repl_slash.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_session_runtime_cache.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_skills.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_slash_commands.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_slash_completion_registry.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_thinking_config.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_token_budget.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_tool_context_circulation.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_tools.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_tools_inspector.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_web_sse_adapter.py +0 -0
- {gemcode-0.4.9 → gemcode-0.4.10}/tests/test_workspace_hints.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gemcode
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.10
|
|
4
4
|
Summary: Local-first coding agent on Google Gemini + ADK
|
|
5
5
|
Author: GemCode Contributors
|
|
6
6
|
License: Apache License
|
|
@@ -205,6 +205,7 @@ GemCode is a local-first, self-evolving coding agent built on Google Gemini and
|
|
|
205
205
|
- **Scheduled habits** — agents wake up on cron/interval to run tests, audits, checks
|
|
206
206
|
- **Cross-machine agents** — expose/consume agents via Google A2A protocol
|
|
207
207
|
- **58 built-in tools** — filesystem, shell, web, search, memory, orchestration, synthesis
|
|
208
|
+
- **Mesh worker sessions** add `agent_dm` / `agent_broadcast` (bus + `fleet_reports.jsonl` inbox formatting)
|
|
208
209
|
- **Full ADK integration** — native sub-agents, transfer_to_agent, output_key, workflow agents
|
|
209
210
|
|
|
210
211
|
All state lives under `.gemcode/` in the project root. No external services required beyond a Gemini API key.
|
|
@@ -218,7 +219,7 @@ All state lives under `.gemcode/` in the project root. No external services requ
|
|
|
218
219
|
| TUI | GemCode terminal UI (scrollback-style; `tui/scrollback.py`) |
|
|
219
220
|
| IDE stdio | Editor integration over JSONL stdin/stdout |
|
|
220
221
|
| Agent Mesh | In-process multi-agent orchestration (automatic) |
|
|
221
|
-
|
|
|
222
|
+
| GemCode Runtime | Optional always-on background scheduler (`gemcode runtime`; alias `gemcode kaira`) |
|
|
222
223
|
| A2A server | Cross-machine agent communication via Google A2A protocol |
|
|
223
224
|
| Live audio (experimental) | Microphone-driven Gemini Live sessions |
|
|
224
225
|
|
|
@@ -368,14 +369,16 @@ gemcode -C .
|
|
|
368
369
|
gemcode -C . --attach ./report.pdf "Summarize this"
|
|
369
370
|
```
|
|
370
371
|
|
|
371
|
-
### Run the scheduler
|
|
372
|
+
### Run the scheduler (background jobs + optional automations)
|
|
372
373
|
```bash
|
|
374
|
+
gemcode runtime -C .
|
|
375
|
+
# alias:
|
|
373
376
|
gemcode kaira -C .
|
|
374
377
|
```
|
|
375
378
|
|
|
376
379
|
### Orchestration (Agent Mesh + Multi-Agent)
|
|
377
380
|
|
|
378
|
-
GemCode includes a built-in multi-agent orchestration system that works automatically
|
|
381
|
+
GemCode includes a built-in multi-agent orchestration system that works automatically in-process (**Agent Mesh**). A separate **`gemcode runtime`** process is optional: use it for a dedicated job queue, IPC attach, and `.gemcode/automations/` schedules.
|
|
379
382
|
|
|
380
383
|
**Key features:**
|
|
381
384
|
- **Native ADK sub-agents** — org members are real ADK sub-agents with `transfer_to_agent` routing
|
|
@@ -12,6 +12,7 @@ GemCode is a local-first, self-evolving coding agent built on Google Gemini and
|
|
|
12
12
|
- **Scheduled habits** — agents wake up on cron/interval to run tests, audits, checks
|
|
13
13
|
- **Cross-machine agents** — expose/consume agents via Google A2A protocol
|
|
14
14
|
- **58 built-in tools** — filesystem, shell, web, search, memory, orchestration, synthesis
|
|
15
|
+
- **Mesh worker sessions** add `agent_dm` / `agent_broadcast` (bus + `fleet_reports.jsonl` inbox formatting)
|
|
15
16
|
- **Full ADK integration** — native sub-agents, transfer_to_agent, output_key, workflow agents
|
|
16
17
|
|
|
17
18
|
All state lives under `.gemcode/` in the project root. No external services required beyond a Gemini API key.
|
|
@@ -25,7 +26,7 @@ All state lives under `.gemcode/` in the project root. No external services requ
|
|
|
25
26
|
| TUI | GemCode terminal UI (scrollback-style; `tui/scrollback.py`) |
|
|
26
27
|
| IDE stdio | Editor integration over JSONL stdin/stdout |
|
|
27
28
|
| Agent Mesh | In-process multi-agent orchestration (automatic) |
|
|
28
|
-
|
|
|
29
|
+
| GemCode Runtime | Optional always-on background scheduler (`gemcode runtime`; alias `gemcode kaira`) |
|
|
29
30
|
| A2A server | Cross-machine agent communication via Google A2A protocol |
|
|
30
31
|
| Live audio (experimental) | Microphone-driven Gemini Live sessions |
|
|
31
32
|
|
|
@@ -175,14 +176,16 @@ gemcode -C .
|
|
|
175
176
|
gemcode -C . --attach ./report.pdf "Summarize this"
|
|
176
177
|
```
|
|
177
178
|
|
|
178
|
-
### Run the scheduler
|
|
179
|
+
### Run the scheduler (background jobs + optional automations)
|
|
179
180
|
```bash
|
|
181
|
+
gemcode runtime -C .
|
|
182
|
+
# alias:
|
|
180
183
|
gemcode kaira -C .
|
|
181
184
|
```
|
|
182
185
|
|
|
183
186
|
### Orchestration (Agent Mesh + Multi-Agent)
|
|
184
187
|
|
|
185
|
-
GemCode includes a built-in multi-agent orchestration system that works automatically
|
|
188
|
+
GemCode includes a built-in multi-agent orchestration system that works automatically in-process (**Agent Mesh**). A separate **`gemcode runtime`** process is optional: use it for a dedicated job queue, IPC attach, and `.gemcode/automations/` schedules.
|
|
186
189
|
|
|
187
190
|
**Key features:**
|
|
188
191
|
- **Native ADK sub-agents** — org members are real ADK sub-agents with `transfer_to_agent` routing
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
In-process Agent Mesh — the orchestration backbone.
|
|
3
3
|
|
|
4
4
|
This module provides a lightweight, always-available agent coordination layer
|
|
5
|
-
that
|
|
5
|
+
that does not require **`gemcode runtime`** for **`org_delegate`**. It manages:
|
|
6
6
|
|
|
7
7
|
1. Live agent instances (real ADK LlmAgents with their own Runners)
|
|
8
|
-
2. Job queue (asyncio priority queue
|
|
8
|
+
2. Job queue (asyncio priority queue on a **dedicated background thread / event loop**)
|
|
9
9
|
3. Event routing (via the in-memory EventBus)
|
|
10
10
|
4. Automatic result reporting (fleet reports + bus messages)
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
Optional **`gemcode runtime`** is a separate fleet-manager process (IPC, automations, stdin queue).
|
|
13
|
+
Slash **`/agent assign`** / **`trigger`** publish `org.assign` over IPC when the socket is up; otherwise the REPL falls back to **`org_delegate`** (this mesh). The mesh also subscribes to **`org.assign`** on the in-process bus for the same payload shape.
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
16
|
from __future__ import annotations
|
|
@@ -232,8 +232,8 @@ SLASH_COMMANDS: list[tuple[str, str]] = [
|
|
|
232
232
|
("attach", "Queue file(s) for next message (PDF, images, …) · /image /file /img · list · clear"),
|
|
233
233
|
("init", "Generate gemcode.md project instructions"),
|
|
234
234
|
# NOTE: /file /image /img are aliases of /attach; keep alias working but do not list them here.
|
|
235
|
-
("kaira", "Background
|
|
236
|
-
("runtime", "
|
|
235
|
+
("kaira", "Background jobs — gemcode runtime (alias: gemcode kaira)"),
|
|
236
|
+
("runtime", "Fleet socket status · gemcode runtime · attach/connect"),
|
|
237
237
|
("bus", "Runtime bus — send/publish lightweight messages over IPC"),
|
|
238
238
|
("inbox", "Bus inbox filters for this UI (to/topics)"),
|
|
239
239
|
("agent", "Create/manage a child agent workspace (folder + registry)"),
|
|
@@ -381,9 +381,9 @@ def slash_help_lines() -> list[str]:
|
|
|
381
381
|
" /mcp MCP status (reads .gemcode/mcp.json; shows loaded toolsets)",
|
|
382
382
|
" /mcp list List configured MCP servers",
|
|
383
383
|
" /mcp reload Rebuild runner to reload MCP toolsets",
|
|
384
|
-
" /automations Local scheduled automations (
|
|
384
|
+
" /automations Local scheduled automations (GemCode Runtime IPC) + heartbeat",
|
|
385
385
|
" /automations list List .gemcode/automations/*.json",
|
|
386
|
-
" /automations run <n> Enqueue an automation now (needs
|
|
386
|
+
" /automations run <n> Enqueue an automation now (needs gemcode runtime IPC)",
|
|
387
387
|
" /afc AFC prompt defaults (avoid afc> prompt)",
|
|
388
388
|
" /eval [llm] Run tools_smoke (+ pytest if tests/ exist); optional LLM goldens",
|
|
389
389
|
" /autotune init <tag> Git branch autotune/<tag> for experiment tracking",
|
|
@@ -433,7 +433,7 @@ def slash_help_lines() -> list[str]:
|
|
|
433
433
|
" Other:",
|
|
434
434
|
" /permissions Show permission / HITL settings",
|
|
435
435
|
" /hooks Show post-turn hook configuration",
|
|
436
|
-
" /kaira
|
|
436
|
+
" /kaira Background jobs CLI help (prefer: gemcode runtime)",
|
|
437
437
|
" /agent Create/manage agent workspaces (new agents) · /agent list|tree|status",
|
|
438
438
|
" /runtime Show runtime socket + how to attach/connect",
|
|
439
439
|
" /bus Send/publish lightweight bus messages over IPC",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gemcode
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.10
|
|
4
4
|
Summary: Local-first coding agent on Google Gemini + ADK
|
|
5
5
|
Author: GemCode Contributors
|
|
6
6
|
License: Apache License
|
|
@@ -205,6 +205,7 @@ GemCode is a local-first, self-evolving coding agent built on Google Gemini and
|
|
|
205
205
|
- **Scheduled habits** — agents wake up on cron/interval to run tests, audits, checks
|
|
206
206
|
- **Cross-machine agents** — expose/consume agents via Google A2A protocol
|
|
207
207
|
- **58 built-in tools** — filesystem, shell, web, search, memory, orchestration, synthesis
|
|
208
|
+
- **Mesh worker sessions** add `agent_dm` / `agent_broadcast` (bus + `fleet_reports.jsonl` inbox formatting)
|
|
208
209
|
- **Full ADK integration** — native sub-agents, transfer_to_agent, output_key, workflow agents
|
|
209
210
|
|
|
210
211
|
All state lives under `.gemcode/` in the project root. No external services required beyond a Gemini API key.
|
|
@@ -218,7 +219,7 @@ All state lives under `.gemcode/` in the project root. No external services requ
|
|
|
218
219
|
| TUI | GemCode terminal UI (scrollback-style; `tui/scrollback.py`) |
|
|
219
220
|
| IDE stdio | Editor integration over JSONL stdin/stdout |
|
|
220
221
|
| Agent Mesh | In-process multi-agent orchestration (automatic) |
|
|
221
|
-
|
|
|
222
|
+
| GemCode Runtime | Optional always-on background scheduler (`gemcode runtime`; alias `gemcode kaira`) |
|
|
222
223
|
| A2A server | Cross-machine agent communication via Google A2A protocol |
|
|
223
224
|
| Live audio (experimental) | Microphone-driven Gemini Live sessions |
|
|
224
225
|
|
|
@@ -368,14 +369,16 @@ gemcode -C .
|
|
|
368
369
|
gemcode -C . --attach ./report.pdf "Summarize this"
|
|
369
370
|
```
|
|
370
371
|
|
|
371
|
-
### Run the scheduler
|
|
372
|
+
### Run the scheduler (background jobs + optional automations)
|
|
372
373
|
```bash
|
|
374
|
+
gemcode runtime -C .
|
|
375
|
+
# alias:
|
|
373
376
|
gemcode kaira -C .
|
|
374
377
|
```
|
|
375
378
|
|
|
376
379
|
### Orchestration (Agent Mesh + Multi-Agent)
|
|
377
380
|
|
|
378
|
-
GemCode includes a built-in multi-agent orchestration system that works automatically
|
|
381
|
+
GemCode includes a built-in multi-agent orchestration system that works automatically in-process (**Agent Mesh**). A separate **`gemcode runtime`** process is optional: use it for a dedicated job queue, IPC attach, and `.gemcode/automations/` schedules.
|
|
379
382
|
|
|
380
383
|
**Key features:**
|
|
381
384
|
- **Native ADK sub-agents** — org members are real ADK sub-agents with `transfer_to_agent` routing
|
|
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
|
|
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
|