@ekkos/cli 0.3.3 → 1.0.1

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 (81) hide show
  1. package/README.md +57 -0
  2. package/dist/agent/daemon.d.ts +27 -0
  3. package/dist/agent/daemon.js +254 -29
  4. package/dist/agent/health-check.d.ts +35 -0
  5. package/dist/agent/health-check.js +243 -0
  6. package/dist/agent/pty-runner.d.ts +1 -0
  7. package/dist/agent/pty-runner.js +6 -1
  8. package/dist/capture/transcript-repair.d.ts +1 -0
  9. package/dist/capture/transcript-repair.js +12 -1
  10. package/dist/commands/agent.d.ts +6 -0
  11. package/dist/commands/agent.js +244 -0
  12. package/dist/commands/dashboard.d.ts +25 -0
  13. package/dist/commands/dashboard.js +1175 -0
  14. package/dist/commands/run.d.ts +3 -0
  15. package/dist/commands/run.js +503 -350
  16. package/dist/commands/setup-remote.js +146 -37
  17. package/dist/commands/swarm-dashboard.d.ts +20 -0
  18. package/dist/commands/swarm-dashboard.js +735 -0
  19. package/dist/commands/swarm-setup.d.ts +10 -0
  20. package/dist/commands/swarm-setup.js +956 -0
  21. package/dist/commands/swarm.d.ts +46 -0
  22. package/dist/commands/swarm.js +441 -0
  23. package/dist/commands/test-claude.d.ts +16 -0
  24. package/dist/commands/test-claude.js +156 -0
  25. package/dist/commands/usage/blocks.d.ts +8 -0
  26. package/dist/commands/usage/blocks.js +60 -0
  27. package/dist/commands/usage/daily.d.ts +9 -0
  28. package/dist/commands/usage/daily.js +96 -0
  29. package/dist/commands/usage/dashboard.d.ts +8 -0
  30. package/dist/commands/usage/dashboard.js +104 -0
  31. package/dist/commands/usage/formatters.d.ts +41 -0
  32. package/dist/commands/usage/formatters.js +147 -0
  33. package/dist/commands/usage/index.d.ts +13 -0
  34. package/dist/commands/usage/index.js +87 -0
  35. package/dist/commands/usage/monthly.d.ts +8 -0
  36. package/dist/commands/usage/monthly.js +66 -0
  37. package/dist/commands/usage/session.d.ts +11 -0
  38. package/dist/commands/usage/session.js +193 -0
  39. package/dist/commands/usage/weekly.d.ts +9 -0
  40. package/dist/commands/usage/weekly.js +61 -0
  41. package/dist/deploy/instructions.d.ts +5 -2
  42. package/dist/deploy/instructions.js +11 -8
  43. package/dist/index.js +256 -20
  44. package/dist/lib/tmux-scrollbar.d.ts +14 -0
  45. package/dist/lib/tmux-scrollbar.js +296 -0
  46. package/dist/lib/usage-parser.d.ts +95 -5
  47. package/dist/lib/usage-parser.js +416 -71
  48. package/dist/utils/log-rotate.d.ts +18 -0
  49. package/dist/utils/log-rotate.js +74 -0
  50. package/dist/utils/platform.d.ts +2 -0
  51. package/dist/utils/platform.js +3 -1
  52. package/dist/utils/session-binding.d.ts +5 -0
  53. package/dist/utils/session-binding.js +46 -0
  54. package/dist/utils/state.js +4 -0
  55. package/dist/utils/verify-remote-terminal.d.ts +10 -0
  56. package/dist/utils/verify-remote-terminal.js +415 -0
  57. package/package.json +16 -11
  58. package/templates/CLAUDE.md +135 -23
  59. package/templates/cursor-hooks/after-agent-response.sh +0 -0
  60. package/templates/cursor-hooks/before-submit-prompt.sh +0 -0
  61. package/templates/cursor-hooks/stop.sh +0 -0
  62. package/templates/ekkos-manifest.json +5 -5
  63. package/templates/hooks/assistant-response.sh +0 -0
  64. package/templates/hooks/lib/contract.sh +43 -31
  65. package/templates/hooks/lib/count-tokens.cjs +86 -0
  66. package/templates/hooks/lib/ekkos-reminders.sh +98 -0
  67. package/templates/hooks/lib/state.sh +53 -1
  68. package/templates/hooks/session-start.sh +0 -0
  69. package/templates/hooks/stop.sh +150 -388
  70. package/templates/hooks/user-prompt-submit.sh +353 -443
  71. package/templates/plan-template.md +0 -0
  72. package/templates/spec-template.md +0 -0
  73. package/templates/windsurf-hooks/README.md +212 -0
  74. package/templates/windsurf-hooks/hooks.json +9 -2
  75. package/templates/windsurf-hooks/install.sh +148 -0
  76. package/templates/windsurf-hooks/lib/contract.sh +2 -0
  77. package/templates/windsurf-hooks/post-cascade-response.sh +251 -0
  78. package/templates/windsurf-hooks/pre-user-prompt.sh +435 -0
  79. package/templates/windsurf-skills/ekkos-memory/SKILL.md +219 -0
  80. package/LICENSE +0 -21
  81. package/templates/windsurf-hooks/before-submit-prompt.sh +0 -238
