fleet-commander-ai 0.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 (281) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +159 -0
  3. package/bin/fleet-commander-mcp.js +27 -0
  4. package/bin/fleet-commander.js +22 -0
  5. package/dist/client/assets/index-CHukC8Hq.js +188 -0
  6. package/dist/client/assets/index-CHukC8Hq.js.map +1 -0
  7. package/dist/client/assets/index-DvMjcYbg.css +1 -0
  8. package/dist/client/index.html +13 -0
  9. package/dist/server/config.d.ts +51 -0
  10. package/dist/server/config.d.ts.map +1 -0
  11. package/dist/server/config.js +104 -0
  12. package/dist/server/config.js.map +1 -0
  13. package/dist/server/db.d.ts +388 -0
  14. package/dist/server/db.d.ts.map +1 -0
  15. package/dist/server/db.js +1524 -0
  16. package/dist/server/db.js.map +1 -0
  17. package/dist/server/index.d.ts +2 -0
  18. package/dist/server/index.d.ts.map +1 -0
  19. package/dist/server/index.js +162 -0
  20. package/dist/server/index.js.map +1 -0
  21. package/dist/server/mcp/index.d.ts +2 -0
  22. package/dist/server/mcp/index.d.ts.map +1 -0
  23. package/dist/server/mcp/index.js +112 -0
  24. package/dist/server/mcp/index.js.map +1 -0
  25. package/dist/server/mcp/tools/add-project.d.ts +9 -0
  26. package/dist/server/mcp/tools/add-project.d.ts.map +1 -0
  27. package/dist/server/mcp/tools/add-project.js +58 -0
  28. package/dist/server/mcp/tools/add-project.js.map +1 -0
  29. package/dist/server/mcp/tools/get-team-timeline.d.ts +9 -0
  30. package/dist/server/mcp/tools/get-team-timeline.d.ts.map +1 -0
  31. package/dist/server/mcp/tools/get-team-timeline.js +48 -0
  32. package/dist/server/mcp/tools/get-team-timeline.js.map +1 -0
  33. package/dist/server/mcp/tools/get-team.d.ts +9 -0
  34. package/dist/server/mcp/tools/get-team.d.ts.map +1 -0
  35. package/dist/server/mcp/tools/get-team.js +48 -0
  36. package/dist/server/mcp/tools/get-team.js.map +1 -0
  37. package/dist/server/mcp/tools/get-usage.d.ts +9 -0
  38. package/dist/server/mcp/tools/get-usage.d.ts.map +1 -0
  39. package/dist/server/mcp/tools/get-usage.js +33 -0
  40. package/dist/server/mcp/tools/get-usage.js.map +1 -0
  41. package/dist/server/mcp/tools/launch-team.d.ts +8 -0
  42. package/dist/server/mcp/tools/launch-team.d.ts.map +1 -0
  43. package/dist/server/mcp/tools/launch-team.js +49 -0
  44. package/dist/server/mcp/tools/launch-team.js.map +1 -0
  45. package/dist/server/mcp/tools/list-issues.d.ts +9 -0
  46. package/dist/server/mcp/tools/list-issues.d.ts.map +1 -0
  47. package/dist/server/mcp/tools/list-issues.js +47 -0
  48. package/dist/server/mcp/tools/list-issues.js.map +1 -0
  49. package/dist/server/mcp/tools/list-projects.d.ts +9 -0
  50. package/dist/server/mcp/tools/list-projects.d.ts.map +1 -0
  51. package/dist/server/mcp/tools/list-projects.js +32 -0
  52. package/dist/server/mcp/tools/list-projects.js.map +1 -0
  53. package/dist/server/mcp/tools/list-teams.d.ts +9 -0
  54. package/dist/server/mcp/tools/list-teams.d.ts.map +1 -0
  55. package/dist/server/mcp/tools/list-teams.js +43 -0
  56. package/dist/server/mcp/tools/list-teams.js.map +1 -0
  57. package/dist/server/mcp/tools/restart-team.d.ts +8 -0
  58. package/dist/server/mcp/tools/restart-team.d.ts.map +1 -0
  59. package/dist/server/mcp/tools/restart-team.js +46 -0
  60. package/dist/server/mcp/tools/restart-team.js.map +1 -0
  61. package/dist/server/mcp/tools/send-message.d.ts +9 -0
  62. package/dist/server/mcp/tools/send-message.d.ts.map +1 -0
  63. package/dist/server/mcp/tools/send-message.js +48 -0
  64. package/dist/server/mcp/tools/send-message.js.map +1 -0
  65. package/dist/server/mcp/tools/stop-team.d.ts +8 -0
  66. package/dist/server/mcp/tools/stop-team.d.ts.map +1 -0
  67. package/dist/server/mcp/tools/stop-team.js +46 -0
  68. package/dist/server/mcp/tools/stop-team.js.map +1 -0
  69. package/dist/server/mcp/tools/system-health.d.ts +9 -0
  70. package/dist/server/mcp/tools/system-health.d.ts.map +1 -0
  71. package/dist/server/mcp/tools/system-health.js +32 -0
  72. package/dist/server/mcp/tools/system-health.js.map +1 -0
  73. package/dist/server/middleware/error-handler.d.ts +32 -0
  74. package/dist/server/middleware/error-handler.d.ts.map +1 -0
  75. package/dist/server/middleware/error-handler.js +65 -0
  76. package/dist/server/middleware/error-handler.js.map +1 -0
  77. package/dist/server/routes/events.d.ts +16 -0
  78. package/dist/server/routes/events.d.ts.map +1 -0
  79. package/dist/server/routes/events.js +164 -0
  80. package/dist/server/routes/events.js.map +1 -0
  81. package/dist/server/routes/issues.d.ts +4 -0
  82. package/dist/server/routes/issues.d.ts.map +1 -0
  83. package/dist/server/routes/issues.js +198 -0
  84. package/dist/server/routes/issues.js.map +1 -0
  85. package/dist/server/routes/project-groups.d.ts +4 -0
  86. package/dist/server/routes/project-groups.d.ts.map +1 -0
  87. package/dist/server/routes/project-groups.js +124 -0
  88. package/dist/server/routes/project-groups.js.map +1 -0
  89. package/dist/server/routes/projects.d.ts +4 -0
  90. package/dist/server/routes/projects.d.ts.map +1 -0
  91. package/dist/server/routes/projects.js +319 -0
  92. package/dist/server/routes/projects.js.map +1 -0
  93. package/dist/server/routes/prs.d.ts +4 -0
  94. package/dist/server/routes/prs.d.ts.map +1 -0
  95. package/dist/server/routes/prs.js +186 -0
  96. package/dist/server/routes/prs.js.map +1 -0
  97. package/dist/server/routes/query.d.ts +4 -0
  98. package/dist/server/routes/query.d.ts.map +1 -0
  99. package/dist/server/routes/query.js +82 -0
  100. package/dist/server/routes/query.js.map +1 -0
  101. package/dist/server/routes/state-machine.d.ts +4 -0
  102. package/dist/server/routes/state-machine.d.ts.map +1 -0
  103. package/dist/server/routes/state-machine.js +86 -0
  104. package/dist/server/routes/state-machine.js.map +1 -0
  105. package/dist/server/routes/stream.d.ts +18 -0
  106. package/dist/server/routes/stream.d.ts.map +1 -0
  107. package/dist/server/routes/stream.js +62 -0
  108. package/dist/server/routes/stream.js.map +1 -0
  109. package/dist/server/routes/system.d.ts +4 -0
  110. package/dist/server/routes/system.d.ts.map +1 -0
  111. package/dist/server/routes/system.js +225 -0
  112. package/dist/server/routes/system.js.map +1 -0
  113. package/dist/server/routes/teams.d.ts +4 -0
  114. package/dist/server/routes/teams.d.ts.map +1 -0
  115. package/dist/server/routes/teams.js +570 -0
  116. package/dist/server/routes/teams.js.map +1 -0
  117. package/dist/server/routes/usage.d.ts +4 -0
  118. package/dist/server/routes/usage.d.ts.map +1 -0
  119. package/dist/server/routes/usage.js +80 -0
  120. package/dist/server/routes/usage.js.map +1 -0
  121. package/dist/server/schema.sql +267 -0
  122. package/dist/server/services/cc-query.d.ts +20 -0
  123. package/dist/server/services/cc-query.d.ts.map +1 -0
  124. package/dist/server/services/cc-query.js +352 -0
  125. package/dist/server/services/cc-query.js.map +1 -0
  126. package/dist/server/services/cleanup.d.ts +15 -0
  127. package/dist/server/services/cleanup.d.ts.map +1 -0
  128. package/dist/server/services/cleanup.js +232 -0
  129. package/dist/server/services/cleanup.js.map +1 -0
  130. package/dist/server/services/diagnostics-service.d.ts +85 -0
  131. package/dist/server/services/diagnostics-service.d.ts.map +1 -0
  132. package/dist/server/services/diagnostics-service.js +242 -0
  133. package/dist/server/services/diagnostics-service.js.map +1 -0
  134. package/dist/server/services/event-collector.d.ts +125 -0
  135. package/dist/server/services/event-collector.d.ts.map +1 -0
  136. package/dist/server/services/event-collector.js +299 -0
  137. package/dist/server/services/event-collector.js.map +1 -0
  138. package/dist/server/services/event-service.d.ts +22 -0
  139. package/dist/server/services/event-service.d.ts.map +1 -0
  140. package/dist/server/services/event-service.js +53 -0
  141. package/dist/server/services/event-service.js.map +1 -0
  142. package/dist/server/services/github-poller.d.ts +68 -0
  143. package/dist/server/services/github-poller.d.ts.map +1 -0
  144. package/dist/server/services/github-poller.js +563 -0
  145. package/dist/server/services/github-poller.js.map +1 -0
  146. package/dist/server/services/issue-fetcher.d.ts +231 -0
  147. package/dist/server/services/issue-fetcher.d.ts.map +1 -0
  148. package/dist/server/services/issue-fetcher.js +1053 -0
  149. package/dist/server/services/issue-fetcher.js.map +1 -0
  150. package/dist/server/services/issue-service.d.ts +102 -0
  151. package/dist/server/services/issue-service.d.ts.map +1 -0
  152. package/dist/server/services/issue-service.js +279 -0
  153. package/dist/server/services/issue-service.js.map +1 -0
  154. package/dist/server/services/message-template-service.d.ts +39 -0
  155. package/dist/server/services/message-template-service.d.ts.map +1 -0
  156. package/dist/server/services/message-template-service.js +87 -0
  157. package/dist/server/services/message-template-service.js.map +1 -0
  158. package/dist/server/services/pr-service.d.ts +73 -0
  159. package/dist/server/services/pr-service.d.ts.map +1 -0
  160. package/dist/server/services/pr-service.js +231 -0
  161. package/dist/server/services/pr-service.js.map +1 -0
  162. package/dist/server/services/project-group-service.d.ts +64 -0
  163. package/dist/server/services/project-group-service.d.ts.map +1 -0
  164. package/dist/server/services/project-group-service.js +149 -0
  165. package/dist/server/services/project-group-service.js.map +1 -0
  166. package/dist/server/services/project-service.d.ts +161 -0
  167. package/dist/server/services/project-service.d.ts.map +1 -0
  168. package/dist/server/services/project-service.js +623 -0
  169. package/dist/server/services/project-service.js.map +1 -0
  170. package/dist/server/services/service-error.d.ts +25 -0
  171. package/dist/server/services/service-error.d.ts.map +1 -0
  172. package/dist/server/services/service-error.js +49 -0
  173. package/dist/server/services/service-error.js.map +1 -0
  174. package/dist/server/services/sse-broker.d.ts +144 -0
  175. package/dist/server/services/sse-broker.d.ts.map +1 -0
  176. package/dist/server/services/sse-broker.js +111 -0
  177. package/dist/server/services/sse-broker.js.map +1 -0
  178. package/dist/server/services/startup-recovery.d.ts +10 -0
  179. package/dist/server/services/startup-recovery.d.ts.map +1 -0
  180. package/dist/server/services/startup-recovery.js +122 -0
  181. package/dist/server/services/startup-recovery.js.map +1 -0
  182. package/dist/server/services/stuck-detector.d.ts +20 -0
  183. package/dist/server/services/stuck-detector.d.ts.map +1 -0
  184. package/dist/server/services/stuck-detector.js +167 -0
  185. package/dist/server/services/stuck-detector.js.map +1 -0
  186. package/dist/server/services/stuck-detector.test.d.ts +2 -0
  187. package/dist/server/services/stuck-detector.test.d.ts.map +1 -0
  188. package/dist/server/services/stuck-detector.test.js +363 -0
  189. package/dist/server/services/stuck-detector.test.js.map +1 -0
  190. package/dist/server/services/team-manager.d.ts +188 -0
  191. package/dist/server/services/team-manager.d.ts.map +1 -0
  192. package/dist/server/services/team-manager.js +1869 -0
  193. package/dist/server/services/team-manager.js.map +1 -0
  194. package/dist/server/services/team-service.d.ts +251 -0
  195. package/dist/server/services/team-service.d.ts.map +1 -0
  196. package/dist/server/services/team-service.js +707 -0
  197. package/dist/server/services/team-service.js.map +1 -0
  198. package/dist/server/services/usage-service.d.ts +42 -0
  199. package/dist/server/services/usage-service.d.ts.map +1 -0
  200. package/dist/server/services/usage-service.js +101 -0
  201. package/dist/server/services/usage-service.js.map +1 -0
  202. package/dist/server/services/usage-tracker.d.ts +68 -0
  203. package/dist/server/services/usage-tracker.d.ts.map +1 -0
  204. package/dist/server/services/usage-tracker.js +220 -0
  205. package/dist/server/services/usage-tracker.js.map +1 -0
  206. package/dist/server/utils/build-timeline.d.ts +32 -0
  207. package/dist/server/utils/build-timeline.d.ts.map +1 -0
  208. package/dist/server/utils/build-timeline.js +142 -0
  209. package/dist/server/utils/build-timeline.js.map +1 -0
  210. package/dist/server/utils/find-git-bash.d.ts +10 -0
  211. package/dist/server/utils/find-git-bash.d.ts.map +1 -0
  212. package/dist/server/utils/find-git-bash.js +46 -0
  213. package/dist/server/utils/find-git-bash.js.map +1 -0
  214. package/dist/server/utils/hook-installer.d.ts +20 -0
  215. package/dist/server/utils/hook-installer.d.ts.map +1 -0
  216. package/dist/server/utils/hook-installer.js +90 -0
  217. package/dist/server/utils/hook-installer.js.map +1 -0
  218. package/dist/server/utils/process-utils.d.ts +10 -0
  219. package/dist/server/utils/process-utils.d.ts.map +1 -0
  220. package/dist/server/utils/process-utils.js +33 -0
  221. package/dist/server/utils/process-utils.js.map +1 -0
  222. package/dist/server/utils/resolve-claude-path.d.ts +4 -0
  223. package/dist/server/utils/resolve-claude-path.d.ts.map +1 -0
  224. package/dist/server/utils/resolve-claude-path.js +66 -0
  225. package/dist/server/utils/resolve-claude-path.js.map +1 -0
  226. package/dist/server/utils/resolve-message.d.ts +10 -0
  227. package/dist/server/utils/resolve-message.d.ts.map +1 -0
  228. package/dist/server/utils/resolve-message.js +27 -0
  229. package/dist/server/utils/resolve-message.js.map +1 -0
  230. package/dist/shared/message-templates.d.ts +9 -0
  231. package/dist/shared/message-templates.d.ts.map +1 -0
  232. package/dist/shared/message-templates.js +88 -0
  233. package/dist/shared/message-templates.js.map +1 -0
  234. package/dist/shared/state-machine.d.ts +28 -0
  235. package/dist/shared/state-machine.d.ts.map +1 -0
  236. package/dist/shared/state-machine.js +282 -0
  237. package/dist/shared/state-machine.js.map +1 -0
  238. package/dist/shared/types.d.ts +404 -0
  239. package/dist/shared/types.d.ts.map +1 -0
  240. package/dist/shared/types.js +5 -0
  241. package/dist/shared/types.js.map +1 -0
  242. package/hooks/DESIGN.md +562 -0
  243. package/hooks/on_notification.sh +9 -0
  244. package/hooks/on_post_tool_use.sh +9 -0
  245. package/hooks/on_pre_compact.sh +10 -0
  246. package/hooks/on_session_end.sh +8 -0
  247. package/hooks/on_session_start.sh +8 -0
  248. package/hooks/on_stop.sh +8 -0
  249. package/hooks/on_stop_failure.sh +8 -0
  250. package/hooks/on_subagent_start.sh +8 -0
  251. package/hooks/on_subagent_stop.sh +8 -0
  252. package/hooks/on_teammate_idle.sh +8 -0
  253. package/hooks/on_tool_error.sh +8 -0
  254. package/hooks/send_event.sh +101 -0
  255. package/hooks/settings.json.example +120 -0
  256. package/package.json +93 -0
  257. package/prompts/default-prompt.md +16 -0
  258. package/scripts/install.ps1 +22 -0
  259. package/scripts/install.sh +229 -0
  260. package/scripts/launch.js +64 -0
  261. package/scripts/uninstall.ps1 +22 -0
  262. package/scripts/uninstall.sh +123 -0
  263. package/templates/agents/fleet-dev.md +162 -0
  264. package/templates/agents/fleet-planner.md +263 -0
  265. package/templates/agents/fleet-reviewer.md +309 -0
  266. package/templates/archive/fleet-coordinator.md +128 -0
  267. package/templates/archive/fleet-dev-csharp.md +74 -0
  268. package/templates/archive/fleet-dev-devops.md +76 -0
  269. package/templates/archive/fleet-dev-fsharp.md +83 -0
  270. package/templates/archive/fleet-dev-generic.md +64 -0
  271. package/templates/archive/fleet-dev-python.md +75 -0
  272. package/templates/archive/fleet-dev-typescript.md +76 -0
  273. package/templates/guides/api-design.md +159 -0
  274. package/templates/guides/csharp-conventions.md +182 -0
  275. package/templates/guides/devops-conventions.md +192 -0
  276. package/templates/guides/fsharp-conventions.md +201 -0
  277. package/templates/guides/python-conventions.md +146 -0
  278. package/templates/guides/sql-database.md +125 -0
  279. package/templates/guides/testing-strategies.md +123 -0
  280. package/templates/guides/typescript-conventions.md +130 -0
  281. package/templates/workflow.md +513 -0
