claude-jacked 0.2.9__py3-none-any.whl → 0.3.1__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.
- {claude_jacked-0.2.9.dist-info → claude_jacked-0.3.1.dist-info}/METADATA +200 -56
- {claude_jacked-0.2.9.dist-info → claude_jacked-0.3.1.dist-info}/RECORD +8 -8
- jacked/__init__.py +34 -14
- jacked/cli.py +201 -116
- jacked/data/hooks/security_gatekeeper.py +415 -0
- jacked/data/prompts/security_gatekeeper.txt +0 -58
- {claude_jacked-0.2.9.dist-info → claude_jacked-0.3.1.dist-info}/WHEEL +0 -0
- {claude_jacked-0.2.9.dist-info → claude_jacked-0.3.1.dist-info}/entry_points.txt +0 -0
- {claude_jacked-0.2.9.dist-info → claude_jacked-0.3.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-jacked
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Summary: Smart reviewers, commands, and session search for Claude Code
|
|
5
5
|
Project-URL: Homepage, https://github.com/jackneil/claude-jacked
|
|
6
6
|
Project-URL: Repository, https://github.com/jackneil/claude-jacked
|
|
7
7
|
Project-URL: Issues, https://github.com/jackneil/claude-jacked/issues
|
|
@@ -19,25 +19,34 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
19
19
|
Requires-Python: >=3.10
|
|
20
20
|
Requires-Dist: click>=8.0.0
|
|
21
21
|
Requires-Dist: python-dotenv>=1.0.0
|
|
22
|
-
Requires-Dist: qdrant-client>=1.7.0
|
|
23
22
|
Requires-Dist: rich>=13.0.0
|
|
23
|
+
Provides-Extra: all
|
|
24
|
+
Requires-Dist: anthropic>=0.40.0; extra == 'all'
|
|
25
|
+
Requires-Dist: qdrant-client>=1.7.0; extra == 'all'
|
|
24
26
|
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: anthropic>=0.40.0; extra == 'dev'
|
|
25
28
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
26
29
|
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: qdrant-client>=1.7.0; extra == 'dev'
|
|
31
|
+
Provides-Extra: search
|
|
32
|
+
Requires-Dist: qdrant-client>=1.7.0; extra == 'search'
|
|
33
|
+
Provides-Extra: security
|
|
34
|
+
Requires-Dist: anthropic>=0.40.0; extra == 'security'
|
|
27
35
|
Description-Content-Type: text/markdown
|
|
28
36
|
|
|
29
37
|
# claude-jacked
|
|
30
38
|
|
|
31
|
-
**
|
|
39
|
+
**Smart reviewers, quick commands, and session search for Claude Code.** Catch bugs before they ship, search past conversations, and auto-approve safe commands — all from within Claude Code.
|
|
32
40
|
|
|
33
41
|
---
|
|
34
42
|
|
|
35
43
|
## What You Get
|
|
36
44
|
|
|
37
|
-
- **Find past solutions instantly** — "How did I fix that login bug last month?" Just ask, and get the answer.
|
|
38
|
-
- **Work from any computer** — Start on your desktop, continue on your laptop. Your history follows you.
|
|
39
|
-
- **Share knowledge with your team** — Your teammate already solved this problem. Find their solution in seconds.
|
|
40
45
|
- **Catch mistakes before they ship** — Built-in reviewers check for security issues, complexity, and common bugs.
|
|
46
|
+
- **Quick commands** — `/dc`, `/pr`, `/learn`, `/redo`, `/techdebt`, `/audit-rules` for common workflows.
|
|
47
|
+
- **Find past solutions instantly** — Search past Claude sessions by meaning, not keywords. *(requires [search] extra)*
|
|
48
|
+
- **Work from any computer** — Start on your desktop, continue on your laptop. *(requires [search] extra)*
|
|
49
|
+
- **Auto-approve safe commands** — Security gatekeeper evaluates bash commands so you only get interrupted for risky ones. *(requires [security] extra)*
|
|
41
50
|
- **Sound notifications** — Get audio alerts when Claude needs your attention or finishes a task.
|
|
42
51
|
|
|
43
52
|
---
|
|
@@ -49,6 +58,7 @@ Description-Content-Type: text/markdown
|
|
|
49
58
|
- [Using the Session Search](#using-the-session-search)
|
|
50
59
|
- [Working with Your Team](#working-with-your-team)
|
|
51
60
|
- [Built-in Reviewers and Commands](#built-in-reviewers-and-commands)
|
|
61
|
+
- [Security Gatekeeper](#security-gatekeeper)
|
|
52
62
|
- [Sound Notifications](#sound-notifications)
|
|
53
63
|
- [Uninstall](#uninstall)
|
|
54
64
|
- [Common Issues](#common-issues)
|
|
@@ -58,50 +68,82 @@ Description-Content-Type: text/markdown
|
|
|
58
68
|
|
|
59
69
|
## Quick Start
|
|
60
70
|
|
|
61
|
-
### Option 1: Let Claude Install It
|
|
71
|
+
### Option 1: Let Claude Install It
|
|
62
72
|
|
|
63
|
-
Copy this into Claude Code and it will
|
|
73
|
+
Copy this into Claude Code and it will walk you through the options:
|
|
64
74
|
|
|
65
75
|
```
|
|
66
|
-
Install claude-jacked for me.
|
|
76
|
+
Install claude-jacked for me. Use AskUserQuestion to ask me which features I want:
|
|
77
|
+
|
|
78
|
+
1. First check if pipx and jacked are already installed
|
|
79
|
+
2. Ask me which install tier I want:
|
|
80
|
+
- BASE: Smart reviewers, commands (/dc, /pr, /learn, etc.), behavioral rules
|
|
81
|
+
- SEARCH: Everything above + session search across machines (requires Qdrant Cloud ~$30/mo)
|
|
82
|
+
- SECURITY: Everything above + auto-approve safe bash commands (fewer permission prompts)
|
|
83
|
+
- ALL: Everything
|
|
84
|
+
3. Install based on my choice:
|
|
85
|
+
- BASE: pipx install claude-jacked && jacked install
|
|
86
|
+
- SEARCH: pipx install "claude-jacked[search]" && jacked install
|
|
87
|
+
- SECURITY: pipx install "claude-jacked[security]" && jacked install --security
|
|
88
|
+
- ALL: pipx install "claude-jacked[all]" && jacked install --security
|
|
89
|
+
4. If I chose SEARCH or ALL, help me set up Qdrant Cloud credentials
|
|
90
|
+
5. Verify with: jacked --help
|
|
67
91
|
```
|
|
68
92
|
|
|
69
|
-
### Option 2:
|
|
93
|
+
### Option 2: Manual Install
|
|
70
94
|
|
|
71
|
-
**
|
|
95
|
+
**Core (reviewers, commands, behavioral rules):**
|
|
72
96
|
```bash
|
|
73
|
-
|
|
97
|
+
pipx install claude-jacked
|
|
98
|
+
jacked install
|
|
74
99
|
```
|
|
75
100
|
|
|
76
|
-
**
|
|
101
|
+
**Add session search (optional):**
|
|
77
102
|
```bash
|
|
78
|
-
|
|
103
|
+
pipx install "claude-jacked[search]"
|
|
104
|
+
jacked install
|
|
105
|
+
# Then set up Qdrant Cloud credentials (see below)
|
|
79
106
|
```
|
|
80
107
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
### Option 3: Manual Install
|
|
84
|
-
|
|
108
|
+
**Add security gatekeeper (optional):**
|
|
85
109
|
```bash
|
|
86
|
-
pipx install claude-jacked
|
|
87
|
-
jacked install
|
|
110
|
+
pipx install "claude-jacked[security]"
|
|
111
|
+
jacked install --security
|
|
88
112
|
```
|
|
89
113
|
|
|
90
|
-
|
|
114
|
+
**Everything:**
|
|
115
|
+
```bash
|
|
116
|
+
pipx install "claude-jacked[all]"
|
|
117
|
+
jacked install --security
|
|
118
|
+
```
|
|
91
119
|
|
|
92
120
|
---
|
|
93
121
|
|
|
94
122
|
## What's Included
|
|
95
123
|
|
|
96
|
-
|
|
124
|
+
### Base (`pip install claude-jacked`)
|
|
97
125
|
|
|
98
126
|
| Feature | What It Does |
|
|
99
127
|
|---------|--------------|
|
|
100
|
-
| **Session Search** | Find any past Claude conversation by describing what you were working on |
|
|
101
128
|
| **10 Smart Reviewers** | AI assistants that check your code for bugs, security issues, and complexity |
|
|
102
|
-
| **Quick Commands** | `/dc
|
|
129
|
+
| **Quick Commands** | `/dc`, `/pr`, `/learn`, `/redo`, `/techdebt`, `/audit-rules` |
|
|
130
|
+
| **Behavioral Rules** | Auto-triggers for jacked commands, lesson tracking, plan-first workflow |
|
|
131
|
+
| **Sound Notifications** | Audio alerts when Claude needs input or finishes (via `--sounds`) |
|
|
132
|
+
|
|
133
|
+
### Search Extra (`pip install "claude-jacked[search]"`)
|
|
134
|
+
|
|
135
|
+
| Feature | What It Does |
|
|
136
|
+
|---------|--------------|
|
|
137
|
+
| **Session Search** | Find any past Claude conversation by describing what you were working on |
|
|
138
|
+
| **Cross-Machine Sync** | Start on desktop, continue on laptop — your history follows you |
|
|
103
139
|
| **Team Sharing** | Search your teammates' sessions (with their permission) |
|
|
104
140
|
|
|
141
|
+
### Security Extra (`pip install "claude-jacked[security]"`)
|
|
142
|
+
|
|
143
|
+
| Feature | What It Does |
|
|
144
|
+
|---------|--------------|
|
|
145
|
+
| **Security Gatekeeper** | Auto-approves safe bash commands, blocks dangerous ones, asks you about ambiguous ones |
|
|
146
|
+
|
|
105
147
|
---
|
|
106
148
|
|
|
107
149
|
## Using the Session Search
|
|
@@ -188,7 +230,11 @@ Type these directly in Claude Code:
|
|
|
188
230
|
| Command | What It Does |
|
|
189
231
|
|---------|--------------|
|
|
190
232
|
| `/dc` | **Double-check** — Reviews your recent work for bugs, security issues, and problems |
|
|
191
|
-
| `/pr` | **Pull Request** —
|
|
233
|
+
| `/pr` | **Pull Request** — Checks PR status, creates/updates PRs with proper issue linking |
|
|
234
|
+
| `/learn` | **Learn** — Distills a lesson from the current session into a CLAUDE.md rule |
|
|
235
|
+
| `/redo` | **Redo** — Scraps the current approach and re-implements cleanly with full hindsight |
|
|
236
|
+
| `/techdebt` | **Tech Debt** — Scans for TODOs, oversized files, missing tests, dead code |
|
|
237
|
+
| `/audit-rules` | **Audit Rules** — Checks CLAUDE.md for duplicates, contradictions, stale rules |
|
|
192
238
|
|
|
193
239
|
### Smart Reviewers
|
|
194
240
|
|
|
@@ -208,6 +254,58 @@ Use the double-check reviewer to review what we just built
|
|
|
208
254
|
|
|
209
255
|
---
|
|
210
256
|
|
|
257
|
+
## Security Gatekeeper
|
|
258
|
+
|
|
259
|
+
The security gatekeeper is a PreToolUse hook that intercepts every bash command Claude runs and decides whether to auto-approve it or ask you first.
|
|
260
|
+
|
|
261
|
+
### How It Works
|
|
262
|
+
|
|
263
|
+
A 4-tier evaluation chain, fastest first:
|
|
264
|
+
|
|
265
|
+
| Tier | Speed | What It Does |
|
|
266
|
+
|------|-------|--------------|
|
|
267
|
+
| **Deny patterns** | <1ms | Blocks dangerous commands (sudo, rm -rf /, disk wipe, etc.) |
|
|
268
|
+
| **Permission rules** | <1ms | Checks commands already approved in your Claude settings |
|
|
269
|
+
| **Local allowlist** | <1ms | Matches safe patterns (git, pytest, linting, docker, etc.) |
|
|
270
|
+
| **LLM evaluation** | ~2s | Sends ambiguous commands to Haiku for safety evaluation |
|
|
271
|
+
|
|
272
|
+
About 90% of commands resolve in under 2 milliseconds. The LLM tier also reads the contents of referenced Python/SQL/shell scripts and evaluates what the code actually does.
|
|
273
|
+
|
|
274
|
+
### Install / Uninstall
|
|
275
|
+
|
|
276
|
+
The security gatekeeper is opt-in. To enable it:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
pip install "claude-jacked[security]"
|
|
280
|
+
jacked install --security
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
To remove just the security hook:
|
|
284
|
+
```bash
|
|
285
|
+
jacked uninstall --security
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Debug Logging
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
# Always-on log (decisions only)
|
|
292
|
+
cat ~/.claude/hooks-debug.log
|
|
293
|
+
|
|
294
|
+
# Verbose debug mode
|
|
295
|
+
export JACKED_HOOK_DEBUG=1
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Faster LLM Evaluation
|
|
299
|
+
|
|
300
|
+
If you have an Anthropic API key, the gatekeeper uses the SDK directly (~2s) instead of the CLI fallback (~8s):
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
pip install anthropic # or: pip install claude-jacked[security]
|
|
304
|
+
export ANTHROPIC_API_KEY="sk-..."
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
211
309
|
## Sound Notifications
|
|
212
310
|
|
|
213
311
|
Get audio alerts so you don't have to watch the terminal:
|
|
@@ -277,6 +375,8 @@ Help me fix jacked path issues on Windows
|
|
|
277
375
|
|
|
278
376
|
## Cloud Database Setup (Qdrant)
|
|
279
377
|
|
|
378
|
+
> **This is only needed if you installed the `[search]` extra.** The base install works fine without Qdrant.
|
|
379
|
+
|
|
280
380
|
The session search feature stores your conversations in a cloud database so you can access them from any computer.
|
|
281
381
|
|
|
282
382
|
### Why Qdrant?
|
|
@@ -288,10 +388,11 @@ The session search feature stores your conversations in a cloud database so you
|
|
|
288
388
|
|
|
289
389
|
### Setting Up Qdrant Cloud
|
|
290
390
|
|
|
291
|
-
1.
|
|
292
|
-
2.
|
|
293
|
-
3.
|
|
294
|
-
4.
|
|
391
|
+
1. Install the search extra: `pip install "claude-jacked[search]"`
|
|
392
|
+
2. Go to [cloud.qdrant.io](https://cloud.qdrant.io) and create an account
|
|
393
|
+
3. Create a new cluster (the paid tier ~$30/month is required for the search features)
|
|
394
|
+
4. Copy your cluster URL and API key
|
|
395
|
+
5. Add them to your shell profile:
|
|
295
396
|
|
|
296
397
|
**Mac/Linux** — Add to `~/.bashrc` or `~/.zshrc`:
|
|
297
398
|
```bash
|
|
@@ -301,7 +402,7 @@ export QDRANT_CLAUDE_SESSIONS_API_KEY="your-api-key"
|
|
|
301
402
|
|
|
302
403
|
**Windows** — Add to your environment variables, or add to `~/.bashrc` in Git Bash.
|
|
303
404
|
|
|
304
|
-
|
|
405
|
+
6. Restart your terminal and run:
|
|
305
406
|
```bash
|
|
306
407
|
jacked backfill # Index your existing sessions
|
|
307
408
|
jacked status # Verify it's working
|
|
@@ -343,13 +444,16 @@ jacked delete <session_id> # Remove from index
|
|
|
343
444
|
jacked cleardb # Delete all your data
|
|
344
445
|
|
|
345
446
|
# Setup
|
|
346
|
-
jacked install # Install
|
|
447
|
+
jacked install # Install agents, commands, rules
|
|
448
|
+
jacked install --search # Also add session indexing hook
|
|
449
|
+
jacked install --security # Also add security gatekeeper hook
|
|
347
450
|
jacked install --sounds # Also add sound notifications
|
|
348
451
|
jacked uninstall # Remove from Claude Code
|
|
349
452
|
jacked uninstall --sounds # Remove only sounds
|
|
350
|
-
jacked
|
|
453
|
+
jacked uninstall --security # Remove only security hook
|
|
454
|
+
jacked backfill # Index all existing sessions (requires [search])
|
|
351
455
|
jacked backfill --force # Re-index everything
|
|
352
|
-
jacked status # Check connectivity
|
|
456
|
+
jacked status # Check connectivity (requires [search])
|
|
353
457
|
jacked configure --show # Show current config
|
|
354
458
|
```
|
|
355
459
|
|
|
@@ -371,6 +475,8 @@ jacked configure --show # Show current config
|
|
|
371
475
|
| `JACKED_TEAMMATE_WEIGHT` | 0.8 | How much to weight teammate results |
|
|
372
476
|
| `JACKED_OTHER_REPO_WEIGHT` | 0.7 | How much to weight other repos |
|
|
373
477
|
| `JACKED_TIME_DECAY_HALFLIFE_WEEKS` | 35 | How fast old sessions lose relevance |
|
|
478
|
+
| `JACKED_HOOK_DEBUG` | (unset) | Set to `1` for verbose security hook logging |
|
|
479
|
+
| `ANTHROPIC_API_KEY` | (unset) | Enables fast (~2s) LLM evaluation in security hook |
|
|
374
480
|
|
|
375
481
|
</details>
|
|
376
482
|
|
|
@@ -437,16 +543,32 @@ jacked configure --show # Show current config
|
|
|
437
543
|
<details>
|
|
438
544
|
<summary><strong>Hook Configuration</strong></summary>
|
|
439
545
|
|
|
440
|
-
The `jacked install` command adds
|
|
546
|
+
The `jacked install` command adds hooks to `~/.claude/settings.json` based on installed extras:
|
|
441
547
|
|
|
442
548
|
```json
|
|
549
|
+
// With [search] extra installed:
|
|
443
550
|
{
|
|
444
551
|
"hooks": {
|
|
445
552
|
"Stop": [{
|
|
446
553
|
"matcher": "",
|
|
447
554
|
"hooks": [{
|
|
448
555
|
"type": "command",
|
|
449
|
-
"command": "jacked index --repo \"$CLAUDE_PROJECT_DIR\""
|
|
556
|
+
"command": "jacked index --repo \"$CLAUDE_PROJECT_DIR\"",
|
|
557
|
+
"async": true
|
|
558
|
+
}]
|
|
559
|
+
}]
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
// With --security flag:
|
|
564
|
+
{
|
|
565
|
+
"hooks": {
|
|
566
|
+
"PreToolUse": [{
|
|
567
|
+
"matcher": "Bash",
|
|
568
|
+
"hooks": [{
|
|
569
|
+
"type": "command",
|
|
570
|
+
"command": "python /path/to/security_gatekeeper.py",
|
|
571
|
+
"timeout": 30
|
|
450
572
|
}]
|
|
451
573
|
}]
|
|
452
574
|
}
|
|
@@ -461,26 +583,48 @@ The `jacked install` command adds this to `~/.claude/settings.json`:
|
|
|
461
583
|
Copy this into Claude Code for a guided installation:
|
|
462
584
|
|
|
463
585
|
```
|
|
464
|
-
Install claude-jacked for me.
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
- Detect
|
|
468
|
-
- Check
|
|
469
|
-
- Check
|
|
470
|
-
- Check
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
586
|
+
Install claude-jacked for me. Use the AskUserQuestion tool to guide me through options.
|
|
587
|
+
|
|
588
|
+
PHASE 1 - DIAGNOSTICS:
|
|
589
|
+
- Detect OS (Windows/Mac/Linux)
|
|
590
|
+
- Check: pipx --version (if missing: pip install pipx && pipx ensurepath)
|
|
591
|
+
- Check: jacked --version (to see if already installed)
|
|
592
|
+
- Check ~/.claude/settings.json for existing hooks
|
|
593
|
+
|
|
594
|
+
PHASE 2 - ASK USER PREFERENCES:
|
|
595
|
+
Use AskUserQuestion with these options:
|
|
596
|
+
|
|
597
|
+
Question: "Which jacked features do you want?"
|
|
598
|
+
Options:
|
|
599
|
+
- BASE (Recommended): Smart reviewers (/dc, /pr, /learn, /redo, /techdebt), 10 agents, behavioral rules. No external services needed.
|
|
600
|
+
- SEARCH: Everything in BASE + search past Claude sessions across machines. Requires Qdrant Cloud (~$30/mo).
|
|
601
|
+
- SECURITY: Everything in BASE + auto-approve safe bash commands. Fewer permission prompts, uses Anthropic API.
|
|
602
|
+
- ALL: Everything. Requires Qdrant Cloud + Anthropic API key for fastest security evaluation.
|
|
603
|
+
|
|
604
|
+
PHASE 3 - INSTALL:
|
|
605
|
+
Based on user choice:
|
|
606
|
+
- BASE: pipx install claude-jacked && jacked install
|
|
607
|
+
- SEARCH: pipx install "claude-jacked[search]" && jacked install
|
|
608
|
+
- SECURITY: pipx install "claude-jacked[security]" && jacked install --security
|
|
609
|
+
- ALL: pipx install "claude-jacked[all]" && jacked install --security
|
|
610
|
+
|
|
611
|
+
PHASE 4 - POST-INSTALL (if SEARCH or ALL):
|
|
612
|
+
Help user set up Qdrant Cloud:
|
|
613
|
+
1. Go to cloud.qdrant.io, create account
|
|
614
|
+
2. Create cluster (paid tier required)
|
|
615
|
+
3. Copy endpoint URL and API key
|
|
616
|
+
4. Add to shell profile:
|
|
617
|
+
export QDRANT_CLAUDE_SESSIONS_ENDPOINT="https://..."
|
|
618
|
+
export QDRANT_CLAUDE_SESSIONS_API_KEY="..."
|
|
619
|
+
5. Restart terminal
|
|
620
|
+
6. Run: jacked backfill
|
|
621
|
+
|
|
622
|
+
PHASE 5 - VERIFY:
|
|
623
|
+
- jacked --help (should show all commands)
|
|
624
|
+
- jacked configure --show (if SEARCH installed)
|
|
625
|
+
|
|
626
|
+
WINDOWS NOTE: If env vars not visible in Git Bash, check Windows system env vars:
|
|
627
|
+
powershell.exe -Command "[System.Environment]::GetEnvironmentVariable('QDRANT_CLAUDE_SESSIONS_ENDPOINT', 'User')"
|
|
484
628
|
```
|
|
485
629
|
|
|
486
630
|
</details>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
jacked/__init__.py,sha256
|
|
2
|
-
jacked/cli.py,sha256=
|
|
1
|
+
jacked/__init__.py,sha256=-nf4gLXaGd9gIAXz2-AaiIdFt1gZbXGDalP0jHTTOFo,1276
|
|
2
|
+
jacked/cli.py,sha256=Uw4Dk0GjMgVzA7vc6w6wBfNeCr3CjbcyeyR9PJvrGbg,51636
|
|
3
3
|
jacked/client.py,sha256=7N4GdjcG8OXfmjUfprlUOJTkyrPyqF1OBstAsplNSa8,18151
|
|
4
4
|
jacked/config.py,sha256=DeC1no5rFsvlb6JaU2PzLyyhI4DaJrxrsfqVugWuC4Q,8606
|
|
5
5
|
jacked/index_write_tracker.py,sha256=E1zVqyZTQdHenp_vXL-gWPvLBo18Ar703_0MI9Cst8U,8679
|
|
@@ -23,11 +23,11 @@ jacked/data/commands/learn.md,sha256=FoD-qKsQSpEayFNP997dyUfV4UJgs8LiojYIWnzOSvA
|
|
|
23
23
|
jacked/data/commands/pr.md,sha256=1orTbDnL4ky2bk5VXm5j66hGybTrNWVTyAPxx_uMggU,193
|
|
24
24
|
jacked/data/commands/redo.md,sha256=4NnCKKi10ybEOHdFObN1aVNaFGOt63eoluwDJUzUFxg,4242
|
|
25
25
|
jacked/data/commands/techdebt.md,sha256=jSdfMN1Kvz6vmsnWw9sCMFpKA8r87e9nDHrE-qsMwG8,3861
|
|
26
|
-
jacked/data/
|
|
26
|
+
jacked/data/hooks/security_gatekeeper.py,sha256=nhiT4X-8zBhjG-i1hKgQzoXNE3NOnekTYGDlns72iXk,14083
|
|
27
27
|
jacked/data/rules/jacked_behaviors.md,sha256=x1qzdj3DLmkhv5TVAdNyIpAdjBGz7IUdXSrko94LOOw,1449
|
|
28
28
|
jacked/data/skills/jacked/SKILL.md,sha256=IEMp-PfWlu5rmS1R5HHblUX1CGwzno2gtO4yQ2cMAg4,5488
|
|
29
|
-
claude_jacked-0.
|
|
30
|
-
claude_jacked-0.
|
|
31
|
-
claude_jacked-0.
|
|
32
|
-
claude_jacked-0.
|
|
33
|
-
claude_jacked-0.
|
|
29
|
+
claude_jacked-0.3.1.dist-info/METADATA,sha256=dCRRqhE9GYB3Z9wl8PdUYDYr2-o5jXCTQAt1Bnuew0Q,22091
|
|
30
|
+
claude_jacked-0.3.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
31
|
+
claude_jacked-0.3.1.dist-info/entry_points.txt,sha256=52JDhetd7OsE9iJryGrQIL3PWhum_QCeLuTeQ9-CTqQ,43
|
|
32
|
+
claude_jacked-0.3.1.dist-info/licenses/LICENSE,sha256=m8NmsH7P5G4VH3VyHWPQUTl2weuNTh1-eaH0RbUcn3k,1066
|
|
33
|
+
claude_jacked-0.3.1.dist-info/RECORD,,
|
jacked/__init__.py
CHANGED
|
@@ -1,22 +1,42 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Claude Jacked -
|
|
2
|
+
Claude Jacked - Smart reviewers, commands, and session search for Claude Code.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
Base install provides agents, commands, and behavioral rules.
|
|
5
|
+
Install extras for additional features:
|
|
6
|
+
pip install "claude-jacked[search]" — session search via Qdrant
|
|
7
|
+
pip install "claude-jacked[security]" — security gatekeeper hook
|
|
8
|
+
pip install "claude-jacked[all]" — everything
|
|
6
9
|
"""
|
|
7
10
|
|
|
8
|
-
__version__ = "0.
|
|
11
|
+
__version__ = "0.3.1"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _qdrant_available() -> bool:
|
|
15
|
+
"""Check if qdrant-client is installed."""
|
|
16
|
+
try:
|
|
17
|
+
import qdrant_client # noqa: F401
|
|
18
|
+
return True
|
|
19
|
+
except ImportError:
|
|
20
|
+
return False
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def __getattr__(name: str):
|
|
24
|
+
"""Lazy imports for backwards compat — only works if [search] extra installed."""
|
|
25
|
+
_search_classes = {
|
|
26
|
+
"SmartForkConfig": "jacked.config",
|
|
27
|
+
"QdrantSessionClient": "jacked.client",
|
|
28
|
+
"SessionIndexer": "jacked.indexer",
|
|
29
|
+
"SessionSearcher": "jacked.searcher",
|
|
30
|
+
"SessionRetriever": "jacked.retriever",
|
|
31
|
+
}
|
|
32
|
+
if name in _search_classes:
|
|
33
|
+
import importlib
|
|
34
|
+
module = importlib.import_module(_search_classes[name])
|
|
35
|
+
return getattr(module, name)
|
|
36
|
+
raise AttributeError(f"module 'jacked' has no attribute {name!r}")
|
|
9
37
|
|
|
10
|
-
from jacked.config import SmartForkConfig
|
|
11
|
-
from jacked.client import QdrantSessionClient
|
|
12
|
-
from jacked.indexer import SessionIndexer
|
|
13
|
-
from jacked.searcher import SessionSearcher
|
|
14
|
-
from jacked.retriever import SessionRetriever
|
|
15
38
|
|
|
16
39
|
__all__ = [
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"SessionIndexer",
|
|
20
|
-
"SessionSearcher",
|
|
21
|
-
"SessionRetriever",
|
|
40
|
+
"__version__",
|
|
41
|
+
"_qdrant_available",
|
|
22
42
|
]
|