crucible-mcp 0.5.0__py3-none-any.whl → 1.0.0__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.
Files changed (46) hide show
  1. crucible/cli.py +109 -2
  2. crucible/enforcement/bundled/error-handling.yaml +84 -0
  3. crucible/enforcement/bundled/security.yaml +123 -0
  4. crucible/enforcement/bundled/smart-contract.yaml +110 -0
  5. crucible/hooks/claudecode.py +388 -0
  6. crucible/hooks/precommit.py +117 -25
  7. crucible/knowledge/loader.py +186 -0
  8. crucible/knowledge/principles/API_DESIGN.md +176 -0
  9. crucible/knowledge/principles/COMMITS.md +127 -0
  10. crucible/knowledge/principles/DATABASE.md +138 -0
  11. crucible/knowledge/principles/DOCUMENTATION.md +201 -0
  12. crucible/knowledge/principles/ERROR_HANDLING.md +157 -0
  13. crucible/knowledge/principles/FP.md +162 -0
  14. crucible/knowledge/principles/GITIGNORE.md +218 -0
  15. crucible/knowledge/principles/OBSERVABILITY.md +147 -0
  16. crucible/knowledge/principles/PRECOMMIT.md +201 -0
  17. crucible/knowledge/principles/SECURITY.md +136 -0
  18. crucible/knowledge/principles/SMART_CONTRACT.md +153 -0
  19. crucible/knowledge/principles/SYSTEM_DESIGN.md +153 -0
  20. crucible/knowledge/principles/TESTING.md +129 -0
  21. crucible/knowledge/principles/TYPE_SAFETY.md +170 -0
  22. crucible/skills/accessibility-engineer/SKILL.md +71 -0
  23. crucible/skills/backend-engineer/SKILL.md +69 -0
  24. crucible/skills/customer-success/SKILL.md +69 -0
  25. crucible/skills/data-engineer/SKILL.md +70 -0
  26. crucible/skills/devops-engineer/SKILL.md +69 -0
  27. crucible/skills/fde-engineer/SKILL.md +69 -0
  28. crucible/skills/formal-verification/SKILL.md +86 -0
  29. crucible/skills/gas-optimizer/SKILL.md +89 -0
  30. crucible/skills/incident-responder/SKILL.md +91 -0
  31. crucible/skills/mev-researcher/SKILL.md +87 -0
  32. crucible/skills/mobile-engineer/SKILL.md +70 -0
  33. crucible/skills/performance-engineer/SKILL.md +68 -0
  34. crucible/skills/product-engineer/SKILL.md +68 -0
  35. crucible/skills/protocol-architect/SKILL.md +83 -0
  36. crucible/skills/security-engineer/SKILL.md +63 -0
  37. crucible/skills/tech-lead/SKILL.md +92 -0
  38. crucible/skills/uiux-engineer/SKILL.md +70 -0
  39. crucible/skills/web3-engineer/SKILL.md +79 -0
  40. crucible_mcp-1.0.0.dist-info/METADATA +198 -0
  41. crucible_mcp-1.0.0.dist-info/RECORD +66 -0
  42. crucible_mcp-0.5.0.dist-info/METADATA +0 -161
  43. crucible_mcp-0.5.0.dist-info/RECORD +0 -30
  44. {crucible_mcp-0.5.0.dist-info → crucible_mcp-1.0.0.dist-info}/WHEEL +0 -0
  45. {crucible_mcp-0.5.0.dist-info → crucible_mcp-1.0.0.dist-info}/entry_points.txt +0 -0
  46. {crucible_mcp-0.5.0.dist-info → crucible_mcp-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,66 @@
1
+ crucible/__init__.py,sha256=M4v_CsJVOdiAAPgmd54mxkkbnes8e5ifMznDuOJhzzY,77
2
+ crucible/cli.py,sha256=DTYt-V5W-DJSkQV3qXumsxImd2Ib3rn2ZgeL-m-dEvA,79233
3
+ crucible/errors.py,sha256=HrX_yvJEhXJoKodXGo_iY9wqx2J3ONYy0a_LbrVC5As,819
4
+ crucible/models.py,sha256=jaxbiPc1E7bJxKPLadZe1dbSJdq-WINsxjveeSNNqeg,2066
5
+ crucible/server.py,sha256=oyfDl5-Ih3eoXBGDZ0ud7H3m2v0tn-Mc7mo19Bd-d00,46756
6
+ crucible/domain/__init__.py,sha256=2fsoB5wH2Pl3vtGRt4voYOSZ04-zLoW8pNq6nvzVMgU,118
7
+ crucible/domain/detection.py,sha256=TNeLB_VQgS1AsT5BKDf_tIpGa47THrFoRXwU4u54VB0,1797
8
+ crucible/enforcement/__init__.py,sha256=FOaGSrE1SWFPxBJ1L5VoDhQDmlJgRXXs_iiI20wHf2Q,867
9
+ crucible/enforcement/assertions.py,sha256=ay5QvJIr_YaqWYbrJNhbouafJOiy4ZhwiX7E9VAY3s4,8166
10
+ crucible/enforcement/budget.py,sha256=-wFTlVY80c3-eJhvmlWrdlS8LB8E25aMnhtYpwR38sQ,4706
11
+ crucible/enforcement/compliance.py,sha256=tkK-lSC5OMGOgt5xXY_APVSr-qHGB9kE8dUtoTF_n5w,14889
12
+ crucible/enforcement/models.py,sha256=dEcPiUL6JEOBtxWOgKd_PZnsW_nUIaFsx18L70fM59M,4574
13
+ crucible/enforcement/patterns.py,sha256=hE4Z-JJ9OBruSFPBDxw_aNaSJbyUPD2SWCEwA1KzDmI,9720
14
+ crucible/enforcement/bundled/error-handling.yaml,sha256=2OSRhZwUGkF18bNfpARrVRsvgPgpyWr3pC0OUhtLgl0,2741
15
+ crucible/enforcement/bundled/security.yaml,sha256=utVjRorQSISqFjKuL1GGwbPVSY7e_7I5xmGXE4bguBA,3658
16
+ crucible/enforcement/bundled/smart-contract.yaml,sha256=ypjEoFf5cg9vnsjyePKhn8PKBzARCwgXn0XIkKXuvFw,4063
17
+ crucible/hooks/__init__.py,sha256=k5oEWhTJKEQi-QWBfTbp1p6HaKg55_wVCBVD5pZzdqw,271
18
+ crucible/hooks/claudecode.py,sha256=9wAHbxYJkmvPPAt-GqGyMASItorF7uruMpYRDL-W-M0,11396
19
+ crucible/hooks/precommit.py,sha256=5W8ty_ji2F9NknvpHIUr8BU75KlXaplq5Itdcfazw68,25190
20
+ crucible/knowledge/__init__.py,sha256=unb7kyO1MtB3Zt-TGx_O8LE79KyrGrNHoFFHgUWUvGU,40
21
+ crucible/knowledge/loader.py,sha256=J4NFGQ5KqP1tK1S1Id39_DC0il6yeJScZn6EQ5pWPpI,12442
22
+ crucible/knowledge/principles/API_DESIGN.md,sha256=XBYfi2Q-i47p88I72ZlmXtkj7Ph4UMHT43t3HOR6lhQ,3133
23
+ crucible/knowledge/principles/COMMITS.md,sha256=JlP-z_izywF2qObTQabE4hlgQTcHsZn9AJM32VTk-Ng,2044
24
+ crucible/knowledge/principles/DATABASE.md,sha256=FxxK_UWrfdwl-6f9l7esOmC2WFscwrmcziTYPmEWPXc,2816
25
+ crucible/knowledge/principles/DOCUMENTATION.md,sha256=QiVaqJoHubQp_FRDVEQ5b9-AEgatwJb_JApQFIV64fU,2967
26
+ crucible/knowledge/principles/ERROR_HANDLING.md,sha256=8Io_ob5a1TorQ4j8_fN57xJH55CXeD4EjX1C5xBUCvU,2988
27
+ crucible/knowledge/principles/FP.md,sha256=WyTYeORBixTI3vyLf1EO8lCI4TePskHePQ123y5bttg,3892
28
+ crucible/knowledge/principles/GITIGNORE.md,sha256=TsRaQ8YuYg21w0otXkfAnDTsAijUYXSfEqe8gCQXCm0,2427
29
+ crucible/knowledge/principles/OBSERVABILITY.md,sha256=vuI0tvYOOWgckHX5YteycZ4ha6Tx2skJvZWqzITqWts,2593
30
+ crucible/knowledge/principles/PRECOMMIT.md,sha256=0tFQ-K2Bal_wSfSXCxCv_FHVG3_MUB9Mps3HADxpSpc,3558
31
+ crucible/knowledge/principles/SECURITY.md,sha256=gOIBRs2HQwo14CLXrnYguHsZwGhrUY1-fB-g0AoQQJk,4717
32
+ crucible/knowledge/principles/SMART_CONTRACT.md,sha256=RzXo_17SKvvcAR_Iijahez3YqY_xGjdhip9gtj9Sp3w,3333
33
+ crucible/knowledge/principles/SYSTEM_DESIGN.md,sha256=7Ujd133Rifz_4aropkg6b3p4lco_2YQHLqB3LglvSjk,4081
34
+ crucible/knowledge/principles/TESTING.md,sha256=ghttumBTvISEornFFgX2CZei0E3c7qqICbBT61tm72I,2470
35
+ crucible/knowledge/principles/TYPE_SAFETY.md,sha256=AkB28HjUlNUe3JaiEl01cFUgF0QnzPVXJTmHb9xopWE,3167
36
+ crucible/review/__init__.py,sha256=Ssva6Yaqcc44AqL9OUMjxypu5R1PPkrmLGk6OKtP15w,547
37
+ crucible/review/core.py,sha256=OdJd3kIY0MNkwJ-oUnopogeJ02vtXegPmGqLC1UvKmE,15482
38
+ crucible/skills/__init__.py,sha256=L3heXWF0T3aR9yYLFphs1LNlkxAFSPkPuRFMH-S1taI,495
39
+ crucible/skills/loader.py,sha256=iC0_V1s6CIse5NXyFGtpLbON8xDxYh8xXmHH7hAX5O0,8642
40
+ crucible/skills/accessibility-engineer/SKILL.md,sha256=x6Un_EhM-Z8Jt2AwpIdnu68TUU4kNbu4uwCp7fG-tAE,2008
41
+ crucible/skills/backend-engineer/SKILL.md,sha256=tImXlAXUFkQikKiwBe9Bh-P43IQleIGa2PphoUjt_Hs,1859
42
+ crucible/skills/customer-success/SKILL.md,sha256=--b4j_FHahRk9cilDnIm5UTE3sIqawq_rWOkcPV_-dM,1927
43
+ crucible/skills/data-engineer/SKILL.md,sha256=0G66CxJUOqNAy3E7wg5OK28SngmER_RXCrdoVxcVwUc,1913
44
+ crucible/skills/devops-engineer/SKILL.md,sha256=tQRETfZRkZB1Q0wbzGO_UPmJBZ8zBpSiCjKrgEgILy0,1912
45
+ crucible/skills/fde-engineer/SKILL.md,sha256=f84LkKCbVl5jMEhqNwjs4ysQpEDK5gKZm5Nw4Llyce4,2017
46
+ crucible/skills/formal-verification/SKILL.md,sha256=vhoejpzHfJ5SvQqt6xt8TqiIr0h0ntIPUUIhY7m59OE,2356
47
+ crucible/skills/gas-optimizer/SKILL.md,sha256=KibapMzBZJ9XYzvirOUhL7JuHRejEehD3RoEvaImCpU,2356
48
+ crucible/skills/incident-responder/SKILL.md,sha256=83oia0jvpZMdL6OCtO86O8AqR1iCig0-JqLzPhx58rc,2356
49
+ crucible/skills/mev-researcher/SKILL.md,sha256=YWd8hCOua5dXODt5Z3E3xGvNg1uFOub5JyYHDao7-f8,2335
50
+ crucible/skills/mobile-engineer/SKILL.md,sha256=bIVHD8vZG8kPr6rl6qa_FKqOjUQ23q1kjYJ0BMVwLzo,1891
51
+ crucible/skills/performance-engineer/SKILL.md,sha256=bP2eze16OjzuC-y7amnXiIXFUzzsEePIgKIMPqbC5gU,1855
52
+ crucible/skills/product-engineer/SKILL.md,sha256=fuCXMq4RDrUImknYfEHQ6y-bmCrTWbTHfMpCaXXPliE,1704
53
+ crucible/skills/protocol-architect/SKILL.md,sha256=f1gXLJpHZ-7qYpeS034Q5mZ91zbFbGE2lUBE6M2P3WM,2243
54
+ crucible/skills/security-engineer/SKILL.md,sha256=9jvk-3H71rYosTtsFYe6J5-_9SBoRlC1GS35Go740XY,1744
55
+ crucible/skills/tech-lead/SKILL.md,sha256=3prGCbTi0yIugyn9kXUdSRV8M3Zj7PVnDtiWsVMfElo,2343
56
+ crucible/skills/uiux-engineer/SKILL.md,sha256=0iCaBMnGSMKomU9TTjlxi2a6cZqoiLAYYrSIFTBy0Vg,1869
57
+ crucible/skills/web3-engineer/SKILL.md,sha256=pzsrL8FxMhm3butVIlU38AajV_2zgDzwA-FrF0qos3w,2092
58
+ crucible/synthesis/__init__.py,sha256=CYrkZG4bdAjp8XdOh1smfKscd3YU5lZlaDLGwLE9c-0,46
59
+ crucible/tools/__init__.py,sha256=gFRThTk1E-fHzpe8bB5rtBG6Z6G-ysPzjVEHfKGbEYU,400
60
+ crucible/tools/delegation.py,sha256=_x1y76No3qkmGjjROVvMx1pSKKwU59aRu5R-r07lVFU,12871
61
+ crucible/tools/git.py,sha256=7-aJCesoQe3ZEBFcRxHBhY8RpZrBlNtHSns__RqiG04,10406
62
+ crucible_mcp-1.0.0.dist-info/METADATA,sha256=LQZsUGpijH_MyRt2I-HgJf3ozOX7TbWpBPYkEg11WYQ,6231
63
+ crucible_mcp-1.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
64
+ crucible_mcp-1.0.0.dist-info/entry_points.txt,sha256=18BZaH1OlFSFYtKuHq0Z8yYX8Wmx7Ikfqay-P00ZX3Q,83
65
+ crucible_mcp-1.0.0.dist-info/top_level.txt,sha256=4hzuFgqbFPOO-WiU_DYxTm8VYIxTXh7Wlp0gRcWR0Cs,9
66
+ crucible_mcp-1.0.0.dist-info/RECORD,,
@@ -1,161 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: crucible-mcp
3
- Version: 0.5.0
4
- Summary: Code review MCP server for Claude. Not affiliated with Atlassian.
5
- Author: be.nvy
6
- License-Expression: MIT
7
- Keywords: mcp,code-review,static-analysis,claude
8
- Requires-Python: >=3.11
9
- Description-Content-Type: text/markdown
10
- Requires-Dist: mcp>=1.0.0
11
- Requires-Dist: pyyaml>=6.0
12
- Requires-Dist: anthropic>=0.40.0
13
- Provides-Extra: dev
14
- Requires-Dist: pytest>=8.0; extra == "dev"
15
- Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
16
- Requires-Dist: mypy>=1.8; extra == "dev"
17
- Requires-Dist: ruff>=0.3; extra == "dev"
18
-
19
- # Crucible
20
-
21
- **Your team's standards, applied by Claude, every time.**
22
-
23
- Claude without context applies generic best practices. Crucible loads *your* patterns—so Claude reviews code the way your team would, not the way the internet would.
24
-
25
- ```
26
- ├── Personas: Domain-specific thinking (how to approach problems)
27
- ├── Knowledge: Coding patterns and principles (what to apply)
28
- ├── Cascade: Project → User → Bundled (customizable at every level)
29
- └── Context-aware: Loads relevant skills based on what you're working on
30
- ```
31
-
32
- **Why Crucible?**
33
- - **Consistency** — Same checklist every time, for every engineer, every session
34
- - **Automation** — Runs in CI and pre-commit, not just interactively
35
- - **Institutional knowledge** — Your senior engineer's mental checklist, in the repo
36
- - **Your context** — Security fundamentals plus *your* auth patterns, *your* conventions, *your* definition of "done"
37
- - **Cost efficiency** — Filter with free tools first, LLM only on what needs judgment
38
-
39
- > Not affiliated with Atlassian's Crucible.
40
-
41
- ## Install
42
-
43
- ```bash
44
- pip install crucible-mcp
45
- ```
46
-
47
- Add to Claude Code (`.mcp.json`):
48
-
49
- ```json
50
- {
51
- "mcpServers": {
52
- "crucible": {
53
- "command": "crucible-mcp"
54
- }
55
- }
56
- }
57
- ```
58
-
59
- With hot reload (recommended for customization):
60
-
61
- ```json
62
- {
63
- "mcpServers": {
64
- "crucible": {
65
- "command": "mcpmon",
66
- "args": ["--watch", "~/.crucible/", "--", "crucible-mcp"]
67
- }
68
- }
69
- }
70
- ```
71
-
72
- ## How It Works
73
-
74
- ```
75
- Code → Detect Domain → Load Personas + Knowledge → Claude with YOUR patterns
76
-
77
- .sol file → web3 domain → security-engineer + SMART_CONTRACT.md → Knows your security rules
78
- ```
79
-
80
- ## MCP Tools
81
-
82
- | Tool | Purpose |
83
- |------|---------|
84
- | `review(path)` | Full review: analysis + skills + knowledge |
85
- | `review(mode='staged')` | Review git changes with skills + knowledge |
86
- | `load_knowledge(files)` | Load specific knowledge files |
87
- | `get_principles(topic)` | Load engineering knowledge by topic |
88
- | `delegate_*` | Direct tool access (semgrep, ruff, slither, bandit) |
89
- | `check_tools()` | Show installed analysis tools |
90
-
91
- The unified `review` tool supports:
92
- - **Path-based**: `review(path="src/")` - analyze files/directories
93
- - **Git-aware**: `review(mode="staged")` - analyze changes (staged, unstaged, branch, commits)
94
- - **Quick mode**: `review(path, include_skills=false)` - analysis only, no skills/knowledge
95
-
96
- ## CLI
97
-
98
- ```bash
99
- crucible init # Initialize .crucible/ for your project
100
- crucible review # Review staged changes
101
- crucible review --mode branch # Review current branch vs main
102
- crucible ci generate # Generate GitHub Actions workflow
103
-
104
- crucible skills list # List all skills
105
- crucible skills init <skill> # Copy to .crucible/ for customization
106
-
107
- crucible knowledge list # List all knowledge files
108
- crucible knowledge init <file> # Copy for customization
109
-
110
- crucible hooks install # Install pre-commit hook
111
- ```
112
-
113
- See [ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full flow.
114
-
115
- ## Customization
116
-
117
- Override skills and knowledge for your project or personal preferences:
118
-
119
- ```bash
120
- # Customize a skill for your project
121
- crucible skills init security-engineer
122
- # Creates .crucible/skills/security-engineer/SKILL.md
123
-
124
- # Add project-specific concerns, team conventions, etc.
125
- ```
126
-
127
- Resolution order (first found wins):
128
- 1. `.crucible/` — Project overrides
129
- 2. `~/.claude/crucible/` — User preferences
130
- 3. Bundled — Package defaults
131
-
132
- See [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) for the full guide.
133
-
134
- ## What's Included
135
-
136
- **18 Personas** — Domain-specific thinking: security, performance, accessibility, web3, backend, and more.
137
-
138
- See [SKILLS.md](docs/SKILLS.md) for the full list.
139
-
140
- **12 Knowledge Files** — Coding patterns and principles for security, testing, APIs, databases, smart contracts, etc.
141
-
142
- See [KNOWLEDGE.md](docs/KNOWLEDGE.md) for topics covered.
143
-
144
- ## Documentation
145
-
146
- | Doc | What's In It |
147
- |-----|--------------|
148
- | [FEATURES.md](docs/FEATURES.md) | Complete feature reference |
149
- | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | How MCP, tools, skills, and knowledge fit together |
150
- | [CUSTOMIZATION.md](docs/CUSTOMIZATION.md) | Override skills and knowledge for your project |
151
- | [SKILLS.md](docs/SKILLS.md) | All 18 personas with triggers and focus areas |
152
- | [KNOWLEDGE.md](docs/KNOWLEDGE.md) | All 12 knowledge files with topics covered |
153
- | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Adding tools, skills, and knowledge |
154
-
155
- ## Development
156
-
157
- ```bash
158
- pip install -e ".[dev]"
159
- pytest # Run tests (509 tests)
160
- ruff check src/ --fix # Lint
161
- ```
@@ -1,30 +0,0 @@
1
- crucible/__init__.py,sha256=M4v_CsJVOdiAAPgmd54mxkkbnes8e5ifMznDuOJhzzY,77
2
- crucible/cli.py,sha256=NwYbIUAW4zfPUIOw1tsASsV0rtEjiillvdO1tslkH_Y,74932
3
- crucible/errors.py,sha256=HrX_yvJEhXJoKodXGo_iY9wqx2J3ONYy0a_LbrVC5As,819
4
- crucible/models.py,sha256=jaxbiPc1E7bJxKPLadZe1dbSJdq-WINsxjveeSNNqeg,2066
5
- crucible/server.py,sha256=oyfDl5-Ih3eoXBGDZ0ud7H3m2v0tn-Mc7mo19Bd-d00,46756
6
- crucible/domain/__init__.py,sha256=2fsoB5wH2Pl3vtGRt4voYOSZ04-zLoW8pNq6nvzVMgU,118
7
- crucible/domain/detection.py,sha256=TNeLB_VQgS1AsT5BKDf_tIpGa47THrFoRXwU4u54VB0,1797
8
- crucible/enforcement/__init__.py,sha256=FOaGSrE1SWFPxBJ1L5VoDhQDmlJgRXXs_iiI20wHf2Q,867
9
- crucible/enforcement/assertions.py,sha256=ay5QvJIr_YaqWYbrJNhbouafJOiy4ZhwiX7E9VAY3s4,8166
10
- crucible/enforcement/budget.py,sha256=-wFTlVY80c3-eJhvmlWrdlS8LB8E25aMnhtYpwR38sQ,4706
11
- crucible/enforcement/compliance.py,sha256=tkK-lSC5OMGOgt5xXY_APVSr-qHGB9kE8dUtoTF_n5w,14889
12
- crucible/enforcement/models.py,sha256=dEcPiUL6JEOBtxWOgKd_PZnsW_nUIaFsx18L70fM59M,4574
13
- crucible/enforcement/patterns.py,sha256=hE4Z-JJ9OBruSFPBDxw_aNaSJbyUPD2SWCEwA1KzDmI,9720
14
- crucible/hooks/__init__.py,sha256=k5oEWhTJKEQi-QWBfTbp1p6HaKg55_wVCBVD5pZzdqw,271
15
- crucible/hooks/precommit.py,sha256=OAwvjEACopcrTmWmZMO0S8TqZkvFY_392pJBFCHGSaQ,21561
16
- crucible/knowledge/__init__.py,sha256=unb7kyO1MtB3Zt-TGx_O8LE79KyrGrNHoFFHgUWUvGU,40
17
- crucible/knowledge/loader.py,sha256=DD4gqU6xkssaWvEkbymMOu6YtHab7YLEk-tU9cPTeaE,6666
18
- crucible/review/__init__.py,sha256=Ssva6Yaqcc44AqL9OUMjxypu5R1PPkrmLGk6OKtP15w,547
19
- crucible/review/core.py,sha256=OdJd3kIY0MNkwJ-oUnopogeJ02vtXegPmGqLC1UvKmE,15482
20
- crucible/skills/__init__.py,sha256=L3heXWF0T3aR9yYLFphs1LNlkxAFSPkPuRFMH-S1taI,495
21
- crucible/skills/loader.py,sha256=iC0_V1s6CIse5NXyFGtpLbON8xDxYh8xXmHH7hAX5O0,8642
22
- crucible/synthesis/__init__.py,sha256=CYrkZG4bdAjp8XdOh1smfKscd3YU5lZlaDLGwLE9c-0,46
23
- crucible/tools/__init__.py,sha256=gFRThTk1E-fHzpe8bB5rtBG6Z6G-ysPzjVEHfKGbEYU,400
24
- crucible/tools/delegation.py,sha256=_x1y76No3qkmGjjROVvMx1pSKKwU59aRu5R-r07lVFU,12871
25
- crucible/tools/git.py,sha256=7-aJCesoQe3ZEBFcRxHBhY8RpZrBlNtHSns__RqiG04,10406
26
- crucible_mcp-0.5.0.dist-info/METADATA,sha256=d0ui9gJweDBJox6HvWiW6LvWAfaB9tOjXZJhF6eksuE,5201
27
- crucible_mcp-0.5.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
28
- crucible_mcp-0.5.0.dist-info/entry_points.txt,sha256=18BZaH1OlFSFYtKuHq0Z8yYX8Wmx7Ikfqay-P00ZX3Q,83
29
- crucible_mcp-0.5.0.dist-info/top_level.txt,sha256=4hzuFgqbFPOO-WiU_DYxTm8VYIxTXh7Wlp0gRcWR0Cs,9
30
- crucible_mcp-0.5.0.dist-info/RECORD,,