@@ -0,0 +1,188 @@
1
+ import type { Writable } from 'stream';
2
+ import type { StreamEvent } from './sse-broker.js';
3
+ import type { Team } from '../../shared/types.js';
4
+ export declare class TeamManager {
5
+ private outputBuffers;
6
+ private childProcesses;
7
+ private stdinPipes;
8
+ private parsedEvents;
9
+ private tokenCounters;
10
+ private _processingQueue;
11
+ private shutdownTimers;
12
+ /**
13
+ * Per-team map of tool_use_id -> agent name.
14
+ * When the TL spawns a subagent via the "Agent" or "Task" tool, the tool_use
15
+ * content block's `id` becomes the `parent_tool_use_id` on subsequent
16
+ * assistant events from that subagent. We extract the agent name from the
17
+ * tool input (e.g. `input.name` = "dev") and store it here so every stream
18
+ * event can be tagged with the originating agent name.
19
+ */
20
+ private agentMaps;
21
+ /** Teams currently in extended thinking — tracked in-memory only */
22
+ readonly thinkingTeams: Set<number>;
23
+ /** Timestamp when thinking started for each team (for duration tracking) */
24
+ private thinkingStartTimes;
25
+ /** Content block index of the active thinking block per team */
26
+ private thinkingBlockIndex;
27
+ /**
28
+ * Sync local repo with origin before creating a worktree.
29
+ * Returns the number of commits the local default branch was behind origin.
30
+ */
31
+ private syncWithOrigin;
32
+ launch(projectId: number, issueNumber: number, issueTitle?: string, prompt?: string, headless?: boolean, force?: boolean): Promise<Team>;
33
+ stop(teamId: number): Promise<Team>;
34
+ resume(teamId: number): Promise<Team>;
35
+ restart(teamId: number, prompt?: string): Promise<Team>;
36
+ stopAll(): Promise<Team[]>;
37
+ private queueTeam;
38
+ forceLaunch(teamId: number): Promise<Team>;
39
+ processQueue(projectId: number): Promise<void>;
40
+ /**
41
+ * Filter queued teams to only include those with no open dependencies.
42
+ * Teams with open dependencies are logged and tracked in the GitHubPoller
43
+ * for auto-launch when dependencies resolve.
44
+ *
45
+ * If a circular dependency is detected, the team is treated as unblocked
46
+ * to avoid deadlocking the queue.
47
+ *
48
+ * Uses the IssueFetcher's cached data when available, falling back to
49
+ * fresh API calls. If the dependency check fails entirely, the team is
50
+ * treated as unblocked (permissive fallback).
51
+ */
52
+ private filterUnblockedTeams;
53
+ private launchQueued;
54
+ getOutput(teamId: number, lines?: number): string[];
55
+ getParsedEvents(teamId: number): StreamEvent[];
56
+ /**
57
+ * Persist the in-memory parsed events for a team to the database.
58
+ * Called before clearing the in-memory buffer on process exit/stop.
59
+ */
60
+ private persistParsedEvents;
61
+ sendMessage(teamId: number, message: string, source?: 'user' | 'fc', subtype?: string): boolean;
62
+ getStdinPipe(teamId: number): Writable | undefined;
63
+ /**
64
+ * Gracefully shut down a team after its PR is merged.
65
+ * 1. Send pr_merged_shutdown message to TL via stdin
66
+ * 2. Wait graceMs for the process to exit on its own
67
+ * 3. If still alive: close stdin, wait 10s, then force kill
68
+ *
69
+ * Race-condition safe: the process exit handler already does cleanup,
70
+ * so all timer callbacks re-check childProcesses.has() before acting.
71
+ */
72
+ gracefulShutdown(teamId: number, prNumber: number, graceMs: number): void;
73
+ /**
74
+ * Clear all active shutdown timers. Called during server shutdown
75
+ * to prevent dangling timers.
76
+ */
77
+ clearShutdownTimers(): void;
78
+ private writeStdinMessage;
79
+ /**
80
+ * Read the project's prompt file and replace {{ISSUE_NUMBER}} placeholder.
81
+ * Fallback chain: project prompt file > prompts/default-prompt.md > hardcoded default.
82
+ */
83
+ private resolvePromptFromFile;
84
+ launchBatch(projectId: number, issues: Array<{
85
+ number: number;
86
+ title?: string;
87
+ }>, prompt?: string, delayMs?: number, headless?: boolean): Promise<Team[]>;
88
+ /**
89
+ * Build the spawn environment for a Claude Code process.
90
+ * Inherits the server's env and adds fleet/git-bash vars.
91
+ * This is the SINGLE source of CC env vars for BOTH headless and interactive modes.
92
+ */
93
+ private buildSpawnEnv;
94
+ /**
95
+ * Build the base Claude CLI args shared by BOTH headless and interactive modes.
96
+ * @param worktreeName — worktree name for --worktree flag
97
+ * @param options.resume — add --resume flag (for resume flow)
98
+ * @param options.model — optional model override from project
99
+ * @param options.prompt — positional prompt arg (interactive mode only)
100
+ */
101
+ private buildBaseClaudeArgs;
102
+ /**
103
+ * Build Claude CLI args for headless (stream-json) mode.
104
+ * Calls buildBaseClaudeArgs() and appends stream-json + verbose flags.
105
+ */
106
+ private buildHeadlessClaudeArgs;
107
+ /**
108
+ * Build the `set VAR=value` portion of the innerCommand for interactive
109
+ * mode on Windows. Iterates over buildSpawnEnv() output to generate
110
+ * set commands dynamically, ensuring all env vars are passed.
111
+ *
112
+ * Only includes fleet/CC-specific vars (prefixed FLEET_, CLAUDE_CODE_)
113
+ * to keep the command string manageable and avoid leaking unrelated env.
114
+ */
115
+ private buildInteractiveEnvSetCommands;
116
+ /**
117
+ * Launch a Claude Code process in interactive mode (Windows terminal).
118
+ * Extracted from the duplicated logic in launch() and launchQueued().
119
+ *
120
+ * Opens a new terminal window (wt.exe or cmd.exe) with the Claude Code
121
+ * CLI and all required env vars from buildSpawnEnv().
122
+ */
123
+ private launchInteractive;
124
+ /**
125
+ * Spawn a Claude Code process and validate it got a PID.
126
+ * On failure, transitions team to 'failed' and broadcasts snapshot.
127
+ * Returns the child process, or null if spawn failed.
128
+ */
129
+ private spawnAndValidate;
130
+ /**
131
+ * Attach exit and error handlers to a child process.
132
+ * These handlers clean up maps, transition the team to done/failed,
133
+ * broadcast SSE events, and trigger queue processing.
134
+ */
135
+ private attachProcessHandlers;
136
+ /**
137
+ * Store the stdin pipe, send the initial prompt (if provided), set up
138
+ * output capture, and broadcast the initial FC event in the session log.
139
+ */
140
+ private setupStdinAndOutput;
141
+ /**
142
+ * Create a git worktree with -b fallback. On failure, transitions team
143
+ * to 'failed' and broadcasts snapshot.
144
+ * Returns true on success, false on failure.
145
+ */
146
+ private createWorktree;
147
+ /**
148
+ * Copy hook scripts and generate settings.json into a worktree directory.
149
+ */
150
+ private copyHooksAndSettings;
151
+ /**
152
+ * Derive worktree naming from a project and issue number.
153
+ */
154
+ private deriveWorktreeNames;
155
+ /**
156
+ * Broadcast a full team dashboard snapshot to all SSE clients.
157
+ * Called after any team state change so the Fleet Grid refreshes.
158
+ */
159
+ private broadcastSnapshot;
160
+ private initOutputBuffer;
161
+ private captureOutput;
162
+ /**
163
+ * Extract and accumulate token counts from stream events.
164
+ * - `assistant` events: increment token counters from usage.input_tokens, etc.
165
+ * - `result` events: replace totalCostUsd (it's cumulative) and flush to DB.
166
+ */
167
+ private accumulateTokens;
168
+ /**
169
+ * Persist in-memory token counters to the database and broadcast SSE update.
170
+ */
171
+ private flushTokenCounters;
172
+ /**
173
+ * Detect thinking start/stop from Claude Code stream-json events.
174
+ *
175
+ * content_block_start with content_block.type === "thinking" signals the
176
+ * start of an extended thinking block. content_block_stop (matched by
177
+ * index) signals the end.
178
+ */
179
+ private detectThinking;
180
+ /**
181
+ * Clear thinking state for a team (e.g. on stop/cleanup).
182
+ */
183
+ clearThinking(teamId: number): void;
184
+ private killProcess;
185
+ }
186
+ export declare function getTeamManager(): TeamManager;
187
+ export default TeamManager;
188
+ //# sourceMappingURL=team-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/team-manager.ts"],"names":[],"mappings":"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"}