gobby 0.2.9__py3-none-any.whl → 0.2.11__py3-none-any.whl
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.
- gobby/__init__.py +1 -1
- gobby/adapters/__init__.py +6 -0
- gobby/adapters/base.py +11 -2
- gobby/adapters/claude_code.py +2 -2
- gobby/adapters/codex_impl/adapter.py +38 -43
- gobby/adapters/copilot.py +324 -0
- gobby/adapters/cursor.py +373 -0
- gobby/adapters/gemini.py +2 -26
- gobby/adapters/windsurf.py +359 -0
- gobby/agents/definitions.py +162 -2
- gobby/agents/isolation.py +33 -1
- gobby/agents/pty_reader.py +192 -0
- gobby/agents/registry.py +10 -1
- gobby/agents/runner.py +24 -8
- gobby/agents/sandbox.py +8 -3
- gobby/agents/session.py +4 -0
- gobby/agents/spawn.py +9 -2
- gobby/agents/spawn_executor.py +49 -61
- gobby/agents/spawners/command_builder.py +4 -4
- gobby/app_context.py +5 -0
- gobby/cli/__init__.py +4 -0
- gobby/cli/install.py +259 -4
- gobby/cli/installers/__init__.py +12 -0
- gobby/cli/installers/copilot.py +242 -0
- gobby/cli/installers/cursor.py +244 -0
- gobby/cli/installers/shared.py +3 -0
- gobby/cli/installers/windsurf.py +242 -0
- gobby/cli/pipelines.py +639 -0
- gobby/cli/sessions.py +3 -1
- gobby/cli/skills.py +209 -0
- gobby/cli/tasks/crud.py +6 -5
- gobby/cli/tasks/search.py +1 -1
- gobby/cli/ui.py +116 -0
- gobby/cli/workflows.py +38 -17
- gobby/config/app.py +5 -0
- gobby/config/skills.py +23 -2
- gobby/hooks/broadcaster.py +9 -0
- gobby/hooks/event_handlers/_base.py +6 -1
- gobby/hooks/event_handlers/_session.py +44 -130
- gobby/hooks/events.py +48 -0
- gobby/hooks/hook_manager.py +25 -3
- gobby/install/copilot/hooks/hook_dispatcher.py +203 -0
- gobby/install/cursor/hooks/hook_dispatcher.py +203 -0
- gobby/install/gemini/hooks/hook_dispatcher.py +8 -0
- gobby/install/windsurf/hooks/hook_dispatcher.py +205 -0
- gobby/llm/__init__.py +14 -1
- gobby/llm/claude.py +217 -1
- gobby/llm/service.py +149 -0
- gobby/mcp_proxy/instructions.py +9 -27
- gobby/mcp_proxy/models.py +1 -0
- gobby/mcp_proxy/registries.py +56 -9
- gobby/mcp_proxy/server.py +6 -2
- gobby/mcp_proxy/services/tool_filter.py +7 -0
- gobby/mcp_proxy/services/tool_proxy.py +19 -1
- gobby/mcp_proxy/stdio.py +37 -21
- gobby/mcp_proxy/tools/agents.py +7 -0
- gobby/mcp_proxy/tools/hub.py +30 -1
- gobby/mcp_proxy/tools/orchestration/cleanup.py +5 -5
- gobby/mcp_proxy/tools/orchestration/monitor.py +1 -1
- gobby/mcp_proxy/tools/orchestration/orchestrate.py +8 -3
- gobby/mcp_proxy/tools/orchestration/review.py +17 -4
- gobby/mcp_proxy/tools/orchestration/wait.py +7 -7
- gobby/mcp_proxy/tools/pipelines/__init__.py +254 -0
- gobby/mcp_proxy/tools/pipelines/_discovery.py +67 -0
- gobby/mcp_proxy/tools/pipelines/_execution.py +281 -0
- gobby/mcp_proxy/tools/sessions/_crud.py +4 -4
- gobby/mcp_proxy/tools/sessions/_handoff.py +1 -1
- gobby/mcp_proxy/tools/skills/__init__.py +184 -30
- gobby/mcp_proxy/tools/spawn_agent.py +229 -14
- gobby/mcp_proxy/tools/tasks/_context.py +8 -0
- gobby/mcp_proxy/tools/tasks/_crud.py +27 -1
- gobby/mcp_proxy/tools/tasks/_helpers.py +1 -1
- gobby/mcp_proxy/tools/tasks/_lifecycle.py +125 -8
- gobby/mcp_proxy/tools/tasks/_lifecycle_validation.py +2 -1
- gobby/mcp_proxy/tools/tasks/_search.py +1 -1
- gobby/mcp_proxy/tools/workflows/__init__.py +9 -2
- gobby/mcp_proxy/tools/workflows/_lifecycle.py +12 -1
- gobby/mcp_proxy/tools/workflows/_query.py +45 -26
- gobby/mcp_proxy/tools/workflows/_terminal.py +39 -3
- gobby/mcp_proxy/tools/worktrees.py +54 -15
- gobby/memory/context.py +5 -5
- gobby/runner.py +108 -6
- gobby/servers/http.py +7 -1
- gobby/servers/routes/__init__.py +2 -0
- gobby/servers/routes/admin.py +44 -0
- gobby/servers/routes/mcp/endpoints/execution.py +18 -25
- gobby/servers/routes/mcp/hooks.py +10 -1
- gobby/servers/routes/pipelines.py +227 -0
- gobby/servers/websocket.py +314 -1
- gobby/sessions/analyzer.py +87 -1
- gobby/sessions/manager.py +5 -5
- gobby/sessions/transcripts/__init__.py +3 -0
- gobby/sessions/transcripts/claude.py +5 -0
- gobby/sessions/transcripts/codex.py +5 -0
- gobby/sessions/transcripts/gemini.py +5 -0
- gobby/skills/hubs/__init__.py +25 -0
- gobby/skills/hubs/base.py +234 -0
- gobby/skills/hubs/claude_plugins.py +328 -0
- gobby/skills/hubs/clawdhub.py +289 -0
- gobby/skills/hubs/github_collection.py +465 -0
- gobby/skills/hubs/manager.py +263 -0
- gobby/skills/hubs/skillhub.py +342 -0
- gobby/storage/memories.py +4 -4
- gobby/storage/migrations.py +95 -3
- gobby/storage/pipelines.py +367 -0
- gobby/storage/sessions.py +23 -4
- gobby/storage/skills.py +1 -1
- gobby/storage/tasks/_aggregates.py +2 -2
- gobby/storage/tasks/_lifecycle.py +4 -4
- gobby/storage/tasks/_models.py +7 -1
- gobby/storage/tasks/_queries.py +3 -3
- gobby/sync/memories.py +4 -3
- gobby/tasks/commits.py +48 -17
- gobby/workflows/actions.py +75 -0
- gobby/workflows/context_actions.py +246 -5
- gobby/workflows/definitions.py +119 -1
- gobby/workflows/detection_helpers.py +23 -11
- gobby/workflows/enforcement/task_policy.py +18 -0
- gobby/workflows/engine.py +20 -1
- gobby/workflows/evaluator.py +8 -5
- gobby/workflows/lifecycle_evaluator.py +57 -26
- gobby/workflows/loader.py +567 -30
- gobby/workflows/lobster_compat.py +147 -0
- gobby/workflows/pipeline_executor.py +801 -0
- gobby/workflows/pipeline_state.py +172 -0
- gobby/workflows/pipeline_webhooks.py +206 -0
- gobby/workflows/premature_stop.py +5 -0
- gobby/worktrees/git.py +135 -20
- {gobby-0.2.9.dist-info → gobby-0.2.11.dist-info}/METADATA +56 -22
- {gobby-0.2.9.dist-info → gobby-0.2.11.dist-info}/RECORD +134 -106
- {gobby-0.2.9.dist-info → gobby-0.2.11.dist-info}/WHEEL +0 -0
- {gobby-0.2.9.dist-info → gobby-0.2.11.dist-info}/entry_points.txt +0 -0
- {gobby-0.2.9.dist-info → gobby-0.2.11.dist-info}/licenses/LICENSE.md +0 -0
- {gobby-0.2.9.dist-info → gobby-0.2.11.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gobby
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.11
|
|
4
4
|
Summary: A local-first daemon to unify your AI coding tools. Session tracking and handoffs across Claude Code, Gemini CLI, and Codex. An MCP proxy that discovers tools without flooding context. Task management with dependencies, validation, and TDD expansion. Agent spawning and worktree orchestration. Persistent memory, extensible workflows, and hooks.
|
|
5
5
|
Author-email: Josh Wilhelmi <josh@gobby.ai>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -65,7 +65,7 @@ Dynamic: license-file
|
|
|
65
65
|
|
|
66
66
|
---
|
|
67
67
|
|
|
68
|
-
Gobby is a local-first daemon that unifies your AI coding assistants—Claude Code, Gemini CLI, and Codex—under one persistent, extensible platform. It handles the stuff these tools forget: sessions that survive restarts, context that carries across compactions, workflows that keep agents from going off the rails, and an MCP proxy that doesn't eat half your context window just loading tool definitions.
|
|
68
|
+
Gobby is a local-first daemon that unifies your AI coding assistants—Claude Code, Gemini CLI, Cursor, Windsurf, Copilot, and Codex—under one persistent, extensible platform. It handles the stuff these tools forget: sessions that survive restarts, context that carries across compactions, workflows that keep agents from going off the rails, and an MCP proxy that doesn't eat half your context window just loading tool definitions.
|
|
69
69
|
|
|
70
70
|
**Gobby is built with Gobby.** Most of this codebase was written by AI agents running through Gobby's own task system and workflows. Dogfooding isn't a buzzword here—it's the development process.
|
|
71
71
|
|
|
@@ -144,10 +144,11 @@ Built-in workflows: `auto-task`, `plan-execute`, `test-driven`. Or write your ow
|
|
|
144
144
|
Spawn agents in isolated git worktrees. Run tasks in parallel without stepping on each other. Gobby tracks which agent is where and what they're doing.
|
|
145
145
|
|
|
146
146
|
```python
|
|
147
|
-
call_tool("gobby
|
|
147
|
+
call_tool("gobby", "spawn_agent", {
|
|
148
148
|
"prompt": "Implement OAuth flow",
|
|
149
|
-
"
|
|
150
|
-
"
|
|
149
|
+
"task_id": "#123",
|
|
150
|
+
"isolation": "worktree",
|
|
151
|
+
"branch_name": "feature/oauth"
|
|
151
152
|
})
|
|
152
153
|
```
|
|
153
154
|
|
|
@@ -287,9 +288,33 @@ args = ["mcp-server"]
|
|
|
287
288
|
|
|
288
289
|
| CLI | Hooks | Status |
|
|
289
290
|
| :--- | :--- | :--- |
|
|
290
|
-
| **Claude Code** | ✅
|
|
291
|
-
| **Gemini CLI** |
|
|
292
|
-
| **Codex CLI** |
|
|
291
|
+
| **Claude Code** | ✅ Full support | Native adapter, 12 hook types |
|
|
292
|
+
| **Gemini CLI** | ✅ Full support | Native adapter, all hook types |
|
|
293
|
+
| **Codex CLI** | ✅ Full support | Native adapter via app-server |
|
|
294
|
+
| **Cursor** | ✅ Full support | Native adapter, 17 hook types |
|
|
295
|
+
| **Windsurf** | ✅ Full support | Native adapter, 11 hook types |
|
|
296
|
+
| **Copilot** | ✅ Full support | Native adapter, 6 hook types |
|
|
297
|
+
|
|
298
|
+
### Hook Installation
|
|
299
|
+
|
|
300
|
+
Gobby uses Python hook dispatchers that capture terminal context and communicate with the daemon. Run `gobby install` in your project to set up hooks:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
gobby install # Auto-detect and install hooks for all CLIs
|
|
304
|
+
gobby install --claude # Install for specific CLI
|
|
305
|
+
gobby install --gemini
|
|
306
|
+
gobby install --codex
|
|
307
|
+
gobby install --cursor
|
|
308
|
+
gobby install --windsurf
|
|
309
|
+
gobby install --copilot
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
The dispatchers handle:
|
|
313
|
+
- Terminal context capture (TTY, parent PID, session IDs)
|
|
314
|
+
- Proper JSON serialization and HTTP communication
|
|
315
|
+
- Exit code handling for blocking actions
|
|
316
|
+
|
|
317
|
+
All CLIs can also connect via MCP for tool access (see configuration examples above).
|
|
293
318
|
|
|
294
319
|
## How It Compares
|
|
295
320
|
|
|
@@ -342,23 +367,32 @@ Everything runs locally. No cloud. No API keys required (beyond what your AI CLI
|
|
|
342
367
|
|
|
343
368
|
Gobby exposes tools via MCP that your AI coding assistant can use:
|
|
344
369
|
|
|
345
|
-
**Task Management** (`gobby-tasks`)
|
|
346
|
-
`create_task`, `expand_task`, `validate_task`, `close_task`, `
|
|
370
|
+
**Task Management** (`gobby-tasks`)
|
|
371
|
+
`create_task`, `expand_task`, `validate_task`, `close_task`, `claim_task`, `list_ready_tasks`, `suggest_next_task`, `link_commit`, and more.
|
|
347
372
|
|
|
348
|
-
**Session Management** (`gobby-sessions`)
|
|
349
|
-
`pickup` (restore context), `get_handoff_context`, `list_sessions`
|
|
373
|
+
**Session Management** (`gobby-sessions`)
|
|
374
|
+
`get_current_session`, `pickup` (restore context), `get_handoff_context`, `list_sessions`, `send_message`
|
|
350
375
|
|
|
351
|
-
**Memory** (`gobby-memory`)
|
|
376
|
+
**Memory** (`gobby-memory`)
|
|
352
377
|
`remember`, `recall`, `forget` — persistent facts across sessions
|
|
353
378
|
|
|
354
|
-
**Workflows** (`gobby-workflows`)
|
|
355
|
-
`activate`, `advance`, `set_variable`, `get_status`
|
|
379
|
+
**Workflows** (`gobby-workflows`)
|
|
380
|
+
`activate`, `advance`, `set_variable`, `get_status`, `end_workflow`
|
|
381
|
+
|
|
382
|
+
**Agents** (`gobby-agents`)
|
|
383
|
+
`spawn_agent` (unified API with `isolation`: current/worktree/clone), `list_agents`, `get_agent`, `kill_agent`
|
|
384
|
+
|
|
385
|
+
**Worktrees** (`gobby-worktrees`)
|
|
386
|
+
`create_worktree`, `list_worktrees`, `delete_worktree`, `merge_worktree`
|
|
387
|
+
|
|
388
|
+
**Clones** (`gobby-clones`)
|
|
389
|
+
`create_clone`, `list_clones`, `delete_clone`, `merge_clone_to_target`
|
|
356
390
|
|
|
357
|
-
**
|
|
358
|
-
`
|
|
391
|
+
**Artifacts** (`gobby-artifacts`)
|
|
392
|
+
`save_artifact`, `get_artifact`, `list_artifacts` — capture and retrieve session artifacts
|
|
359
393
|
|
|
360
394
|
**MCP Proxy**
|
|
361
|
-
`list_mcp_servers`, `add_mcp_server`, `import_mcp_server`, `list_tools`, `get_tool_schema`, `call_tool`, `recommend_tools`
|
|
395
|
+
`list_mcp_servers`, `add_mcp_server`, `import_mcp_server`, `list_tools`, `get_tool_schema`, `call_tool`, `recommend_tools`, `search_tools`
|
|
362
396
|
|
|
363
397
|
**Skills** (`gobby-skills`)
|
|
364
398
|
`list_skills`, `get_skill`, `search_skills`, `install_skill`, `remove_skill`, `update_skill`
|
|
@@ -371,13 +405,13 @@ Gobby exposes tools via MCP that your AI coding assistant can use:
|
|
|
371
405
|
|
|
372
406
|
See [ROADMAP.md](ROADMAP.md) for the full plan, but highlights:
|
|
373
407
|
|
|
374
|
-
**Shipped:** Task system v2 (commit linking, validation gates), TDD expansion v2 (red/green/blue generation), workflow engine, MCP proxy with progressive discovery, session tracking and handoffs, memory, hooks integration, worktree
|
|
408
|
+
**Shipped:** Task system v2 (commit linking, validation gates, Claude Code interop), TDD expansion v2 (red/green/blue generation), workflow engine (state machines, tool restrictions, exit conditions), MCP proxy with progressive discovery, session tracking and handoffs, memory v3 (backend abstraction), hooks integration for all CLIs, unified agent spawning, worktree and clone orchestration, skills system, artifacts capture
|
|
375
409
|
|
|
376
|
-
**
|
|
410
|
+
**Beta:** Autonomous orchestration (conductor daemon, inter-agent messaging, token budget tracking, review gates)
|
|
377
411
|
|
|
378
|
-
**Next:**
|
|
412
|
+
**Next:** Security posture for MCP (allow/deny lists, audit logging), Observability (tool call tracing, session timelines), Web UI (read-only dashboard)
|
|
379
413
|
|
|
380
|
-
**Vision:** Always local first, but Pro cloud features to keep the lights on: Fleet management
|
|
414
|
+
**Vision:** Always local first, but Pro cloud features to keep the lights on: Fleet management, Plugin ecosystem, Team workflows, Enterprise hardening
|
|
381
415
|
|
|
382
416
|
## Changelog
|
|
383
417
|
|