@fermindi/pwn-cli 0.3.6 β†’ 0.4.0

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.
package/cli/update.js CHANGED
@@ -217,6 +217,25 @@ export default async function updateCommand(args = []) {
217
217
  }
218
218
  }
219
219
 
220
+ // Update .claude/settings.json (hooks) - only if doesn't exist (user config)
221
+ const claudeSettingsTemplate = join(__dirname, '../templates/workspace/.claude/settings.json');
222
+ const claudeSettingsTarget = join(cwd, '.claude', 'settings.json');
223
+
224
+ if (existsSync(claudeSettingsTemplate) && !existsSync(claudeSettingsTarget)) {
225
+ if (dryRun) {
226
+ console.log(` πŸ“ Would create: .claude/settings.json (notification hooks)`);
227
+ } else {
228
+ const claudeDir = join(cwd, '.claude');
229
+ if (!existsSync(claudeDir)) {
230
+ mkdirSync(claudeDir, { recursive: true });
231
+ }
232
+ const templateContent = readFileSync(claudeSettingsTemplate, 'utf8');
233
+ writeFileSync(claudeSettingsTarget, templateContent);
234
+ console.log(` πŸ“ Created: .claude/settings.json (notification hooks)`);
235
+ }
236
+ updated.push('.claude/settings.json');
237
+ }
238
+
220
239
  // Update state.json with new version
221
240
  if (!dryRun && existsSync(statePath)) {
222
241
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fermindi/pwn-cli",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "Professional AI Workspace - Inject structured memory and automation into any project for AI-powered development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -219,6 +219,16 @@ export async function inject(options = {}) {
219
219
  console.log('πŸ“ Created .claude/commands/ with PWN slash commands');
220
220
  }
221
221
  }
222
+
223
+ // Copy settings.json with hooks (if doesn't exist)
224
+ const settingsSource = join(claudeTemplateDir, 'settings.json');
225
+ const settingsTarget = join(claudeDir, 'settings.json');
226
+ if (existsSync(settingsSource) && !existsSync(settingsTarget)) {
227
+ cpSync(settingsSource, settingsTarget);
228
+ if (!silent) {
229
+ console.log('πŸ“ Created .claude/settings.json with notification hooks');
230
+ }
231
+ }
222
232
  }
223
233
 
224
234
  // Backup other AI files (not CLAUDE.md) to .ai/
@@ -0,0 +1,24 @@
1
+ {
2
+ "hooks": {
3
+ "Notification": [
4
+ {
5
+ "matcher": "permission_prompt",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "pwn notify send \"Claude Code aguardando permissΓ£o\" --title \"PWN\""
10
+ }
11
+ ]
12
+ },
13
+ {
14
+ "matcher": "idle_prompt",
15
+ "hooks": [
16
+ {
17
+ "type": "command",
18
+ "command": "pwn notify send \"Claude Code aguardando input\" --title \"PWN\""
19
+ }
20
+ ]
21
+ }
22
+ ]
23
+ }
24
+ }