@cyperx/clawforge 1.3.0 → 1.4.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.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.0
1
+ 1.4.1
package/bin/clawforge CHANGED
@@ -81,6 +81,9 @@ Power Features (v1.2):
81
81
  summary AI-generated summary of what an agent did
82
82
  parse-cost Parse real cost/token data from agent output
83
83
 
84
+ Web Dashboard (v1.4):
85
+ web Launch web dashboard (accessible from phone/browser)
86
+
84
87
  Developer Experience (v1.3):
85
88
  profile Manage reusable agent profiles (presets)
86
89
  replay Re-run a completed task with same parameters
@@ -246,6 +249,7 @@ doctor) exec "${BIN_DIR}/doctor.sh" "$@" ;;
246
249
  replay) exec "${BIN_DIR}/replay.sh" "$@" ;;
247
250
  export) exec "${BIN_DIR}/export.sh" "$@" ;;
248
251
  completions) exec "${BIN_DIR}/completions.sh" "$@" ;;
252
+ web) exec "${BIN_DIR}/web.sh" "$@" ;;
249
253
  logs) exec "${BIN_DIR}/logs.sh" "$@" ;;
250
254
  on-complete) exec "${BIN_DIR}/on-complete.sh" "$@" ;;
251
255
 
Binary file
Binary file
@@ -82,7 +82,15 @@ if [[ -n "$AFTER" ]]; then
82
82
  fi
83
83
 
84
84
  # ── Resolve settings ──────────────────────────────────────────────────
85
- RESOLVED_AGENT=$(detect_agent "${AGENT:-}")
85
+ if ! RESOLVED_AGENT=$(detect_agent "${AGENT:-}" 2>/dev/null); then
86
+ if $DRY_RUN; then
87
+ RESOLVED_AGENT="${AGENT:-claude}"
88
+ log_warn "No local agent binary found; using '$RESOLVED_AGENT' for dry-run preview"
89
+ else
90
+ log_error "No coding agent found (need claude or codex)"
91
+ exit 1
92
+ fi
93
+ fi
86
94
  EFFORT="${EFFORT:-$(config_get default_effort high)}"
87
95
 
88
96
  if [[ -z "$MODEL" ]]; then
package/bin/sprint.sh CHANGED
@@ -127,7 +127,15 @@ if $QUICK; then
127
127
  fi
128
128
 
129
129
  # ── Resolve agent + model ────────────────────────────────────────────
130
- RESOLVED_AGENT=$(detect_agent "${AGENT:-}")
130
+ if ! RESOLVED_AGENT=$(detect_agent "${AGENT:-}" 2>/dev/null); then
131
+ if $DRY_RUN; then
132
+ RESOLVED_AGENT="${AGENT:-claude}"
133
+ log_warn "No local agent binary found; using '$RESOLVED_AGENT' for dry-run preview"
134
+ else
135
+ log_error "No coding agent found (need claude or codex)"
136
+ exit 1
137
+ fi
138
+ fi
131
139
  MODEL_OVERRIDE="$MODEL" # preserve explicit --model
132
140
  if [[ -z "$MODEL" ]]; then
133
141
  if [[ "$RESOLVED_AGENT" == "claude" ]]; then
package/bin/swarm.sh CHANGED
@@ -147,7 +147,15 @@ REPO_ABS=$(cd "$REPO" && pwd)
147
147
  disk_check "$REPO_ABS" || { log_error "Aborting due to low disk space"; exit 1; }
148
148
 
149
149
  # ── Resolve agent ─────────────────────────────────────────────────────
150
- RESOLVED_AGENT=$(detect_agent "${AGENT:-}")
150
+ if ! RESOLVED_AGENT=$(detect_agent "${AGENT:-}" 2>/dev/null); then
151
+ if $DRY_RUN; then
152
+ RESOLVED_AGENT="${AGENT:-claude}"
153
+ log_warn "No local agent binary found; using '$RESOLVED_AGENT' for dry-run preview"
154
+ else
155
+ log_error "No coding agent found (need claude or codex)"
156
+ exit 1
157
+ fi
158
+ fi
151
159
  if [[ "$RESOLVED_AGENT" == "claude" ]]; then
152
160
  MODEL=$(config_get default_model_claude "claude-sonnet-4-5")
153
161
  else
package/bin/web.sh ADDED
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env bash
2
+ # web.sh — Launch the ClawForge web dashboard
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
6
+ CLAWFORGE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
7
+ WEB_DIR="${CLAWFORGE_DIR}/web"
8
+ BINARY="${SCRIPT_DIR}/clawforge-web"
9
+
10
+ export CLAWFORGE_DIR
11
+
12
+ usage() {
13
+ cat <<EOF
14
+ Usage: clawforge web [options]
15
+
16
+ Launch the ClawForge web dashboard.
17
+ Accessible from your phone, tablet, or any browser on the network.
18
+
19
+ Options:
20
+ --port <port> Port to listen on (default: 9876)
21
+ --open Open in default browser
22
+ --build Force rebuild the web binary
23
+ --help Show this help
24
+
25
+ Examples:
26
+ clawforge web # Start on http://localhost:9876
27
+ clawforge web --port 8080 # Custom port
28
+ clawforge web --open # Start + open browser
29
+
30
+ Keyboard shortcuts (in browser):
31
+ 1/2/3/4 Filter: all/running/done/failed
32
+ Escape Close preview panel
33
+ Click task Open detail + agent output preview
34
+ EOF
35
+ }
36
+
37
+ PORT=9876
38
+ OPEN=false
39
+ BUILD=false
40
+
41
+ while [[ $# -gt 0 ]]; do
42
+ case "$1" in
43
+ --port|-p) PORT="$2"; shift 2 ;;
44
+ --open|-o) OPEN=true; shift ;;
45
+ --build) BUILD=true; shift ;;
46
+ --help|-h) usage; exit 0 ;;
47
+ *) shift ;;
48
+ esac
49
+ done
50
+
51
+ # Build if needed
52
+ if [[ ! -f "$BINARY" ]] || $BUILD; then
53
+ echo "Building web dashboard..."
54
+ if ! command -v go &>/dev/null; then
55
+ echo "Error: go is required. Install with: brew install go"
56
+ exit 1
57
+ fi
58
+ (cd "$WEB_DIR" && go build -o "$BINARY" .)
59
+ echo "Built: $BINARY"
60
+ fi
61
+
62
+ # Open browser
63
+ if $OPEN; then
64
+ (sleep 1 && open "http://localhost:${PORT}" 2>/dev/null || xdg-open "http://localhost:${PORT}" 2>/dev/null) &
65
+ fi
66
+
67
+ # Run
68
+ exec "$BINARY" --port="$PORT"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyperx/clawforge",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "description": "Multi-mode coding workflow CLI for orchestrating AI coding agents",
5
5
  "bin": {
6
6
  "@cyperx/clawforge": "./bin/clawforge"