fleet-commander-ai 0.0.8 → 0.0.9

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 (60) hide show
  1. package/dist/client/assets/{index-BbrDeQ1K.css → index-CoSTpjbY.css} +1 -1
  2. package/dist/client/assets/{index-DLivu-L6.js → index-CvP0L4Ef.js} +20 -20
  3. package/dist/client/assets/{index-DLivu-L6.js.map → index-CvP0L4Ef.js.map} +1 -1
  4. package/dist/client/index.html +2 -2
  5. package/dist/server/config.d.ts +14 -0
  6. package/dist/server/config.d.ts.map +1 -1
  7. package/dist/server/config.js +35 -10
  8. package/dist/server/config.js.map +1 -1
  9. package/dist/server/db.d.ts +0 -4
  10. package/dist/server/db.d.ts.map +1 -1
  11. package/dist/server/db.js +0 -12
  12. package/dist/server/db.js.map +1 -1
  13. package/dist/server/index.js +11 -0
  14. package/dist/server/index.js.map +1 -1
  15. package/dist/server/routes/projects.d.ts.map +1 -1
  16. package/dist/server/routes/projects.js +4 -1
  17. package/dist/server/routes/projects.js.map +1 -1
  18. package/dist/server/services/project-service.d.ts +6 -2
  19. package/dist/server/services/project-service.d.ts.map +1 -1
  20. package/dist/server/services/project-service.js +57 -54
  21. package/dist/server/services/project-service.js.map +1 -1
  22. package/dist/server/services/team-manager.d.ts +4 -2
  23. package/dist/server/services/team-manager.d.ts.map +1 -1
  24. package/dist/server/services/team-manager.js +55 -12
  25. package/dist/server/services/team-manager.js.map +1 -1
  26. package/dist/server/utils/cc-spawn.d.ts.map +1 -1
  27. package/dist/server/utils/cc-spawn.js +3 -0
  28. package/dist/server/utils/cc-spawn.js.map +1 -1
  29. package/dist/server/utils/fc-manifest.d.ts +50 -0
  30. package/dist/server/utils/fc-manifest.d.ts.map +1 -0
  31. package/dist/server/utils/fc-manifest.js +92 -0
  32. package/dist/server/utils/fc-manifest.js.map +1 -0
  33. package/hooks/on_notification.sh +3 -1
  34. package/hooks/on_post_tool_use.sh +3 -1
  35. package/hooks/on_pre_compact.sh +3 -1
  36. package/hooks/on_session_end.sh +3 -1
  37. package/hooks/on_session_start.sh +3 -1
  38. package/hooks/on_stop.sh +3 -1
  39. package/hooks/on_stop_failure.sh +3 -1
  40. package/hooks/on_subagent_start.sh +3 -1
  41. package/hooks/on_subagent_stop.sh +3 -1
  42. package/hooks/on_teammate_idle.sh +3 -1
  43. package/hooks/on_tool_error.sh +3 -1
  44. package/hooks/run-hook.sh +15 -0
  45. package/hooks/send_event.sh +10 -1
  46. package/hooks/settings.json.example +11 -11
  47. package/package.json +1 -1
  48. package/prompts/default-prompt.md +1 -1
  49. package/templates/agents/fleet-dev.md +1 -1
  50. package/templates/agents/fleet-planner.md +1 -1
  51. package/templates/agents/fleet-reviewer.md +1 -1
  52. package/templates/guides/api-design.md +1 -1
  53. package/templates/guides/csharp-conventions.md +1 -1
  54. package/templates/guides/devops-conventions.md +1 -1
  55. package/templates/guides/fsharp-conventions.md +1 -1
  56. package/templates/guides/python-conventions.md +1 -1
  57. package/templates/guides/sql-database.md +1 -1
  58. package/templates/guides/testing-strategies.md +1 -1
  59. package/templates/guides/typescript-conventions.md +1 -1
  60. package/templates/workflow.md +1 -1
package/hooks/on_stop.sh CHANGED
@@ -1,9 +1,11 @@
1
1
  #!/bin/sh
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander hook: Stop
4
4
  # Fires when the main agent stops — could mean task complete, error, or stuck.
5
5
  # stdin JSON example: {"session_id":"abc123","stop_reason":"end_turn"}
6
6
 
