stravinsky 0.1.2__py3-none-any.whl → 0.2.7__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.
Potentially problematic release.
This version of stravinsky might be problematic. Click here for more details.
- mcp_bridge/__init__.py +1 -5
- mcp_bridge/auth/cli.py +7 -0
- mcp_bridge/hooks/__init__.py +28 -0
- mcp_bridge/hooks/budget_optimizer.py +38 -0
- mcp_bridge/hooks/compaction.py +32 -0
- mcp_bridge/hooks/directory_context.py +40 -0
- mcp_bridge/hooks/edit_recovery.py +41 -0
- mcp_bridge/hooks/manager.py +77 -0
- mcp_bridge/hooks/truncator.py +19 -0
- mcp_bridge/native_hooks/context.py +38 -0
- mcp_bridge/native_hooks/edit_recovery.py +46 -0
- mcp_bridge/native_hooks/truncator.py +23 -0
- mcp_bridge/prompts/stravinsky.py +29 -19
- mcp_bridge/server.py +225 -668
- mcp_bridge/server_tools.py +529 -0
- mcp_bridge/tools/__init__.py +11 -2
- mcp_bridge/tools/agent_manager.py +99 -7
- mcp_bridge/tools/continuous_loop.py +67 -0
- mcp_bridge/tools/init.py +50 -0
- mcp_bridge/tools/lsp/tools.py +15 -15
- mcp_bridge/tools/model_invoke.py +64 -0
- mcp_bridge/tools/task_runner.py +97 -0
- mcp_bridge/tools/templates.py +86 -0
- {stravinsky-0.1.2.dist-info → stravinsky-0.2.7.dist-info}/METADATA +61 -10
- stravinsky-0.2.7.dist-info/RECORD +47 -0
- stravinsky-0.1.2.dist-info/RECORD +0 -32
- {stravinsky-0.1.2.dist-info → stravinsky-0.2.7.dist-info}/WHEEL +0 -0
- {stravinsky-0.1.2.dist-info → stravinsky-0.2.7.dist-info}/entry_points.txt +0 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stravinsky
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: MCP Bridge for Claude Code with Multi-Model Support. Install globally: claude mcp add --scope user stravinsky -- uvx stravinsky. Add to CLAUDE.md: See https://pypi.org/project/stravinsky/
|
|
5
|
+
Project-URL: Repository, https://github.com/GratefulDave/stravinsky
|
|
6
|
+
Project-URL: Issues, https://github.com/GratefulDave/stravinsky/issues
|
|
5
7
|
Author: Stravinsky Team
|
|
6
8
|
License: MIT
|
|
7
9
|
Keywords: claude,gemini,mcp,oauth,openai
|
|
@@ -13,14 +15,14 @@ Requires-Dist: google-auth>=2.20.0
|
|
|
13
15
|
Requires-Dist: httpx>=0.24.0
|
|
14
16
|
Requires-Dist: jedi>=0.19.2
|
|
15
17
|
Requires-Dist: keyring>=25.7.0
|
|
16
|
-
Requires-Dist: mcp>=1.
|
|
18
|
+
Requires-Dist: mcp>=1.2.1
|
|
17
19
|
Requires-Dist: openai>=1.0.0
|
|
18
20
|
Requires-Dist: psutil>=5.9.0
|
|
19
21
|
Requires-Dist: pydantic>=2.0.0
|
|
20
22
|
Requires-Dist: python-dotenv>=1.0.0
|
|
21
23
|
Requires-Dist: rich>=13.0.0
|
|
22
24
|
Requires-Dist: ruff>=0.14.10
|
|
23
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: tenacity>=8.5.0
|
|
24
26
|
Provides-Extra: dev
|
|
25
27
|
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
26
28
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
@@ -29,7 +31,7 @@ Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
|
29
31
|
Description-Content-Type: text/markdown
|
|
30
32
|
|
|
31
33
|
<div align="center">
|
|
32
|
-
<img src=".
|
|
34
|
+
<img src="https://raw.githubusercontent.com/GratefulDave/stravinsky/main/assets/logo.png" width="300" alt="Stravinsky Logo">
|
|
33
35
|
<h1>Stravinsky</h1>
|
|
34
36
|
<p><strong>The Avant-Garde MCP Bridge for Claude Code</strong></p>
|
|
35
37
|
<p><em>Movement • Rhythm • Precision</em></p>
|
|
@@ -75,7 +77,7 @@ claude mcp add stravinsky -- stravinsky
|
|
|
75
77
|
|
|
76
78
|
### Authentication
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
````bash
|
|
79
81
|
# Login to Google (Gemini)
|
|
80
82
|
stravinsky-auth login gemini
|
|
81
83
|
|
|
@@ -87,7 +89,60 @@ stravinsky-auth status
|
|
|
87
89
|
|
|
88
90
|
# Logout
|
|
89
91
|
stravinsky-auth logout gemini
|
|
90
|
-
|
|
92
|
+
|
|
93
|
+
### Repo Auto-Initialization
|
|
94
|
+
|
|
95
|
+
Bootstrap any repository for Stravinsky in one command:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# In the root of your project:
|
|
99
|
+
stravinsky-auth init
|
|
100
|
+
````
|
|
101
|
+
|
|
102
|
+
This will:
|
|
103
|
+
|
|
104
|
+
1. Create/Update `CLAUDE.md` with Stravinsky parallel execution rules.
|
|
105
|
+
2. Install standard slash commands into `.claude/commands/stra/`.
|
|
106
|
+
|
|
107
|
+
````
|
|
108
|
+
|
|
109
|
+
## Add to Your CLAUDE.md
|
|
110
|
+
|
|
111
|
+
After installing globally, add this to your project's `CLAUDE.md`:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
## Stravinsky MCP (Parallel Agents)
|
|
115
|
+
|
|
116
|
+
Use Stravinsky MCP tools. **DEFAULT: spawn parallel agents for multi-step tasks.**
|
|
117
|
+
|
|
118
|
+
### Agent Tools
|
|
119
|
+
|
|
120
|
+
- `agent_spawn(prompt, agent_type, description)` - Spawn background agent with full tool access
|
|
121
|
+
- `agent_output(task_id, block)` - Get results (block=True to wait)
|
|
122
|
+
- `agent_progress(task_id)` - Check real-time progress
|
|
123
|
+
- `agent_list()` - Overview of all running agents
|
|
124
|
+
- `agent_cancel(task_id)` - Stop a running agent
|
|
125
|
+
|
|
126
|
+
### Agent Types
|
|
127
|
+
|
|
128
|
+
- `explore` - Codebase search, "where is X?" questions
|
|
129
|
+
- `dewey` - Documentation research, implementation examples
|
|
130
|
+
- `frontend` - UI/UX work, component design
|
|
131
|
+
- `delphi` - Strategic advice, architecture review
|
|
132
|
+
|
|
133
|
+
### Parallel Execution (MANDATORY)
|
|
134
|
+
|
|
135
|
+
For ANY task with 2+ independent steps:
|
|
136
|
+
|
|
137
|
+
1. **Immediately use agent_spawn** for each independent component
|
|
138
|
+
2. Fire all agents simultaneously, don't wait
|
|
139
|
+
3. Monitor with agent_progress, collect with agent_output
|
|
140
|
+
|
|
141
|
+
### ULTRATHINK / ULTRAWORK
|
|
142
|
+
|
|
143
|
+
- **ULTRATHINK**: Engage exhaustive deep reasoning, multi-dimensional analysis
|
|
144
|
+
- **ULTRAWORK**: Maximum parallel execution - spawn agents aggressively for every subtask
|
|
145
|
+
````
|
|
91
146
|
|
|
92
147
|
## Tools (31)
|
|
93
148
|
|
|
@@ -153,7 +208,3 @@ The Codex CLI uses the same port. Stop it with: `killall codex`
|
|
|
153
208
|
MIT
|
|
154
209
|
|
|
155
210
|
---
|
|
156
|
-
|
|
157
|
-
<div align="center">
|
|
158
|
-
<small>Built with obsession by the Google Deepmind team.</small>
|
|
159
|
-
</div>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
mcp_bridge/__init__.py,sha256=XHypfHSPdgXFKmOdoewn7czU670gt8InhHhzlP5j_aA,22
|
|
2
|
+
mcp_bridge/server.py,sha256=-0_pPg631yXd37kSM1u63kEoKsb2xRcXvPKqMixnBEA,15656
|
|
3
|
+
mcp_bridge/server_tools.py,sha256=-m50R9jDQ-t_p4AHtdr3IUZRhmhYtT0D90HcdkIvmtY,22466
|
|
4
|
+
mcp_bridge/auth/__init__.py,sha256=AGHNtKzqvZYMLQ35Qg6aOabpxBqmkR-pjXv8Iby9oMw,797
|
|
5
|
+
mcp_bridge/auth/cli.py,sha256=UB-Mri-zu2r355gGS3Ywqz9ojsoOece3EsM2asIKkuM,6999
|
|
6
|
+
mcp_bridge/auth/oauth.py,sha256=lFTVYN6kjXWAqqYpg9L6XbWYI-Pg-_LFvc4WZAlzM9k,12450
|
|
7
|
+
mcp_bridge/auth/openai_oauth.py,sha256=0Ks2X-NXLCBzqs3xnbj9QLZpugICOX5qB5y5vtDENOo,11522
|
|
8
|
+
mcp_bridge/auth/token_store.py,sha256=3A6TZJ7Wju6QfhALeX4IMhY5jzb9OWMrDzwRbfAukiU,5650
|
|
9
|
+
mcp_bridge/config/__init__.py,sha256=uapHdrSWWrafVKD9CTB1J_7Dw0_RajRhoDGjy9zH21o,256
|
|
10
|
+
mcp_bridge/config/hooks.py,sha256=WvWC6ZUc8y1IXPlGCjLYAAsGGigd5tWeGiw585OGNwA,4624
|
|
11
|
+
mcp_bridge/hooks/__init__.py,sha256=V2acoEWXFiR0NMMTLKRIKUelDR97-LGpAmGXHHlMrww,852
|
|
12
|
+
mcp_bridge/hooks/budget_optimizer.py,sha256=Im0qSGVUdRByk04hP5VyKt7tjlDVYG0LJb6IeUjjnj8,1323
|
|
13
|
+
mcp_bridge/hooks/compaction.py,sha256=UXTwmyo9C4Jm3j72KvVU11ukSAHaGaTey_h3L43e3rY,1186
|
|
14
|
+
mcp_bridge/hooks/directory_context.py,sha256=0VjdJITJIGUqR4-q-wZlB6kmkFQMraaFvU2Nz2PnJCM,1225
|
|
15
|
+
mcp_bridge/hooks/edit_recovery.py,sha256=CyhdFF3rV-sqZ13Mn8I8I5oMqB2KLIl6Bziv7GcsX0o,1749
|
|
16
|
+
mcp_bridge/hooks/manager.py,sha256=Ed2WiYJS0kLdid3lk6cWfJv1C0uMp8aWarjGaWQI37k,3392
|
|
17
|
+
mcp_bridge/hooks/truncator.py,sha256=NT51nzMw7e1NKYkG1XS71c6oIgnyf6gc1f4nNvJw5mw,598
|
|
18
|
+
mcp_bridge/native_hooks/context.py,sha256=JBHqnX75qtMO3JAEFooBEAK6DxcsVaXykhrP7tdFm6E,949
|
|
19
|
+
mcp_bridge/native_hooks/edit_recovery.py,sha256=1OWpb3v87txFUsgnNe1hoeTI7rIKCkKYONld5BK1TyA,1503
|
|
20
|
+
mcp_bridge/native_hooks/truncator.py,sha256=VPWwP560CA1s8A6FbctCVvpCsH-5d1UcVzKkrX2KqPg,530
|
|
21
|
+
mcp_bridge/prompts/__init__.py,sha256=pQmPxbdfS_S-ENB-VX33MXbgfGs8zHfLB_QOBtaPjis,322
|
|
22
|
+
mcp_bridge/prompts/delphi.py,sha256=OgsG5l9lsomj4rpohCtdU28ZW15gugCPG9eYwN340d4,4910
|
|
23
|
+
mcp_bridge/prompts/dewey.py,sha256=5-hRlOIJbfat9G_Lj-N-yhA7xk8c9lSOhK9yhSBqIs0,5261
|
|
24
|
+
mcp_bridge/prompts/document_writer.py,sha256=hiCbxgTU8HKPJkS0eNpPPtzSqDXPreApU2OqiS6zh-0,5618
|
|
25
|
+
mcp_bridge/prompts/explore.py,sha256=121R3bNFbb7AIte69eDtLfxdyHdOo3l16L6cUH1p-kk,3592
|
|
26
|
+
mcp_bridge/prompts/frontend.py,sha256=j91I8k5vcVed13eeX-Ebiv49x9Qj4HO_SQN1xhB8TLQ,4943
|
|
27
|
+
mcp_bridge/prompts/multimodal.py,sha256=Svw11N392LjshalasOd80X0Qw_qtOMqu_lD-_HmQDIo,1936
|
|
28
|
+
mcp_bridge/prompts/stravinsky.py,sha256=qMFvIfhIJZsCehN7bPHdrnUnFav78prYlw_78LLzHvc,13234
|
|
29
|
+
mcp_bridge/tools/__init__.py,sha256=L3bQWPP8c-L5-dLprGVrW5QGUbqLfAq48sPOK9XNH50,1098
|
|
30
|
+
mcp_bridge/tools/agent_manager.py,sha256=_ZnfDEdDMemuPCUguCbWr18k0xfBpYIk2mPH5gtadl0,25787
|
|
31
|
+
mcp_bridge/tools/background_tasks.py,sha256=G1iQ00538q939-DJbzaEsA0uZI2TfwzawFCDx8QC5Hg,5178
|
|
32
|
+
mcp_bridge/tools/code_search.py,sha256=sR-alLQuxaXUFB9hby_wQsQu3Io644wdnpdOM_vm0aw,9978
|
|
33
|
+
mcp_bridge/tools/continuous_loop.py,sha256=MM3FnF3ULuR32h0tqJP8uF48iJg6R9dbyHy_36KLOls,2100
|
|
34
|
+
mcp_bridge/tools/init.py,sha256=_Y-15uE4-mCwvJtX46MW_4sL-Xn6AU061hLqRC8CrnY,1595
|
|
35
|
+
mcp_bridge/tools/model_invoke.py,sha256=T4Cod_rab1zcN2G2oy1n49tVPO-Oy-uYZJF2yfMdQ94,9247
|
|
36
|
+
mcp_bridge/tools/project_context.py,sha256=bXKxuW1pGjtIbeNjMgpBoQL-d_CI94UPBVpRjUyhX20,4707
|
|
37
|
+
mcp_bridge/tools/session_manager.py,sha256=tCVLLvO-Kttla7OxPImb_NSGL_9aW46ilq5ej_IcnlA,9252
|
|
38
|
+
mcp_bridge/tools/skill_loader.py,sha256=6IhlEEPdNyLjqbtrPMnZdXz7u0KpGpR6EQkXykeC1VQ,6092
|
|
39
|
+
mcp_bridge/tools/task_runner.py,sha256=OCYAXy7vZTHf_np1IITv7azLlwomBYqYI9qu6oQna44,2888
|
|
40
|
+
mcp_bridge/tools/templates.py,sha256=aVdSGGKxqD-uFveLw0D2_YsjVLOMDOVHPdO8XFM8C6M,3262
|
|
41
|
+
mcp_bridge/tools/lsp/__init__.py,sha256=fLiII9qgeachI3MlkO6uGulfUH3T0YDeyEfO65bbxdw,549
|
|
42
|
+
mcp_bridge/tools/lsp/tools.py,sha256=nfXT3LBD5Mas_98f1zwu62jkpInGXUR-1vLl1zIykUw,16315
|
|
43
|
+
mcp_bridge/utils/__init__.py,sha256=pbHV4nq5SLUYcAyTmLUZYrp293Ctud57X8hwsMGA_BM,20
|
|
44
|
+
stravinsky-0.2.7.dist-info/METADATA,sha256=Y2tQ0jsWAeLsubCCfnDKJyn3TSps0Niw6eijjfLKXAw,7131
|
|
45
|
+
stravinsky-0.2.7.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
46
|
+
stravinsky-0.2.7.dist-info/entry_points.txt,sha256=BISwF7i71Oen7jFVmBXz8fxiU11Cp415wPF0xXG2Q3s,97
|
|
47
|
+
stravinsky-0.2.7.dist-info/RECORD,,
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
mcp_bridge/__init__.py,sha256=8hnj-sTcl7-N11RY05wAGqveB_WtfEciYsxjQkXAnmc,156
|
|
2
|
-
mcp_bridge/server.py,sha256=3HbPqRCXN7N94pXh5MzElSN-sU9pHuuf0ntX4r3xOGA,34139
|
|
3
|
-
mcp_bridge/auth/__init__.py,sha256=AGHNtKzqvZYMLQ35Qg6aOabpxBqmkR-pjXv8Iby9oMw,797
|
|
4
|
-
mcp_bridge/auth/cli.py,sha256=z894Jb5buAtzFv8455JuzGeghT-cXphgyp82LryM_NU,6767
|
|
5
|
-
mcp_bridge/auth/oauth.py,sha256=lFTVYN6kjXWAqqYpg9L6XbWYI-Pg-_LFvc4WZAlzM9k,12450
|
|
6
|
-
mcp_bridge/auth/openai_oauth.py,sha256=0Ks2X-NXLCBzqs3xnbj9QLZpugICOX5qB5y5vtDENOo,11522
|
|
7
|
-
mcp_bridge/auth/token_store.py,sha256=3A6TZJ7Wju6QfhALeX4IMhY5jzb9OWMrDzwRbfAukiU,5650
|
|
8
|
-
mcp_bridge/config/__init__.py,sha256=uapHdrSWWrafVKD9CTB1J_7Dw0_RajRhoDGjy9zH21o,256
|
|
9
|
-
mcp_bridge/config/hooks.py,sha256=WvWC6ZUc8y1IXPlGCjLYAAsGGigd5tWeGiw585OGNwA,4624
|
|
10
|
-
mcp_bridge/prompts/__init__.py,sha256=pQmPxbdfS_S-ENB-VX33MXbgfGs8zHfLB_QOBtaPjis,322
|
|
11
|
-
mcp_bridge/prompts/delphi.py,sha256=OgsG5l9lsomj4rpohCtdU28ZW15gugCPG9eYwN340d4,4910
|
|
12
|
-
mcp_bridge/prompts/dewey.py,sha256=5-hRlOIJbfat9G_Lj-N-yhA7xk8c9lSOhK9yhSBqIs0,5261
|
|
13
|
-
mcp_bridge/prompts/document_writer.py,sha256=hiCbxgTU8HKPJkS0eNpPPtzSqDXPreApU2OqiS6zh-0,5618
|
|
14
|
-
mcp_bridge/prompts/explore.py,sha256=121R3bNFbb7AIte69eDtLfxdyHdOo3l16L6cUH1p-kk,3592
|
|
15
|
-
mcp_bridge/prompts/frontend.py,sha256=j91I8k5vcVed13eeX-Ebiv49x9Qj4HO_SQN1xhB8TLQ,4943
|
|
16
|
-
mcp_bridge/prompts/multimodal.py,sha256=Svw11N392LjshalasOd80X0Qw_qtOMqu_lD-_HmQDIo,1936
|
|
17
|
-
mcp_bridge/prompts/stravinsky.py,sha256=aDxuvMhCNCcRhX__LFiHBbvwI11yiL2ZCNcHtXGz27E,12033
|
|
18
|
-
mcp_bridge/tools/__init__.py,sha256=ATTwTUdnzXleHX2FXZpVeGL7x_xNwgCaA7iPFh4EiMs,787
|
|
19
|
-
mcp_bridge/tools/agent_manager.py,sha256=OaRdaJOhkblwuIXTwVfoyboQ8g-8_nI1h5iqnYM6u4A,22274
|
|
20
|
-
mcp_bridge/tools/background_tasks.py,sha256=G1iQ00538q939-DJbzaEsA0uZI2TfwzawFCDx8QC5Hg,5178
|
|
21
|
-
mcp_bridge/tools/code_search.py,sha256=sR-alLQuxaXUFB9hby_wQsQu3Io644wdnpdOM_vm0aw,9978
|
|
22
|
-
mcp_bridge/tools/model_invoke.py,sha256=1oXd8rIQShd5ZLV4OdH8C-cwM42c4dCzBxLvD3rnrro,7059
|
|
23
|
-
mcp_bridge/tools/project_context.py,sha256=bXKxuW1pGjtIbeNjMgpBoQL-d_CI94UPBVpRjUyhX20,4707
|
|
24
|
-
mcp_bridge/tools/session_manager.py,sha256=tCVLLvO-Kttla7OxPImb_NSGL_9aW46ilq5ej_IcnlA,9252
|
|
25
|
-
mcp_bridge/tools/skill_loader.py,sha256=6IhlEEPdNyLjqbtrPMnZdXz7u0KpGpR6EQkXykeC1VQ,6092
|
|
26
|
-
mcp_bridge/tools/lsp/__init__.py,sha256=fLiII9qgeachI3MlkO6uGulfUH3T0YDeyEfO65bbxdw,549
|
|
27
|
-
mcp_bridge/tools/lsp/tools.py,sha256=d0gR8WuOjxLKWIbIXw2n1k6jUOrkoZW7C7TuA08OQwg,16225
|
|
28
|
-
mcp_bridge/utils/__init__.py,sha256=pbHV4nq5SLUYcAyTmLUZYrp293Ctud57X8hwsMGA_BM,20
|
|
29
|
-
stravinsky-0.1.2.dist-info/METADATA,sha256=xBxJn2p3uC7WP21L1EokzZUw7rHfhJglQrjWdlsV0MY,5560
|
|
30
|
-
stravinsky-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
31
|
-
stravinsky-0.1.2.dist-info/entry_points.txt,sha256=BISwF7i71Oen7jFVmBXz8fxiU11Cp415wPF0xXG2Q3s,97
|
|
32
|
-
stravinsky-0.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|