@delorenj/claude-notifications 2.0.0 → 2.1.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.
Files changed (206) hide show
  1. package/DO.md +5 -0
  2. package/FIXES-APPLIED.md +195 -0
  3. package/INTEGRATION.md +445 -0
  4. package/LAYOUT-INTEGRATION.md +191 -0
  5. package/QUICK-REFERENCE.md +195 -0
  6. package/README.md +145 -14
  7. package/TASK.md +15 -0
  8. package/ZELLIJ-NOTIFY.md +523 -0
  9. package/_bmad-output/implementation-artifacts/spec-install-multi-cli-hooks.md +241 -0
  10. package/bin/claude-notifications.js +417 -312
  11. package/bin/claude-notify.js +47 -1
  12. package/bin/zellij-notify.js +346 -0
  13. package/bun.lock +35 -0
  14. package/diagnose-zellij.sh +105 -0
  15. package/examples/settings-with-zellij.json +18 -0
  16. package/examples/settings-zellij-only.json +18 -0
  17. package/examples/zellij-notify-examples.sh +143 -0
  18. package/lib/adapters/_stub.js +35 -0
  19. package/lib/adapters/auggie.js +10 -0
  20. package/lib/adapters/claude-code.js +181 -0
  21. package/lib/adapters/codex.js +10 -0
  22. package/lib/adapters/copilot.js +10 -0
  23. package/lib/adapters/gemini.js +10 -0
  24. package/lib/adapters/index.js +240 -0
  25. package/lib/adapters/kimi.js +10 -0
  26. package/lib/adapters/opencode.js +14 -0
  27. package/lib/adapters/vibe.js +10 -0
  28. package/lib/config.js +44 -8
  29. package/lib/tui.js +115 -0
  30. package/lib/zellij.js +248 -0
  31. package/package.json +6 -4
  32. package/postinstall.js +28 -25
  33. package/preuninstall.js +18 -9
  34. package/test/adapters/claude-code.test.js +144 -0
  35. package/test/adapters/patches.test.js +81 -0
  36. package/test/adapters/registry.test.js +89 -0
  37. package/test/adapters/stubs.test.js +46 -0
  38. package/test/cli-json.test.js +79 -0
  39. package/test/helpers/fake-fs.js +59 -0
  40. package/test-integration.sh +113 -0
  41. package/test-notification-plugin.kdl +34 -0
  42. package/test-updated-layout.sh +75 -0
  43. package/test-zellij-cli.sh +72 -0
  44. package/zellij-plugin/.cargo/config.toml +5 -0
  45. package/zellij-plugin/.github/workflows/ci.yml +97 -0
  46. package/zellij-plugin/Cargo.lock +3558 -0
  47. package/zellij-plugin/Cargo.toml +40 -0
  48. package/zellij-plugin/README.md +290 -0
  49. package/zellij-plugin/build.sh +179 -0
  50. package/zellij-plugin/configs/examples/accessibility.kdl +31 -0
  51. package/zellij-plugin/configs/examples/catppuccin.kdl +32 -0
  52. package/zellij-plugin/configs/examples/default.kdl +34 -0
  53. package/zellij-plugin/configs/examples/minimal.kdl +22 -0
  54. package/zellij-plugin/docs/CONFIGURATION.md +191 -0
  55. package/zellij-plugin/docs/INTEGRATION.md +333 -0
  56. package/zellij-plugin/src/animation.rs +451 -0
  57. package/zellij-plugin/src/colors.rs +407 -0
  58. package/zellij-plugin/src/config.rs +664 -0
  59. package/zellij-plugin/src/event_bridge.rs +339 -0
  60. package/zellij-plugin/src/main.rs +420 -0
  61. package/zellij-plugin/src/notification.rs +466 -0
  62. package/zellij-plugin/src/queue.rs +399 -0
  63. package/zellij-plugin/src/renderer.rs +477 -0
  64. package/zellij-plugin/src/state.rs +338 -0
  65. package/zellij-plugin/src/tests.rs +413 -0
  66. package/.claude/checkpoints/1756392335.json +0 -1
  67. package/.claude/checkpoints/1756392341.json +0 -1
  68. package/.claude/checkpoints/1756392347.json +0 -1
  69. package/.claude/checkpoints/1756392376.json +0 -1
  70. package/.claude/checkpoints/1756392377.json +0 -1
  71. package/.claude/checkpoints/1756392386.json +0 -1
  72. package/.claude/checkpoints/1756392387.json +0 -1
  73. package/.claude/checkpoints/1756392398.json +0 -1
  74. package/.claude/checkpoints/1756392400.json +0 -1
  75. package/.claude/checkpoints/1756392427.json +0 -1
  76. package/.claude/checkpoints/1756392428.json +0 -1
  77. package/.claude/checkpoints/1756392486.json +0 -1
  78. package/.claude/checkpoints/1756392488.json +0 -1
  79. package/.claude/checkpoints/1756392558.json +0 -1
  80. package/.claude/checkpoints/1756392559.json +0 -1
  81. package/.claude/checkpoints/summary-session-20250828-105040.md +0 -57
  82. package/.claude/checkpoints/task-1756392207.json +0 -1
  83. package/.claude/checkpoints/task-1756392742.json +0 -1
  84. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  85. package/.claude/commands/analysis/README.md +0 -9
  86. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  87. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  88. package/.claude/commands/analysis/performance-report.md +0 -25
  89. package/.claude/commands/analysis/token-efficiency.md +0 -45
  90. package/.claude/commands/analysis/token-usage.md +0 -25
  91. package/.claude/commands/automation/README.md +0 -9
  92. package/.claude/commands/automation/auto-agent.md +0 -122
  93. package/.claude/commands/automation/self-healing.md +0 -106
  94. package/.claude/commands/automation/session-memory.md +0 -90
  95. package/.claude/commands/automation/smart-agents.md +0 -73
  96. package/.claude/commands/automation/smart-spawn.md +0 -25
  97. package/.claude/commands/automation/workflow-select.md +0 -25
  98. package/.claude/commands/coordination/README.md +0 -9
  99. package/.claude/commands/coordination/agent-spawn.md +0 -25
  100. package/.claude/commands/coordination/init.md +0 -44
  101. package/.claude/commands/coordination/orchestrate.md +0 -43
  102. package/.claude/commands/coordination/spawn.md +0 -45
  103. package/.claude/commands/coordination/swarm-init.md +0 -85
  104. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  105. package/.claude/commands/github/README.md +0 -11
  106. package/.claude/commands/github/code-review-swarm.md +0 -514
  107. package/.claude/commands/github/code-review.md +0 -25
  108. package/.claude/commands/github/github-modes.md +0 -147
  109. package/.claude/commands/github/github-swarm.md +0 -121
  110. package/.claude/commands/github/issue-tracker.md +0 -292
  111. package/.claude/commands/github/issue-triage.md +0 -25
  112. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  113. package/.claude/commands/github/pr-enhance.md +0 -26
  114. package/.claude/commands/github/pr-manager.md +0 -170
  115. package/.claude/commands/github/project-board-sync.md +0 -471
  116. package/.claude/commands/github/release-manager.md +0 -338
  117. package/.claude/commands/github/release-swarm.md +0 -544
  118. package/.claude/commands/github/repo-analyze.md +0 -25
  119. package/.claude/commands/github/repo-architect.md +0 -367
  120. package/.claude/commands/github/swarm-issue.md +0 -482
  121. package/.claude/commands/github/swarm-pr.md +0 -285
  122. package/.claude/commands/github/sync-coordinator.md +0 -301
  123. package/.claude/commands/github/workflow-automation.md +0 -442
  124. package/.claude/commands/hooks/README.md +0 -11
  125. package/.claude/commands/hooks/overview.md +0 -58
  126. package/.claude/commands/hooks/post-edit.md +0 -117
  127. package/.claude/commands/hooks/post-task.md +0 -112
  128. package/.claude/commands/hooks/pre-edit.md +0 -113
  129. package/.claude/commands/hooks/pre-task.md +0 -111
  130. package/.claude/commands/hooks/session-end.md +0 -118
  131. package/.claude/commands/hooks/setup.md +0 -103
  132. package/.claude/commands/memory/README.md +0 -9
  133. package/.claude/commands/memory/memory-persist.md +0 -25
  134. package/.claude/commands/memory/memory-search.md +0 -25
  135. package/.claude/commands/memory/memory-usage.md +0 -25
  136. package/.claude/commands/memory/neural.md +0 -47
  137. package/.claude/commands/memory/usage.md +0 -46
  138. package/.claude/commands/monitoring/README.md +0 -9
  139. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  140. package/.claude/commands/monitoring/agents.md +0 -44
  141. package/.claude/commands/monitoring/real-time-view.md +0 -25
  142. package/.claude/commands/monitoring/status.md +0 -46
  143. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  144. package/.claude/commands/optimization/README.md +0 -9
  145. package/.claude/commands/optimization/auto-topology.md +0 -62
  146. package/.claude/commands/optimization/cache-manage.md +0 -25
  147. package/.claude/commands/optimization/parallel-execute.md +0 -25
  148. package/.claude/commands/optimization/parallel-execution.md +0 -50
  149. package/.claude/commands/optimization/topology-optimize.md +0 -25
  150. package/.claude/commands/pair/README.md +0 -261
  151. package/.claude/commands/pair/commands.md +0 -546
  152. package/.claude/commands/pair/config.md +0 -510
  153. package/.claude/commands/pair/examples.md +0 -512
  154. package/.claude/commands/pair/modes.md +0 -348
  155. package/.claude/commands/pair/session.md +0 -407
  156. package/.claude/commands/pair/start.md +0 -209
  157. package/.claude/commands/sparc/analyzer.md +0 -52
  158. package/.claude/commands/sparc/architect.md +0 -53
  159. package/.claude/commands/sparc/batch-executor.md +0 -54
  160. package/.claude/commands/sparc/coder.md +0 -54
  161. package/.claude/commands/sparc/debugger.md +0 -54
  162. package/.claude/commands/sparc/designer.md +0 -53
  163. package/.claude/commands/sparc/documenter.md +0 -54
  164. package/.claude/commands/sparc/innovator.md +0 -54
  165. package/.claude/commands/sparc/memory-manager.md +0 -54
  166. package/.claude/commands/sparc/optimizer.md +0 -54
  167. package/.claude/commands/sparc/orchestrator.md +0 -132
  168. package/.claude/commands/sparc/researcher.md +0 -54
  169. package/.claude/commands/sparc/reviewer.md +0 -54
  170. package/.claude/commands/sparc/sparc-modes.md +0 -174
  171. package/.claude/commands/sparc/swarm-coordinator.md +0 -54
  172. package/.claude/commands/sparc/tdd.md +0 -54
  173. package/.claude/commands/sparc/tester.md +0 -54
  174. package/.claude/commands/sparc/workflow-manager.md +0 -54
  175. package/.claude/commands/stream-chain/pipeline.md +0 -121
  176. package/.claude/commands/stream-chain/run.md +0 -70
  177. package/.claude/commands/swarm/analysis.md +0 -95
  178. package/.claude/commands/swarm/development.md +0 -96
  179. package/.claude/commands/swarm/examples.md +0 -168
  180. package/.claude/commands/swarm/maintenance.md +0 -102
  181. package/.claude/commands/swarm/optimization.md +0 -117
  182. package/.claude/commands/swarm/research.md +0 -136
  183. package/.claude/commands/swarm/testing.md +0 -131
  184. package/.claude/commands/training/README.md +0 -9
  185. package/.claude/commands/training/model-update.md +0 -25
  186. package/.claude/commands/training/neural-patterns.md +0 -74
  187. package/.claude/commands/training/neural-train.md +0 -25
  188. package/.claude/commands/training/pattern-learn.md +0 -25
  189. package/.claude/commands/training/specialization.md +0 -63
  190. package/.claude/commands/truth/start.md +0 -143
  191. package/.claude/commands/verify/check.md +0 -50
  192. package/.claude/commands/verify/start.md +0 -128
  193. package/.claude/commands/workflows/README.md +0 -9
  194. package/.claude/commands/workflows/development.md +0 -78
  195. package/.claude/commands/workflows/research.md +0 -63
  196. package/.claude/commands/workflows/workflow-create.md +0 -25
  197. package/.claude/commands/workflows/workflow-execute.md +0 -25
  198. package/.claude/commands/workflows/workflow-export.md +0 -25
  199. package/.claude/config.json +0 -36
  200. package/.claude/settings.json +0 -162
  201. package/.claude-flow/metrics/agent-metrics.json +0 -1
  202. package/.claude-flow/metrics/performance.json +0 -9
  203. package/.claude-flow/metrics/system-metrics.json +0 -230
  204. package/.claude-flow/metrics/task-metrics.json +0 -10
  205. package/FIXES.md +0 -75
  206. package/test-results.md +0 -163
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env bash
2
+ # Test script for updated agent-orchestrator layout with gruvbox theme
3
+
4
+ echo "🎨 Testing Visual Notifications with Gruvbox Theme"
5
+ echo "=================================================="
6
+ echo ""
7
+
8
+ # Check if in Zellij
9
+ if [ -z "$ZELLIJ" ]; then
10
+ echo "❌ Not in a Zellij session"
11
+ echo ""
12
+ echo "Launch Zellij with your updated layout:"
13
+ echo " zellij --layout ~/.config/zellij/layouts/agent-orchestrator.kdl"
14
+ echo ""
15
+ echo "Or if you're using this as your default:"
16
+ echo " zellij"
17
+ exit 1
18
+ fi
19
+
20
+ # Verify active session
21
+ if ! zellij action query-tab-names > /dev/null 2>&1; then
22
+ echo "❌ ZELLIJ env var is set but no active session detected"
23
+ echo "Your environment has a stale ZELLIJ variable."
24
+ echo ""
25
+ echo "Fix:"
26
+ echo " 1. Exit this shell"
27
+ echo " 2. Start fresh Zellij: zellij --layout ~/.config/zellij/layouts/agent-orchestrator.kdl"
28
+ exit 1
29
+ fi
30
+
31
+ echo "✅ Inside active Zellij session"
32
+ echo ""
33
+ echo "Testing color differentiation..."
34
+ echo ""
35
+
36
+ # Test each notification type with clear labels
37
+ echo "📗 Sending SUCCESS notification (should be BRIGHT GREEN)"
38
+ zellij-notify -t success --title "Success Test" "This should appear in bright green (#b8bb26)"
39
+ sleep 2
40
+
41
+ echo ""
42
+ echo "📕 Sending ERROR notification (should be BRIGHT RED)"
43
+ zellij-notify -t error --title "Error Test" "This should appear in bright red (#fb4934)"
44
+ sleep 2
45
+
46
+ echo ""
47
+ echo "📙 Sending WARNING notification (should be BRIGHT YELLOW)"
48
+ zellij-notify -t warning --title "Warning Test" "This should appear in bright yellow (#fabd2f)"
49
+ sleep 2
50
+
51
+ echo ""
52
+ echo "📘 Sending INFO notification (should be BLUE)"
53
+ zellij-notify -t info --title "Info Test" "This should appear in blue (#83a598)"
54
+ sleep 2
55
+
56
+ echo ""
57
+ echo "📓 Sending PROGRESS notification (should be PINK/MAGENTA)"
58
+ zellij-notify -t progress --title "Progress Test" "This should appear in pink/magenta (#d3869b)"
59
+ sleep 2
60
+
61
+ echo ""
62
+ echo "🔔 Sending ATTENTION notification (should be YELLOW)"
63
+ zellij-notify -t attention --title "Attention Test" "This should appear in yellow (same as warning)"
64
+ sleep 2
65
+
66
+ echo ""
67
+ echo "✨ Color test complete!"
68
+ echo ""
69
+ echo "Results:"
70
+ echo " - If all colors are the same (green), the theme isn't being applied"
71
+ echo " - If colors are distinct, the integration is working correctly!"
72
+ echo ""
73
+ echo "💡 To restart Zellij with the updated layout:"
74
+ echo " 1. Exit Zellij (Ctrl+Q or type 'exit' in all panes)"
75
+ echo " 2. Run: zellij --layout ~/.config/zellij/layouts/agent-orchestrator.kdl"
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env bash
2
+ # Quick test script for zellij-notify CLI (outside Zellij)
3
+
4
+ echo "🧪 Testing zellij-notify CLI"
5
+ echo "============================"
6
+ echo ""
7
+
8
+ # Test 1: Help
9
+ echo "✓ Test 1: Help command"
10
+ if zellij-notify --help > /dev/null 2>&1; then
11
+ echo " ✅ Help works"
12
+ else
13
+ echo " ❌ Help failed"
14
+ exit 1
15
+ fi
16
+
17
+ # Test 2: Version in package.json
18
+ echo ""
19
+ echo "✓ Test 2: Package configuration"
20
+ if grep -q "zellij-notify" package.json; then
21
+ echo " ✅ Binary registered in package.json"
22
+ else
23
+ echo " ❌ Binary not found in package.json"
24
+ exit 1
25
+ fi
26
+
27
+ # Test 3: Executable permissions
28
+ echo ""
29
+ echo "✓ Test 3: Executable permissions"
30
+ if [ -x "./bin/zellij-notify.js" ]; then
31
+ echo " ✅ File is executable"
32
+ else
33
+ echo " ❌ File is not executable"
34
+ exit 1
35
+ fi
36
+
37
+ # Test 4: Node.js syntax check
38
+ echo ""
39
+ echo "✓ Test 4: JavaScript syntax"
40
+ if node -c ./bin/zellij-notify.js > /dev/null 2>&1; then
41
+ echo " ✅ Valid JavaScript syntax"
42
+ else
43
+ echo " ❌ Syntax error detected"
44
+ exit 1
45
+ fi
46
+
47
+ # Test 5: Library functions
48
+ echo ""
49
+ echo "✓ Test 5: Library module"
50
+ if node -e "require('./lib/zellij')" > /dev/null 2>&1; then
51
+ echo " ✅ Library module loads correctly"
52
+ else
53
+ echo " ❌ Library module has errors"
54
+ exit 1
55
+ fi
56
+
57
+ # Test 6: Expected error outside Zellij
58
+ echo ""
59
+ echo "✓ Test 6: Error handling (not in Zellij)"
60
+ if zellij-notify "test" 2>&1 | grep -q "Not in a Zellij session"; then
61
+ echo " ✅ Correctly detects when not in Zellij"
62
+ else
63
+ echo " ⚠️ Warning: Detection may not be working correctly"
64
+ fi
65
+
66
+ echo ""
67
+ echo "✨ All tests passed!"
68
+ echo ""
69
+ echo "📝 To test full functionality:"
70
+ echo " 1. Launch Zellij: zellij --layout test-notification-plugin.kdl"
71
+ echo " 2. Run: ./examples/zellij-notify-examples.sh"
72
+ echo ""
@@ -0,0 +1,5 @@
1
+ [build]
2
+ target = "wasm32-wasip1"
3
+
4
+ [target.wasm32-wasip1]
5
+ rustflags = ["-Z", "wasi-exec-model=reactor"]
@@ -0,0 +1,97 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - 'zellij-plugin/**'
8
+ pull_request:
9
+ branches: [main]
10
+ paths:
11
+ - 'zellij-plugin/**'
12
+
13
+ env:
14
+ CARGO_TERM_COLOR: always
15
+
16
+ jobs:
17
+ build:
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - name: Install Rust toolchain
24
+ uses: dtolnay/rust-toolchain@stable
25
+ with:
26
+ targets: wasm32-wasi
27
+ components: clippy, rustfmt
28
+
29
+ - name: Cache cargo registry
30
+ uses: actions/cache@v4
31
+ with:
32
+ path: |
33
+ ~/.cargo/registry
34
+ ~/.cargo/git
35
+ zellij-plugin/target
36
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-cargo-
39
+
40
+ - name: Check formatting
41
+ working-directory: zellij-plugin
42
+ run: cargo fmt -- --check
43
+
44
+ - name: Run clippy
45
+ working-directory: zellij-plugin
46
+ run: cargo clippy -- -D warnings
47
+
48
+ - name: Run tests
49
+ working-directory: zellij-plugin
50
+ run: cargo test --verbose
51
+
52
+ - name: Build debug
53
+ working-directory: zellij-plugin
54
+ run: cargo build --target wasm32-wasi
55
+
56
+ - name: Build release
57
+ working-directory: zellij-plugin
58
+ run: cargo build --release --target wasm32-wasi
59
+
60
+ - name: Check binary size
61
+ working-directory: zellij-plugin
62
+ run: |
63
+ size=$(du -b target/wasm32-wasi/release/zellij_visual_notifications.wasm | cut -f1)
64
+ echo "Binary size: $size bytes"
65
+ # Fail if larger than 500KB
66
+ if [ "$size" -gt 512000 ]; then
67
+ echo "Binary too large! Max: 500KB, Actual: $((size / 1024))KB"
68
+ exit 1
69
+ fi
70
+
71
+ - name: Upload artifact
72
+ uses: actions/upload-artifact@v4
73
+ with:
74
+ name: zellij-visual-notifications
75
+ path: zellij-plugin/target/wasm32-wasi/release/zellij_visual_notifications.wasm
76
+
77
+ release:
78
+ needs: build
79
+ runs-on: ubuntu-latest
80
+ if: startsWith(github.ref, 'refs/tags/zellij-v')
81
+
82
+ steps:
83
+ - uses: actions/checkout@v4
84
+
85
+ - name: Download artifact
86
+ uses: actions/download-artifact@v4
87
+ with:
88
+ name: zellij-visual-notifications
89
+ path: release/
90
+
91
+ - name: Create release
92
+ uses: softprops/action-gh-release@v1
93
+ with:
94
+ files: release/zellij_visual_notifications.wasm
95
+ generate_release_notes: true
96
+ env:
97
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}