@smilintux/skcapstone 0.4.6 → 0.4.7

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 (38) hide show
  1. package/.github/workflows/publish.yml +8 -1
  2. package/docs/CUSTOM_AGENT.md +184 -0
  3. package/docs/GETTING_STARTED.md +3 -0
  4. package/launchd/com.skcapstone.daemon.plist +52 -0
  5. package/launchd/com.skcapstone.memory-compress.plist +45 -0
  6. package/launchd/com.skcapstone.skcomm-heartbeat.plist +33 -0
  7. package/launchd/com.skcapstone.skcomm-queue-drain.plist +34 -0
  8. package/launchd/install-launchd.sh +156 -0
  9. package/package.json +1 -1
  10. package/pyproject.toml +1 -1
  11. package/scripts/archive-sessions.sh +88 -0
  12. package/scripts/install.sh +39 -8
  13. package/scripts/notion-api.py +259 -0
  14. package/scripts/nvidia-proxy.mjs +856 -0
  15. package/scripts/proxy-monitor.sh +89 -0
  16. package/scripts/skgateway.mjs +856 -0
  17. package/scripts/telegram-catchup-all.sh +136 -0
  18. package/src/skcapstone/__init__.py +1 -1
  19. package/src/skcapstone/blueprints/builtins/itil-operations.yaml +40 -0
  20. package/src/skcapstone/cli/__init__.py +2 -0
  21. package/src/skcapstone/cli/daemon.py +116 -41
  22. package/src/skcapstone/cli/itil.py +434 -0
  23. package/src/skcapstone/consciousness_config.py +27 -0
  24. package/src/skcapstone/coordination.py +1 -0
  25. package/src/skcapstone/daemon.py +19 -11
  26. package/src/skcapstone/dreaming.py +761 -0
  27. package/src/skcapstone/fuse_mount.py +21 -13
  28. package/src/skcapstone/heartbeat.py +33 -29
  29. package/src/skcapstone/itil.py +1104 -0
  30. package/src/skcapstone/launchd.py +426 -0
  31. package/src/skcapstone/mcp_server.py +258 -0
  32. package/src/skcapstone/mcp_tools/__init__.py +2 -0
  33. package/src/skcapstone/mcp_tools/gtd_tools.py +1 -1
  34. package/src/skcapstone/mcp_tools/itil_tools.py +657 -0
  35. package/src/skcapstone/onboard.py +130 -10
  36. package/src/skcapstone/scheduled_tasks.py +107 -0
  37. package/src/skcapstone/service_health.py +81 -2
  38. package/src/skcapstone/systemd.py +17 -0
@@ -0,0 +1,89 @@
1
+ #!/bin/bash
2
+ # proxy-monitor.sh — Quick health check for nvidia-proxy tuning
3
+ # Usage: ./proxy-monitor.sh [minutes] (default: last 30 minutes)
4
+ MINS=${1:-30}
5
+ if [[ "$OSTYPE" == "darwin"* ]]; then
6
+ SINCE=$(date -v-${MINS}M '+%Y-%m-%d %H:%M:%S')
7
+ else
8
+ SINCE=$(date -d "$MINS minutes ago" '+%Y-%m-%d %H:%M:%S')
9
+ fi
10
+
11
+ echo "=== NVIDIA Proxy Monitor (last ${MINS}m) ==="
12
+ echo ""
13
+
14
+ # Request count & model breakdown
15
+ echo "--- Requests by Model ---"
16
+ journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
17
+ | grep -oP 'model=\K[^ ]+' | sort | uniq -c | sort -rn
18
+ echo ""
19
+
20
+ # Body size stats
21
+ echo "--- Body Sizes (bytes) ---"
22
+ SIZES=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
23
+ | grep -oP 'bodyLen=\K[0-9]+' | sort -n)
24
+ if [ -n "$SIZES" ]; then
25
+ COUNT=$(echo "$SIZES" | wc -l)
26
+ MIN=$(echo "$SIZES" | head -1)
27
+ MAX=$(echo "$SIZES" | tail -1)
28
+ AVG=$(echo "$SIZES" | awk '{s+=$1} END {printf "%.0f", s/NR}')
29
+ echo " count=$COUNT min=${MIN} avg=${AVG} max=${MAX} limit=120000"
30
+ if [ "$MAX" -gt 100000 ]; then
31
+ echo " ⚠️ Max approaching limit — consider bumping MAX_BODY_BYTES"
32
+ elif [ "$MAX" -lt 40000 ]; then
33
+ echo " ✅ Plenty of headroom — no conversation trimming needed"
34
+ else
35
+ echo " 👀 Moderate usage — monitor for growth"
36
+ fi
37
+ else
38
+ echo " (no requests)"
39
+ fi
40
+ echo ""
41
+
42
+ # Trimming events
43
+ echo "--- Trimming Events ---"
44
+ CONV_TRIM=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
45
+ | grep -c "trimmed history")
46
+ AGGRESSIVE=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
47
+ | grep -c "AGGRESSIVE")
48
+ SYS_TRIM=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
49
+ | grep -c "trimmed system prompt")
50
+ TOOL_LIMIT=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
51
+ | grep -c "TOOL LIMIT")
52
+ echo " conversation trims: $CONV_TRIM"
53
+ echo " aggressive trims: $AGGRESSIVE"
54
+ echo " system prompt trims: $SYS_TRIM"
55
+ echo " tool limit hits: $TOOL_LIMIT"
56
+ if [ "$AGGRESSIVE" -gt 0 ]; then
57
+ echo " ⚠️ Aggressive trims happening — bump MAX_BODY_BYTES or keepEnd"
58
+ elif [ "$CONV_TRIM" -gt 0 ]; then
59
+ echo " 👀 Some conversation trimming — watch if it increases"
60
+ else
61
+ echo " ✅ No conversation trimming — settings have headroom"
62
+ fi
63
+ echo ""
64
+
65
+ # Error/retry stats
66
+ echo "--- Errors & Retries ---"
67
+ RETRIES=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
68
+ | grep -c "attempt=[2-4]")
69
+ ERRORS=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
70
+ | grep -cE "4[0-9]{2}|5[0-9]{2}|error|Error")
71
+ OK=$(journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
72
+ | grep -c "200 OK")
73
+ echo " 200 OK: $OK"
74
+ echo " retries: $RETRIES"
75
+ echo " errors: $ERRORS"
76
+ echo ""
77
+
78
+ # Response times (rough — from consecutive timestamps)
79
+ echo "--- Keyword Activations ---"
80
+ journalctl --user -u nvidia-proxy --no-pager --since "$SINCE" 2>/dev/null \
81
+ | grep -oP 'keyword-activated tools: \[\K[^\]]+' \
82
+ | tr ',' '\n' | sort | uniq -c | sort -rn | head -10
83
+ echo ""
84
+
85
+ # Current settings
86
+ echo "--- Current Proxy Settings ---"
87
+ grep -E "MAX_BODY_BYTES|MAX_SYSTEM_BYTES|allTools.length >|counter >= |keepEnd.*Math" \
88
+ /home/cbrd21/clawd/skcapstone-repos/skcapstone/scripts/nvidia-proxy.mjs 2>/dev/null \
89
+ | sed 's/^[[:space:]]*/ /'