@devo-bmad-custom/agent-orchestration 1.0.6 → 1.0.8

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 (71) hide show
  1. package/package.json +4 -2
  2. package/src/.agents/skills/tmux-commands/SKILL.md +1 -1
  3. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/SKILL.md +475 -0
  4. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/vision-requests.md +736 -0
  5. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/visionkit-scanner.md +738 -0
  6. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/SKILL.md +410 -0
  7. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/references/weatherkit-patterns.md +567 -0
  8. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/SKILL.md +497 -0
  9. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/references/widgetkit-advanced.md +871 -0
  10. package/src/.agents/skills/ui-ux-pro-custom/data/typography.csv +58 -0
  11. package/src/.agents/skills/ui-ux-pro-custom/data/ui-reasoning.csv +101 -0
  12. package/src/.agents/skills/ui-ux-pro-custom/data/ux-guidelines.csv +100 -0
  13. package/src/.agents/skills/ui-ux-pro-custom/data/web-interface.csv +31 -0
  14. package/src/.agents/skills/ui-ux-pro-custom/scripts/core.py +253 -0
  15. package/src/.agents/skills/ui-ux-pro-custom/scripts/design_system.py +1067 -0
  16. package/src/.agents/skills/ui-ux-pro-custom/scripts/search.py +114 -0
  17. package/src/.agents/skills/ux-audit/SKILL.md +151 -0
  18. package/src/.agents/skills/websocket-engineer/SKILL.md +168 -0
  19. package/src/.agents/skills/websocket-engineer/references/alternatives.md +391 -0
  20. package/src/.agents/skills/websocket-engineer/references/patterns.md +400 -0
  21. package/src/.agents/skills/websocket-engineer/references/protocol.md +195 -0
  22. package/src/.agents/skills/websocket-engineer/references/scaling.md +333 -0
  23. package/src/.agents/skills/websocket-engineer/references/security.md +474 -0
  24. package/src/.agents/skills/writing-skills/SKILL.md +655 -0
  25. package/src/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
  26. package/src/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  27. package/src/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
  28. package/src/.agents/skills/writing-skills/persuasion-principles.md +187 -0
  29. package/src/.agents/skills/writing-skills/render-graphs.js +168 -0
  30. package/src/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  31. package/src/.claude/commands/bmad-master.md +15 -0
  32. package/src/.claude/commands/bmad-review-dry-loop.md +15 -0
  33. package/src/.claude/commands/bmad-review-dry.md +15 -0
  34. package/src/.claude/commands/bmad-review-security-loop.md +15 -0
  35. package/src/.claude/commands/bmad-review-security.md +15 -0
  36. package/src/.claude/commands/bmad-review-ui-loop.md +15 -0
  37. package/src/.claude/commands/bmad-review-ui.md +15 -0
  38. package/src/.claude/commands/bmad-track-compact.md +19 -0
  39. package/src/.claude/commands/bmad-track-extended.md +19 -0
  40. package/src/.claude/commands/bmad-track-large.md +19 -0
  41. package/src/.claude/commands/bmad-track-medium.md +19 -0
  42. package/src/.claude/commands/bmad-track-nano.md +19 -0
  43. package/src/.claude/commands/bmad-track-rv.md +18 -0
  44. package/src/.claude/commands/bmad-track-small.md +19 -0
  45. package/src/.claude/commands/bmad-triage.md +15 -0
  46. package/src/.claude/commands/master-orchestrator.md +15 -0
  47. package/src/_memory/master-orchestrator-sidecar/docs-index.md +3 -0
  48. package/src/_memory/master-orchestrator-sidecar/instructions.md +2616 -0
  49. package/src/_memory/master-orchestrator-sidecar/memories.md +8 -0
  50. package/src/_memory/master-orchestrator-sidecar/session-state.md +15 -0
  51. package/src/_memory/master-orchestrator-sidecar/triage-history.md +3 -0
  52. package/src/_memory/master-orchestrator-sidecar/workflows-overview.html +1230 -0
  53. package/src/core/agents/master-orchestrator.md +54 -0
  54. package/src/docs/dev/tmux/actions_popup.py +291 -0
  55. package/src/docs/dev/tmux/actions_popup.sh +110 -0
  56. package/src/docs/dev/tmux/claude_usage.sh +15 -0
  57. package/src/docs/dev/tmux/colors.conf +26 -0
  58. package/src/docs/dev/tmux/cpu_usage.sh +7 -0
  59. package/src/docs/dev/tmux/dispatch.sh +10 -0
  60. package/src/docs/dev/tmux/float_init.sh +13 -0
  61. package/src/docs/dev/tmux/float_term.sh +23 -0
  62. package/src/docs/dev/tmux/open_clip.sh +14 -0
  63. package/src/docs/dev/tmux/paste_claude.sh +26 -0
  64. package/src/docs/dev/tmux/paste_clipboard.sh +13 -0
  65. package/src/docs/dev/tmux/paste_image_wrapper.sh +98 -0
  66. package/src/docs/dev/tmux/ram_usage.sh +3 -0
  67. package/src/docs/dev/tmux/title_sync.sh +54 -0
  68. package/src/docs/dev/tmux/tmux-setup.md +867 -0
  69. package/src/docs/dev/tmux/tmux-test.sh +255 -0
  70. package/src/docs/dev/tmux/tmux.conf +127 -0
  71. package/src/docs/dev/tmux/xclip +18 -0