@@ -20,25 +20,40 @@ mkdir -p "$STATE_DIR"
20
20
  # State File Management
21
21
  # ═══════════════════════════════════════════════════════════════════════════
22
22
 
23
- # Save patterns for session
23
+ # Save patterns for session (with retrieval_token for verified tracking)
24
24
  save_patterns() {
25
25
  local session_id="$1"
26
26
  local patterns="$2"
27
27
  local model_used="$3"
28
+ local retrieval_token="${4:-}" # Optional retrieval_token for verified applications
28
29
 
29
30
  local state_file="$STATE_DIR/patterns-${session_id}.json"
30
31
 
31
32
  jq -n \
32
33
  --argjson patterns "$patterns" \
33
34
  --arg model "$model_used" \
35
+ --arg token "$retrieval_token" \
34
36
  --arg timestamp "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
35
37
  '{
36
38
  patterns: $patterns,
37
39
  model_used: $model,
40
+ retrieval_token: $token,
38
41
  saved_at: $timestamp
39
42
  }' > "$state_file"
40
43
  }
41
44
 
45
+ # Get retrieval token from saved patterns
46
+ get_retrieval_token() {
47
+ local session_id="$1"
48
+ local state_file="$STATE_DIR/patterns-${session_id}.json"
49
+
50
+ if [ -f "$state_file" ]; then
51
+ jq -r '.retrieval_token // ""' "$state_file" 2>/dev/null
52
+ else
53
+ echo ""
54
+ fi
55
+ }
56
+
42
57
  # Load patterns for session
43
58
  load_patterns() {
44
59
  local session_id="$1"
@@ -57,6 +72,43 @@ clear_patterns() {
57
72
  rm -f "$STATE_DIR/patterns-${session_id}.json"
58
73
  }
59
74
 
75
+ # ═══════════════════════════════════════════════════════════════════════════
76
+ # Conversation Context (for Golden Loop MEASURE phase)
77
+ # ═══════════════════════════════════════════════════════════════════════════
78
+
79
+ # Save current conversation context for pattern tracking
80
+ # Called by user-prompt-submit.sh when new query is submitted
81
+ save_conversation_context() {
82
+ local session_id="$1"
83
+ local user_query="$2"
84
+ local prev_response="$3"
85
+
86
+ local context_file="$STATE_DIR/conversation-${session_id}.json"
87
+
88
+ jq -n \
89
+ --arg query "$user_query" \
90
+ --arg response "$prev_response" \
91
+ --arg timestamp "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
92
+ '{
93
+ query: $query,
94
+ response: $response,
95
+ saved_at: $timestamp
96
+ }' > "$context_file" 2>/dev/null || true
97
+ }
98
+
99
+ # Load current conversation context
100
+ # Called by post-tool-use.sh when tracking pattern applications
101
+ load_conversation_context() {
102
+ local session_id="$1"
103
+ local context_file="$STATE_DIR/conversation-${session_id}.json"
104
+
105
+ if [ -f "$context_file" ]; then
106
+ cat "$context_file"
107
+ else
108
+ echo '{"query":"","response":""}'
109
+ fi
110
+ }
111
+
60
112
  # ═══════════════════════════════════════════════════════════════════════════
61
113
  # Capture Deduplication
62
114
  # ═══════════════════════════════════════════════════════════════════════════
File without changes