Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .devcontainer/init-firewall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@ iptables -A OUTPUT -d "$HOST_NETWORK" -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
if command -v ip6tables >/dev/null 2>&1; then
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
fi

# First allow established connections for already approved traffic
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ For more installation options, uninstall steps, and troubleshooting, see the [se

1. Install Claude Code:

**MacOS/Linux (Recommended):**
**MacOS/Linux/WSL (Recommended):**
```bash
curl -fsSL https://claude.ai/install.sh | bash
```
Expand Down
4 changes: 2 additions & 2 deletions plugins/hookify/core/config_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import sys
import glob
import re
from typing import List, Optional, Dict, Any
from typing import List, Optional, Dict, Any, Tuple
from dataclasses import dataclass, field


Expand Down Expand Up @@ -84,7 +84,7 @@ def from_dict(cls, frontmatter: Dict[str, Any], message: str) -> 'Rule':
)


def extract_frontmatter(content: str) -> tuple[Dict[str, Any], str]:
def extract_frontmatter(content: str) -> Tuple[Dict[str, Any], str]:
"""Extract YAML frontmatter and message body from markdown.

Returns (frontmatter_dict, message_body).
Expand Down
8 changes: 3 additions & 5 deletions plugins/hookify/core/rule_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,9 @@ def _extract_field(self, field: str, tool_name: str,
return tool_input.get('command', '')

elif tool_name in ['Write', 'Edit']:
if field == 'content':
# Write uses 'content', Edit has 'new_string'
return tool_input.get('content') or tool_input.get('new_string', '')
elif field == 'new_text' or field == 'new_string':
return tool_input.get('new_string', '')
if field in ['content', 'new_text', 'new_string']:
# new_text maps to Write content and Edit new_string.
return tool_input.get('new_string') or tool_input.get('content', '')
elif field == 'old_text' or field == 'old_string':
return tool_input.get('old_string', '')
elif field == 'file_path':
Expand Down
10 changes: 9 additions & 1 deletion plugins/plugin-dev/commands/create-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,15 @@ Guide the user through creating a complete, high-quality Claude Code plugin from
- For settings: Provide configuration templates

2. **Add marketplace entry** (if publishing):
- Show user how to add to marketplace.json
- Show user how to add to marketplace.json:
```json
{
"name": "plugin-name",
"description": "Brief plugin description",
"source": "./plugins/plugin-name",
"category": "development"
}
```
- Help draft marketplace description
- Suggest category and tags

Expand Down
5 changes: 4 additions & 1 deletion scripts/auto-close-duplicates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,10 @@ async function autoCloseDuplicates(): Promise<void> {
);
}

autoCloseDuplicates().catch(console.error);
autoCloseDuplicates().catch((error) => {
console.error(error);
process.exitCode = 1;
});

// Make it a module
export {};
7 changes: 5 additions & 2 deletions scripts/backfill-duplicate-comments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,10 @@ Environment Variables:
);
}

backfillDuplicateComments().catch(console.error);
backfillDuplicateComments().catch((error) => {
console.error(error);
process.exitCode = 1;
});

// Make it a module
export {};
export {};