@@ -0,0 +1,98 @@
1
+ #!/bin/bash
2
+ # paste_image_wrapper.sh — reads clipboard via wl-paste, types path into pane.
3
+ #
4
+ # Requires: wl-clipboard (sudo apt-get install -y wl-clipboard)
5
+ # Optional: imagemagick for BMP/non-PNG conversion
6
+ #
7
+ # $1 = pane_id (e.g. %0)
8
+
9
+ PANE="${1:-}"
10
+ WL_PASTE="/usr/bin/wl-paste"
11
+
12
+ # Timestamped filenames — delete any tmux_clip_* files not from today
13
+ TIMESTAMP=$(date +%Y%m%d_%H%M%S)
14
+ TODAY=$(date +%Y%m%d)
15
+ find /tmp -maxdepth 1 -name 'tmux_clip_*' ! -name "tmux_clip_${TODAY}*" -delete 2>/dev/null || true
16
+
17
+ PNGFILE="/tmp/tmux_clip_${TIMESTAMP}.png"
18
+ RAWFILE="/tmp/tmux_clip_${TIMESTAMP}_raw"
19
+ SVGFILE="/tmp/tmux_clip_${TIMESTAMP}.svg"
20
+ HTMLFILE="/tmp/tmux_clip_${TIMESTAMP}.html"
21
+ TXTFILE="/tmp/tmux_clip_${TIMESTAMP}.txt"
22
+
23
+ send_path() {
24
+ [ -n "$1" ] && [ -n "$PANE" ] && tmux send-keys -t "$PANE" "$1"
25
+ }
26
+
27
+ # For plain text: use bracketed paste so Claude Code and readline apps accept it
28
+ send_text() {
29
+ [ -n "$1" ] && [ -n "$PANE" ] && tmux send-keys -t "$PANE" $'\e[200~'"$1"$'\e[201~'
30
+ }
31
+
32
+ TYPES=$("$WL_PASTE" --list-types 2>/dev/null)
33
+ [ -z "$TYPES" ] && exit 0
34
+
35
+ IMAGE_TYPE=$(echo "$TYPES" | grep -i "^image/" | head -1)
36
+
37
+ # ── Image ─────────────────────────────────────────────────────────────────────
38
+ if [ -n "$IMAGE_TYPE" ]; then
39
+ if echo "$TYPES" | grep -qi "image/png"; then
40
+ "$WL_PASTE" --type image/png > "$PNGFILE" 2>/dev/null
41
+ elif echo "$IMAGE_TYPE" | grep -qi "svg"; then
42
+ "$WL_PASTE" --type "$IMAGE_TYPE" > "$SVGFILE" 2>/dev/null
43
+ command -v convert &>/dev/null \
44
+ && convert "$SVGFILE" "$PNGFILE" 2>/dev/null \
45
+ || cp "$SVGFILE" "$PNGFILE"
46
+ else
47
+ "$WL_PASTE" --type "$IMAGE_TYPE" > "$RAWFILE" 2>/dev/null
48
+ command -v convert &>/dev/null \
49
+ && { convert "$RAWFILE" "$PNGFILE" 2>/dev/null && rm -f "$RAWFILE"; } \
50
+ || mv "$RAWFILE" "$PNGFILE"
51
+ fi
52
+
53
+ # WSLg Wayland bridge sometimes lists image types but writes 0 bytes.
54
+ # Fall back to PowerShell (Windows clipboard API) when wl-paste produces empty output.
55
+ if [ ! -s "$PNGFILE" ]; then
56
+ WINPATH=$(wslpath -w "$PNGFILE" 2>/dev/null)
57
+ powershell.exe -NoProfile -Command "
58
+ Add-Type -AssemblyName System.Windows.Forms
59
+ \$img = [System.Windows.Forms.Clipboard]::GetImage()
60
+ if (\$img -ne \$null) { \$img.Save('$WINPATH') }
61
+ " 2>/dev/null
62
+ fi
63
+
64
+ [ -s "$PNGFILE" ] || exit 1
65
+ send_path "@$PNGFILE"
66
+ exit 0
67
+ fi
68
+
69
+ # ── Files from file manager ───────────────────────────────────────────────────
70
+ if echo "$TYPES" | grep -qi "text/uri-list"; then
71
+ URIS=$("$WL_PASTE" --type text/uri-list 2>/dev/null)
72
+ ALL_PATHS=""
73
+ while IFS= read -r uri; do
74
+ [ -z "$uri" ] && continue
75
+ fpath=$(printf '%s' "$uri" | sed 's|^file://||' \
76
+ | python3 -c "import sys,urllib.parse; print(urllib.parse.unquote(sys.stdin.read().strip()))" 2>/dev/null)
77
+ [ -n "$fpath" ] && ALL_PATHS="$ALL_PATHS @$fpath"
78
+ done <<< "$URIS"
79
+ [ -n "$ALL_PATHS" ] && send_path "${ALL_PATHS# }"
80
+ exit 0
81
+ fi
82
+
83
+ # ── HTML ──────────────────────────────────────────────────────────────────────
84
+ if echo "$TYPES" | grep -qi "text/html"; then
85
+ "$WL_PASTE" --type text/html > "$HTMLFILE" 2>/dev/null
86
+ send_path "$HTMLFILE"
87
+ exit 0
88
+ fi
89
+
90
+ # ── Plain text ────────────────────────────────────────────────────────────────
91
+ TEXT=$("$WL_PASTE" 2>/dev/null)
92
+ FIRST_LINE=$(printf '%s' "$TEXT" | head -1 | tr -d ' ')
93
+ if [ -f "$FIRST_LINE" ] || [ -d "$FIRST_LINE" ]; then
94
+ send_path "@$FIRST_LINE"
95
+ else
96
+ # Use bracketed paste for plain text so Claude Code and readline apps accept it
97
+ send_text "$TEXT"
98
+ fi
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+ read -r total used <<< $(free -m | awk '/^Mem:/{print $2, $3}')
3
+ [ "$total" -gt 0 ] && echo "$(( 100 * used / total ))%" || echo "N/A"
@@ -0,0 +1,54 @@
1
+ #!/bin/bash
2
+ # Syncs active pane title → window name and (if window 1) session name.
3
+ # Respects @window-name-locked and @session-name-locked flags set by manual renames.
4
+ # Called from pane-title-changed hook and fallback hooks (after-select-window, client-focus-in).
5
+ #
6
+ # All tmux commands use -t PANE_ID so they target the correct session/window
7
+ # regardless of which session is "current" for this subprocess.
8
+ #
9
+ # Args:
10
+ # $1 pane_id e.g. %17
11
+ # $2 pane_active 1 or 0
12
+ # $3 window_index e.g. 1
13
+ # $4 pane_title e.g. "✳ Claude Code"
14
+ # $5 cwd_basename e.g. "Squidhub"
15
+
16
+ PANE_ID="$1"
17
+ PANE_ACTIVE="$2"
18
+ WINDOW_INDEX="$3"
19
+ PANE_TITLE="$4"
20
+ CWD="$5"
21
+
22
+ # Always clear the placeholder hash — pane now has a real title
23
+ tmux set-option -pt "$PANE_ID" @pane-hash "" 2>/dev/null || true
24
+
25
+ # Only the active pane drives window/session naming
26
+ [ "$PANE_ACTIVE" = "1" ] || exit 0
27
+
28
+ # Rename window only if user has not manually locked it
29
+ wl=$(tmux show-options -wqv -t "$PANE_ID" @window-name-locked 2>/dev/null)
30
+ if [ -z "$wl" ]; then
31
+ tmux rename-window -t "$PANE_ID" -- "$PANE_TITLE" 2>/dev/null || true
32
+ fi
33
+
34
+ # Rename session (with cwd suffix for uniqueness) only if:
35
+ # - this is window 1, AND
36
+ # - user has not manually locked the session name
37
+ if [ "$WINDOW_INDEX" = "1" ]; then
38
+ sl=$(tmux show-options -qv -t "$PANE_ID" @session-name-locked 2>/dev/null)
39
+ if [ -z "$sl" ]; then
40
+ TARGET="$PANE_TITLE · $CWD"
41
+ # If another session already has this name, append short pane ID to disambiguate
42
+ EXISTING=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | grep -Fx "$TARGET")
43
+ CURRENT=$(tmux display-message -p -t "$PANE_ID" "#{session_name}" 2>/dev/null)
44
+ if [ -n "$EXISTING" ] && [ "$CURRENT" != "$TARGET" ]; then
45
+ # Strip % from pane ID for a clean suffix e.g. "✳ Claude Code · Squidhub · 20"
46
+ SUFFIX="${PANE_ID#%}"
47
+ TARGET="$PANE_TITLE · $CWD · $SUFFIX"
48
+ fi
49
+ tmux rename-session -t "$PANE_ID" -- "$TARGET" 2>/dev/null || true
50
+ fi
51
+ fi
52
+
53
+ # Force status bar to repaint immediately
54
+ tmux refresh-client -S 2>/dev/null || true