7
7
  HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
9
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | HOOK | stop | ${FLEET_TEAM_ID:-?} | cwd=$(pwd)" >> "$_LOG" 2>/dev/null || true
8
10
  input=$(cat)
9
11
  echo "$input" | "$HOOK_DIR/send_event.sh" "stop"
@@ -1,9 +1,11 @@
1
1
  #!/bin/sh
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander hook: StopFailure
4
4
  # Fires when the agent stops due to rate limits or API errors.
5
5
  # stdin JSON example: {"session_id":"abc123","error_details":"rate_limit","last_assistant_message":"..."}
6
6
 
7
7
  HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
9
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | HOOK | stop_failure | ${FLEET_TEAM_ID:-?} | cwd=$(pwd)" >> "$_LOG" 2>/dev/null || true
8
10
  input=$(cat)
9
11
  echo "$input" | "$HOOK_DIR/send_event.sh" "stop_failure"
@@ -1,9 +1,11 @@
1
1
  #!/bin/sh
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander hook: SubagentStart
4
4
  # Tracks internal team agent spawn (e.g., kea-csharp-dev joining the team).
5
5
  # stdin JSON example: {"session_id":"abc123","teammate_name":"csharp-dev","agent_type":"kea-csharp-dev"}
6
6
 
7
7
  HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
9
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | HOOK | subagent_start | ${FLEET_TEAM_ID:-?} | cwd=$(pwd)" >> "$_LOG" 2>/dev/null || true
8
10
  input=$(cat)
9
11
  echo "$input" | "$HOOK_DIR/send_event.sh" "subagent_start"
@@ -1,9 +1,11 @@
1
1
  #!/bin/sh
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander hook: SubagentStop
4
4
  # Tracks internal team agent departure.
5
5
  # stdin JSON example: {"session_id":"abc123","teammate_name":"csharp-dev","agent_type":"kea-csharp-dev"}
6
6
 
7
7
  HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
9
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | HOOK | subagent_stop | ${FLEET_TEAM_ID:-?} | cwd=$(pwd)" >> "$_LOG" 2>/dev/null || true
8
10
  input=$(cat)
9
11
  echo "$input" | "$HOOK_DIR/send_event.sh" "subagent_stop"
@@ -1,9 +1,11 @@
1
1
  #!/bin/sh
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander hook: TeammateIdle
4
4
  # Fires when a subagent goes idle. Provides explicit per-subagent idle tracking.
5
5
  # stdin JSON example: {"session_id":"abc123","teammate_name":"csharp-dev"}
6
6
 
7
7
  HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
9
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | HOOK | teammate_idle | ${FLEET_TEAM_ID:-?} | cwd=$(pwd)" >> "$_LOG" 2>/dev/null || true
8
10
  input=$(cat)
9
11
  echo "$input" | "$HOOK_DIR/send_event.sh" "teammate_idle"
@@ -1,9 +1,11 @@
1
1
  #!/bin/sh
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander hook: PostToolUseFailure (aliased as "tool_error")
4
4
  # Tracks tool failures — repeated errors indicate the team is struggling.
5
5
  # stdin JSON example: {"session_id":"abc123","tool_name":"Bash","error":"exit code 1","tool_use_id":"toolu_123"}
6
6
 
7
7
  HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
9
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | HOOK | tool_error | ${FLEET_TEAM_ID:-?} | cwd=$(pwd)" >> "$_LOG" 2>/dev/null || true
8
10
  input=$(cat)
9
11
  echo "$input" | "$HOOK_DIR/send_event.sh" "tool_error"
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+ # fleet-commander v0.0.9
3
+ # Universal hook wrapper — logs ENTER layer before executing the real hook.
4
+ # Usage: run-hook.sh <event_type> <script_name>
5
+ # Called from settings.json hook commands.
6
+
7
+ HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ EVENT_TYPE="${1:-unknown}"
9
+ SCRIPT="${2:-}"
10
+ LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
11
+
12
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | ENTER | $EVENT_TYPE | ${FLEET_TEAM_ID:-?} | pid=$$" >> "$LOG" 2>/dev/null || true
13
+
14
+ # Execute the actual hook script, forwarding stdin
15
+ exec "$HOOK_DIR/$SCRIPT"
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # fleet-commander v0.0.8
2
+ # fleet-commander v0.0.9
3
3
  # Fleet Commander: Universal event sender for Claude Code hooks.
4
4
  # POSTs a JSON event to the Fleet Commander dashboard server.
5
5
  #
@@ -108,12 +108,21 @@ PAYLOAD="${PAYLOAD}}"
108
108
  # ── Fire and forget ───────────────────────────────────────────────
109
109
  # curl with 2-second timeout. Errors are silenced completely.
110
110
  # The hook MUST NOT block Claude Code or cause visible failures.
111
+ _LOG="${FLEET_HOOK_LOG:-/tmp/fleet-hooks.log}"
111
112
  if command -v curl >/dev/null 2>&1; then
112
113
  curl -s -S --max-time 2 --connect-timeout 1 \
113
114
  -X POST \
114
115
  -H "Content-Type: application/json" \
115
116
  -d "$PAYLOAD" \
116
117
  "$FLEET_URL" >/dev/null 2>&1
118
+ CURL_RESULT=$?
119
+ if [ "$CURL_RESULT" -eq 0 ]; then
120
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | SEND | $EVENT_TYPE | $TEAM_NAME | curl=ok" >> "$_LOG" 2>/dev/null || true
121
+ else
122
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | SEND | $EVENT_TYPE | $TEAM_NAME | curl=fail($CURL_RESULT)" >> "$_LOG" 2>/dev/null || true
123
+ fi
124
+ else
125
+ echo "$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unknown) | SEND | $EVENT_TYPE | $TEAM_NAME | curl=missing" >> "$_LOG" 2>/dev/null || true
117
126
  fi
118
127
 
119
128
  # Always exit 0 — hooks must never fail
@@ -11,7 +11,7 @@
11
11
  "hooks": [
12
12
  {
13
13
  "type": "command",
14
- "command": "bash .claude/hooks/fleet-commander/on_session_start.sh"
14
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh session_start on_session_start.sh"
15
15
  }
16
16
  ]
17
17
  }
@@ -21,7 +21,7 @@
21
21
  "hooks": [
22
22
  {
23
23
  "type": "command",
24
- "command": "bash .claude/hooks/fleet-commander/on_session_end.sh"
24
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh session_end on_session_end.sh"
25
25
  }
26
26
  ]
27
27
  }
@@ -31,7 +31,7 @@
31
31
  "hooks": [
32
32
  {
33
33
  "type": "command",
34
- "command": "bash .claude/hooks/fleet-commander/on_stop.sh"
34
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh stop on_stop.sh"
35
35
  }
36
36
  ]
37
37
  }
@@ -41,7 +41,7 @@
41
41
  "hooks": [
42
42
  {
43
43
  "type": "command",
44
- "command": "bash .claude/hooks/fleet-commander/on_stop_failure.sh"
44
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh stop_failure on_stop_failure.sh"
45
45
  }
46
46
  ]
47
47
  }
@@ -51,7 +51,7 @@
51
51
  "hooks": [
52
52
  {
53
53
  "type": "command",
54
- "command": "bash .claude/hooks/fleet-commander/on_subagent_start.sh"
54
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh subagent_start on_subagent_start.sh"
55
55
  }
56
56
  ]
57
57
  }
@@ -61,7 +61,7 @@
61
61
  "hooks": [
62
62
  {
63
63
  "type": "command",
64
- "command": "bash .claude/hooks/fleet-commander/on_subagent_stop.sh"
64
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh subagent_stop on_subagent_stop.sh"
65
65
  }
66
66
  ]
67
67
  }
@@ -71,7 +71,7 @@
71
71
  "hooks": [
72
72
  {
73
73
  "type": "command",
74
- "command": "bash .claude/hooks/fleet-commander/on_notification.sh"
74
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh notification on_notification.sh"
75
75
  }
76
76
  ]
77
77
  }
@@ -81,7 +81,7 @@
81
81
  "hooks": [
82
82
  {
83
83
  "type": "command",
84
- "command": "bash .claude/hooks/fleet-commander/on_pre_compact.sh"
84
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh pre_compact on_pre_compact.sh"
85
85
  }
86
86
  ]
87
87
  }
@@ -91,7 +91,7 @@
91
91
  "hooks": [
92
92
  {
93
93
  "type": "command",
94
- "command": "bash .claude/hooks/fleet-commander/on_post_tool_use.sh"
94
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh tool_use on_post_tool_use.sh"
95
95
  }
96
96
  ]
97
97
  }
@@ -101,7 +101,7 @@
101
101
  "hooks": [
102
102
  {
103
103
  "type": "command",
104
- "command": "bash .claude/hooks/fleet-commander/on_teammate_idle.sh"
104
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh teammate_idle on_teammate_idle.sh"
105
105
  }
106
106
  ]
107
107
  }
@@ -111,7 +111,7 @@
111
111
  "hooks": [
112
112
  {
113
113
  "type": "command",
114
- "command": "bash .claude/hooks/fleet-commander/on_tool_error.sh"
114
+ "command": "bash .claude/hooks/fleet-commander/run-hook.sh tool_error on_tool_error.sh"
115
115
  }
116
116
  ]
117
117
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleet-commander-ai",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "Web dashboard for orchestrating Claude Code agent teams",
5
5
  "type": "module",
6
6
  "main": "dist/server/index.js",
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  Read the ENTIRE file `.claude/prompts/fleet-workflow.md` before taking any actions.
3
3
 
4
4
  You are the Team Lead (TL). Your job:
@@ -4,7 +4,7 @@ description: Generalist developer agent. Dynamically specializes via guidebook f
4
4
  preferred_plugins: playwright, context7
5
5
  color: "#3FB950"
6
6
  model: inherit
7
- _fleetCommanderVersion: "0.0.8"
7
+ _fleetCommanderVersion: "0.0.9"
8
8
  ---
9
9
 
10
10
  # Developer
@@ -2,7 +2,7 @@
2
2
  name: fleet-planner
3
3
  model: inherit
4
4
  description: "Implementation planner. Reads the issue, explores the codebase and guidebooks, and produces a concrete step-by-step implementation plan with architectural decisions. Stays alive to answer questions from dev and reviewer."
5
- _fleetCommanderVersion: "0.0.8"
5
+ _fleetCommanderVersion: "0.0.9"
6
6
  ---
7
7
 
8
8
  # Fleet Planner
@@ -3,7 +3,7 @@ name: fleet-reviewer
3
3
  description: Code reviewer with direct p2p dev communication. Two-pass review (code quality + acceptance criteria). READ-ONLY — never edits files.
4
4
  model: inherit
5
5
  color: "#D29922"
6
- _fleetCommanderVersion: "0.0.8"
6
+ _fleetCommanderVersion: "0.0.9"
7
7
  ---
8
8
 
9
9
  # Fleet Reviewer
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # API Design Conventions
3
3
 
4
4
  > Applies to: REST API route handlers, request/response schemas, middleware
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # C# / .NET Conventions
3
3
 
4
4
  > Applies to: `*.cs`, `*.csproj`, `Directory.Build.props`
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # DevOps / Infrastructure Conventions
3
3
 
4
4
  > Applies to: `.github/workflows/*.yml`, `Dockerfile`, `docker-compose.yml`, `*.sh`, `*.ps1`, `Makefile`
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # F# Conventions
3
3
 
4
4
  > Applies to: `*.fs`, `*.fsi`, `*.fsx`, `*.fsproj`
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # Python Conventions
3
3
 
4
4
  > Applies to: `*.py`, `pyproject.toml`, `requirements.txt`, `setup.cfg`
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # SQL & Database Conventions
3
3
 
4
4
  > Applies to: `*.sql`, migration files, ORM model definitions, database access code
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # Testing Strategies
3
3
 
4
4
  > Applies to: all test files regardless of language or framework
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  # TypeScript / JavaScript Conventions
3
3
 
4
4
  > Applies to: `*.ts`, `*.tsx`, `*.js`, `*.jsx`, `package.json`, `tsconfig.json`
@@ -1,4 +1,4 @@
1
- <!-- fleet-commander v0.0.8 -->
1
+ <!-- fleet-commander v0.0.9 -->
2
2
  <!-- Fleet Commander workflow template. Installed by Fleet Commander into your project. -->
3
3
  <!-- Placeholders {{PROJECT_NAME}}, {{project_slug}}, {{BASE_BRANCH}}, {{ISSUE_NUMBER}} are replaced during installation. -->
4
4