aicodeman 0.2.8

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 (246) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +403 -0
  3. package/dist/ai-checker-base.d.ts +175 -0
  4. package/dist/ai-checker-base.d.ts.map +1 -0
  5. package/dist/ai-checker-base.js +424 -0
  6. package/dist/ai-checker-base.js.map +1 -0
  7. package/dist/ai-idle-checker.d.ts +53 -0
  8. package/dist/ai-idle-checker.d.ts.map +1 -0
  9. package/dist/ai-idle-checker.js +141 -0
  10. package/dist/ai-idle-checker.js.map +1 -0
  11. package/dist/ai-plan-checker.d.ts +52 -0
  12. package/dist/ai-plan-checker.d.ts.map +1 -0
  13. package/dist/ai-plan-checker.js +103 -0
  14. package/dist/ai-plan-checker.js.map +1 -0
  15. package/dist/bash-tool-parser.d.ts +191 -0
  16. package/dist/bash-tool-parser.d.ts.map +1 -0
  17. package/dist/bash-tool-parser.js +598 -0
  18. package/dist/bash-tool-parser.js.map +1 -0
  19. package/dist/cli.d.ts +12 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +460 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/config/buffer-limits.d.ts +59 -0
  24. package/dist/config/buffer-limits.d.ts.map +1 -0
  25. package/dist/config/buffer-limits.js +74 -0
  26. package/dist/config/buffer-limits.js.map +1 -0
  27. package/dist/config/map-limits.d.ts +40 -0
  28. package/dist/config/map-limits.d.ts.map +1 -0
  29. package/dist/config/map-limits.js +52 -0
  30. package/dist/config/map-limits.js.map +1 -0
  31. package/dist/file-stream-manager.d.ts +148 -0
  32. package/dist/file-stream-manager.d.ts.map +1 -0
  33. package/dist/file-stream-manager.js +351 -0
  34. package/dist/file-stream-manager.js.map +1 -0
  35. package/dist/hooks-config.d.ts +31 -0
  36. package/dist/hooks-config.d.ts.map +1 -0
  37. package/dist/hooks-config.js +115 -0
  38. package/dist/hooks-config.js.map +1 -0
  39. package/dist/image-watcher.d.ts +86 -0
  40. package/dist/image-watcher.d.ts.map +1 -0
  41. package/dist/image-watcher.js +275 -0
  42. package/dist/image-watcher.js.map +1 -0
  43. package/dist/index.d.ts +11 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +54 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/mux-factory.d.ts +13 -0
  48. package/dist/mux-factory.d.ts.map +1 -0
  49. package/dist/mux-factory.js +19 -0
  50. package/dist/mux-factory.js.map +1 -0
  51. package/dist/mux-interface.d.ts +145 -0
  52. package/dist/mux-interface.d.ts.map +1 -0
  53. package/dist/mux-interface.js +9 -0
  54. package/dist/mux-interface.js.map +1 -0
  55. package/dist/plan-orchestrator.d.ts +123 -0
  56. package/dist/plan-orchestrator.d.ts.map +1 -0
  57. package/dist/plan-orchestrator.js +500 -0
  58. package/dist/plan-orchestrator.js.map +1 -0
  59. package/dist/prompts/index.d.ts +9 -0
  60. package/dist/prompts/index.d.ts.map +1 -0
  61. package/dist/prompts/index.js +9 -0
  62. package/dist/prompts/index.js.map +1 -0
  63. package/dist/prompts/planner.d.ts +14 -0
  64. package/dist/prompts/planner.d.ts.map +1 -0
  65. package/dist/prompts/planner.js +83 -0
  66. package/dist/prompts/planner.js.map +1 -0
  67. package/dist/prompts/research-agent.d.ts +10 -0
  68. package/dist/prompts/research-agent.d.ts.map +1 -0
  69. package/dist/prompts/research-agent.js +143 -0
  70. package/dist/prompts/research-agent.js.map +1 -0
  71. package/dist/push-store.d.ts +41 -0
  72. package/dist/push-store.d.ts.map +1 -0
  73. package/dist/push-store.js +168 -0
  74. package/dist/push-store.js.map +1 -0
  75. package/dist/ralph-config.d.ts +67 -0
  76. package/dist/ralph-config.d.ts.map +1 -0
  77. package/dist/ralph-config.js +134 -0
  78. package/dist/ralph-config.js.map +1 -0
  79. package/dist/ralph-loop.d.ts +124 -0
  80. package/dist/ralph-loop.d.ts.map +1 -0
  81. package/dist/ralph-loop.js +418 -0
  82. package/dist/ralph-loop.js.map +1 -0
  83. package/dist/ralph-tracker.d.ts +1081 -0
  84. package/dist/ralph-tracker.d.ts.map +1 -0
  85. package/dist/ralph-tracker.js +3343 -0
  86. package/dist/ralph-tracker.js.map +1 -0
  87. package/dist/respawn-controller.d.ts +1182 -0
  88. package/dist/respawn-controller.d.ts.map +1 -0
  89. package/dist/respawn-controller.js +2754 -0
  90. package/dist/respawn-controller.js.map +1 -0
  91. package/dist/run-summary.d.ts +123 -0
  92. package/dist/run-summary.d.ts.map +1 -0
  93. package/dist/run-summary.js +325 -0
  94. package/dist/run-summary.js.map +1 -0
  95. package/dist/session-lifecycle-log.d.ts +36 -0
  96. package/dist/session-lifecycle-log.d.ts.map +1 -0
  97. package/dist/session-lifecycle-log.js +101 -0
  98. package/dist/session-lifecycle-log.js.map +1 -0
  99. package/dist/session-manager.d.ts +97 -0
  100. package/dist/session-manager.d.ts.map +1 -0
  101. package/dist/session-manager.js +224 -0
  102. package/dist/session-manager.js.map +1 -0
  103. package/dist/session.d.ts +686 -0
  104. package/dist/session.d.ts.map +1 -0
  105. package/dist/session.js +2025 -0
  106. package/dist/session.js.map +1 -0
  107. package/dist/state-store.d.ts +189 -0
  108. package/dist/state-store.d.ts.map +1 -0
  109. package/dist/state-store.js +730 -0
  110. package/dist/state-store.js.map +1 -0
  111. package/dist/subagent-watcher.d.ts +345 -0
  112. package/dist/subagent-watcher.d.ts.map +1 -0
  113. package/dist/subagent-watcher.js +1469 -0
  114. package/dist/subagent-watcher.js.map +1 -0
  115. package/dist/task-queue.d.ts +108 -0
  116. package/dist/task-queue.d.ts.map +1 -0
  117. package/dist/task-queue.js +235 -0
  118. package/dist/task-queue.js.map +1 -0
  119. package/dist/task-tracker.d.ts +306 -0
  120. package/dist/task-tracker.d.ts.map +1 -0
  121. package/dist/task-tracker.js +488 -0
  122. package/dist/task-tracker.js.map +1 -0
  123. package/dist/task.d.ts +73 -0
  124. package/dist/task.d.ts.map +1 -0
  125. package/dist/task.js +177 -0
  126. package/dist/task.js.map +1 -0
  127. package/dist/team-watcher.d.ts +53 -0
  128. package/dist/team-watcher.d.ts.map +1 -0
  129. package/dist/team-watcher.js +313 -0
  130. package/dist/team-watcher.js.map +1 -0
  131. package/dist/templates/case-template.md +461 -0
  132. package/dist/templates/claude-md.d.ts +26 -0
  133. package/dist/templates/claude-md.d.ts.map +1 -0
  134. package/dist/templates/claude-md.js +74 -0
  135. package/dist/templates/claude-md.js.map +1 -0
  136. package/dist/tmux-manager.d.ts +181 -0
  137. package/dist/tmux-manager.d.ts.map +1 -0
  138. package/dist/tmux-manager.js +1405 -0
  139. package/dist/tmux-manager.js.map +1 -0
  140. package/dist/transcript-watcher.d.ts +110 -0
  141. package/dist/transcript-watcher.d.ts.map +1 -0
  142. package/dist/transcript-watcher.js +338 -0
  143. package/dist/transcript-watcher.js.map +1 -0
  144. package/dist/tunnel-manager.d.ts +54 -0
  145. package/dist/tunnel-manager.d.ts.map +1 -0
  146. package/dist/tunnel-manager.js +251 -0
  147. package/dist/tunnel-manager.js.map +1 -0
  148. package/dist/types.d.ts +1139 -0
  149. package/dist/types.d.ts.map +1 -0
  150. package/dist/types.js +215 -0
  151. package/dist/types.js.map +1 -0
  152. package/dist/utils/buffer-accumulator.d.ts +111 -0
  153. package/dist/utils/buffer-accumulator.d.ts.map +1 -0
  154. package/dist/utils/buffer-accumulator.js +172 -0
  155. package/dist/utils/buffer-accumulator.js.map +1 -0
  156. package/dist/utils/claude-cli-resolver.d.ts +26 -0
  157. package/dist/utils/claude-cli-resolver.d.ts.map +1 -0
  158. package/dist/utils/claude-cli-resolver.js +78 -0
  159. package/dist/utils/claude-cli-resolver.js.map +1 -0
  160. package/dist/utils/cleanup-manager.d.ts +165 -0
  161. package/dist/utils/cleanup-manager.d.ts.map +1 -0
  162. package/dist/utils/cleanup-manager.js +274 -0
  163. package/dist/utils/cleanup-manager.js.map +1 -0
  164. package/dist/utils/index.d.ts +19 -0
  165. package/dist/utils/index.d.ts.map +1 -0
  166. package/dist/utils/index.js +19 -0
  167. package/dist/utils/index.js.map +1 -0
  168. package/dist/utils/lru-map.d.ts +140 -0
  169. package/dist/utils/lru-map.d.ts.map +1 -0
  170. package/dist/utils/lru-map.js +234 -0
  171. package/dist/utils/lru-map.js.map +1 -0
  172. package/dist/utils/nice-wrapper.d.ts +13 -0
  173. package/dist/utils/nice-wrapper.d.ts.map +1 -0
  174. package/dist/utils/nice-wrapper.js +17 -0
  175. package/dist/utils/nice-wrapper.js.map +1 -0
  176. package/dist/utils/opencode-cli-resolver.d.ts +21 -0
  177. package/dist/utils/opencode-cli-resolver.d.ts.map +1 -0
  178. package/dist/utils/opencode-cli-resolver.js +67 -0
  179. package/dist/utils/opencode-cli-resolver.js.map +1 -0
  180. package/dist/utils/regex-patterns.d.ts +64 -0
  181. package/dist/utils/regex-patterns.d.ts.map +1 -0
  182. package/dist/utils/regex-patterns.js +74 -0
  183. package/dist/utils/regex-patterns.js.map +1 -0
  184. package/dist/utils/stale-expiration-map.d.ts +159 -0
  185. package/dist/utils/stale-expiration-map.d.ts.map +1 -0
  186. package/dist/utils/stale-expiration-map.js +277 -0
  187. package/dist/utils/stale-expiration-map.js.map +1 -0
  188. package/dist/utils/string-similarity.d.ts +108 -0
  189. package/dist/utils/string-similarity.d.ts.map +1 -0
  190. package/dist/utils/string-similarity.js +189 -0
  191. package/dist/utils/string-similarity.js.map +1 -0
  192. package/dist/utils/token-validation.d.ts +39 -0
  193. package/dist/utils/token-validation.d.ts.map +1 -0
  194. package/dist/utils/token-validation.js +59 -0
  195. package/dist/utils/token-validation.js.map +1 -0
  196. package/dist/utils/type-safety.d.ts +33 -0
  197. package/dist/utils/type-safety.d.ts.map +1 -0
  198. package/dist/utils/type-safety.js +35 -0
  199. package/dist/utils/type-safety.js.map +1 -0
  200. package/dist/web/public/app.js +491 -0
  201. package/dist/web/public/app.js.br +0 -0
  202. package/dist/web/public/app.js.gz +0 -0
  203. package/dist/web/public/index.html +1675 -0
  204. package/dist/web/public/index.html.br +0 -0
  205. package/dist/web/public/index.html.gz +0 -0
  206. package/dist/web/public/manifest.json +8 -0
  207. package/dist/web/public/mobile.css +1 -0
  208. package/dist/web/public/mobile.css.br +0 -0
  209. package/dist/web/public/mobile.css.gz +0 -0
  210. package/dist/web/public/ralph-wizard.js +1037 -0
  211. package/dist/web/public/ralph-wizard.js.br +0 -0
  212. package/dist/web/public/ralph-wizard.js.gz +0 -0
  213. package/dist/web/public/styles.css +1 -0
  214. package/dist/web/public/styles.css.br +0 -0
  215. package/dist/web/public/styles.css.gz +0 -0
  216. package/dist/web/public/sw.js +67 -0
  217. package/dist/web/public/sw.js.br +0 -0
  218. package/dist/web/public/sw.js.gz +0 -0
  219. package/dist/web/public/upload.html +155 -0
  220. package/dist/web/public/upload.html.br +0 -0
  221. package/dist/web/public/upload.html.gz +0 -0
  222. package/dist/web/public/vendor/xterm-addon-fit.min.js +1 -0
  223. package/dist/web/public/vendor/xterm-addon-fit.min.js.br +0 -0
  224. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  225. package/dist/web/public/vendor/xterm-addon-unicode11.min.js +1 -0
  226. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.br +0 -0
  227. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  228. package/dist/web/public/vendor/xterm-addon-webgl.min.js +2 -0
  229. package/dist/web/public/vendor/xterm-addon-webgl.min.js.br +0 -0
  230. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  231. package/dist/web/public/vendor/xterm.css +209 -0
  232. package/dist/web/public/vendor/xterm.css.br +0 -0
  233. package/dist/web/public/vendor/xterm.css.gz +0 -0
  234. package/dist/web/public/vendor/xterm.min.js +9 -0
  235. package/dist/web/public/vendor/xterm.min.js.br +0 -0
  236. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  237. package/dist/web/schemas.d.ts +479 -0
  238. package/dist/web/schemas.d.ts.map +1 -0
  239. package/dist/web/schemas.js +448 -0
  240. package/dist/web/schemas.js.map +1 -0
  241. package/dist/web/server.d.ts +207 -0
  242. package/dist/web/server.d.ts.map +1 -0
  243. package/dist/web/server.js +5784 -0
  244. package/dist/web/server.js.map +1 -0
  245. package/package.json +110 -0
  246. package/scripts/postinstall.js +390 -0
@@ -0,0 +1,145 @@
1
+ /**
2
+ * @fileoverview Terminal multiplexer abstraction layer (tmux).
3
+ *
4
+ * Defines the TerminalMultiplexer interface that TmuxManager implements.
5
+ *
6
+ * @module mux-interface
7
+ */
8
+ import type { EventEmitter } from 'node:events';
9
+ import type { ProcessStats, PersistedRespawnConfig, NiceConfig, ClaudeMode, SessionMode, OpenCodeConfig } from './types.js';
10
+ /**
11
+ * Multiplexer session metadata.
12
+ */
13
+ export interface MuxSession {
14
+ /** Codeman session ID */
15
+ sessionId: string;
16
+ /** Multiplexer session name (e.g., "codeman-abc12345") */
17
+ muxName: string;
18
+ /** Process PID */
19
+ pid: number;
20
+ /** Timestamp when created */
21
+ createdAt: number;
22
+ /** Working directory */
23
+ workingDir: string;
24
+ /** Session mode */
25
+ mode: SessionMode;
26
+ /** Whether webserver is attached to this session */
27
+ attached: boolean;
28
+ /** Session display name (tab name) */
29
+ name?: string;
30
+ /** Persisted respawn controller configuration (restored on server restart) */
31
+ respawnConfig?: PersistedRespawnConfig;
32
+ /** Whether Ralph / Todo tracking is enabled */
33
+ ralphEnabled?: boolean;
34
+ }
35
+ /**
36
+ * MuxSession with optional process resource statistics.
37
+ */
38
+ export interface MuxSessionWithStats extends MuxSession {
39
+ /** Optional resource statistics */
40
+ stats?: ProcessStats;
41
+ }
42
+ /** Options for creating a new multiplexer session. */
43
+ export interface CreateSessionOptions {
44
+ sessionId: string;
45
+ workingDir: string;
46
+ mode: SessionMode;
47
+ name?: string;
48
+ niceConfig?: NiceConfig;
49
+ model?: string;
50
+ claudeMode?: ClaudeMode;
51
+ allowedTools?: string;
52
+ openCodeConfig?: OpenCodeConfig;
53
+ }
54
+ /** Options for respawning a dead pane. */
55
+ export interface RespawnPaneOptions {
56
+ sessionId: string;
57
+ workingDir: string;
58
+ mode: SessionMode;
59
+ niceConfig?: NiceConfig;
60
+ model?: string;
61
+ claudeMode?: ClaudeMode;
62
+ allowedTools?: string;
63
+ openCodeConfig?: OpenCodeConfig;
64
+ }
65
+ /**
66
+ * Terminal multiplexer interface.
67
+ *
68
+ * Implemented by TmuxManager.
69
+ *
70
+ * Events emitted:
71
+ * - `sessionCreated` (session: MuxSession) - New session created
72
+ * - `sessionKilled` (data: { sessionId: string }) - Session terminated
73
+ * - `sessionDied` (data: { sessionId: string }) - Session died unexpectedly
74
+ * - `statsUpdated` (sessions: MuxSessionWithStats[]) - Stats refreshed
75
+ */
76
+ export interface TerminalMultiplexer extends EventEmitter {
77
+ /** Which backend this instance uses */
78
+ readonly backend: 'tmux';
79
+ /**
80
+ * Create a new multiplexer session.
81
+ * The session runs the appropriate command (claude, opencode, or shell) in detached mode.
82
+ */
83
+ createSession(options: CreateSessionOptions): Promise<MuxSession>;
84
+ /**
85
+ * Kill a session and all its child processes.
86
+ * Uses a multi-strategy approach (children → process group → mux kill → SIGKILL).
87
+ */
88
+ killSession(sessionId: string): Promise<boolean>;
89
+ /** Clean up resources (stop stats collection, etc.) */
90
+ destroy(): void;
91
+ /** Get all tracked sessions */
92
+ getSessions(): MuxSession[];
93
+ /** Get a session by Codeman session ID */
94
+ getSession(sessionId: string): MuxSession | undefined;
95
+ /** Get all sessions with process resource statistics */
96
+ getSessionsWithStats(): Promise<MuxSessionWithStats[]>;
97
+ /** Get process stats for a single session */
98
+ getProcessStats(sessionId: string): Promise<ProcessStats | null>;
99
+ /**
100
+ * Send input to a session via tmux send-keys.
101
+ */
102
+ sendInput(sessionId: string, input: string): Promise<boolean>;
103
+ /** Update the display name of a session */
104
+ updateSessionName(sessionId: string, name: string): boolean;
105
+ /** Mark session as attached/detached */
106
+ setAttached(sessionId: string, attached: boolean): void;
107
+ /** Register an externally-created session for tracking */
108
+ registerSession(session: MuxSession): void;
109
+ /** Update persisted respawn config for a session */
110
+ updateRespawnConfig(sessionId: string, config: PersistedRespawnConfig | undefined): void;
111
+ /** Clear respawn config when respawn is stopped */
112
+ clearRespawnConfig(sessionId: string): void;
113
+ /** Update Ralph enabled state for a session */
114
+ updateRalphEnabled(sessionId: string, enabled: boolean): void;
115
+ /**
116
+ * Reconcile tracked sessions with actual running sessions.
117
+ * Finds dead sessions and discovers unknown ones.
118
+ */
119
+ reconcileSessions(): Promise<{
120
+ alive: string[];
121
+ dead: string[];
122
+ discovered: string[];
123
+ }>;
124
+ /** Start periodic process stats collection */
125
+ startStatsCollection(intervalMs?: number): void;
126
+ /** Stop periodic process stats collection */
127
+ stopStatsCollection(): void;
128
+ /**
129
+ * Get the command to spawn for attaching to a session ('tmux').
130
+ */
131
+ getAttachCommand(): string;
132
+ /**
133
+ * Get the arguments for attaching to a session by mux name.
134
+ */
135
+ getAttachArgs(muxName: string): string[];
136
+ /** Check if the multiplexer binary is available on the system */
137
+ isAvailable(): boolean;
138
+ /** Check if a multiplexer session actually exists (process-level check, not just tracked) */
139
+ muxSessionExists(muxName: string): boolean;
140
+ /** Check if the pane in a session is dead (command exited but remain-on-exit keeps it alive) */
141
+ isPaneDead(muxName: string): boolean;
142
+ /** Respawn a dead pane with a fresh command. Returns the new PID or null on failure. */
143
+ respawnPane(options: RespawnPaneOptions): Promise<number | null>;
144
+ }
145
+ //# sourceMappingURL=mux-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mux-interface.d.ts","sourceRoot":"","sources":["../src/mux-interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview Terminal multiplexer abstraction layer (tmux).
3
+ *
4
+ * Defines the TerminalMultiplexer interface that TmuxManager implements.
5
+ *
6
+ * @module mux-interface
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=mux-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mux-interface.js","sourceRoot":"","sources":["../src/mux-interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * @fileoverview Simplified plan generation with 2 agents instead of 9.
3
+ *
4
+ * Previous architecture (removed):
5
+ * - 4 parallel analysis agents (requirements, architecture, testing, risks)
6
+ * - Synthesis phase
7
+ * - Verification agent
8
+ * - Execution optimizer agent (output was ignored anyway)
9
+ * - Final review agent
10
+ *
11
+ * New architecture:
12
+ * 1. Research Agent - gather context (optional, can fail)
13
+ * 2. Planner Agent - single agent generates complete TDD plan
14
+ *
15
+ * @module plan-orchestrator
16
+ */
17
+ import type { TerminalMultiplexer } from './mux-interface.js';
18
+ import { PlanTaskStatus, TddPhase } from './types.js';
19
+ /** Development phase in TDD cycle (alias for TddPhase) */
20
+ export type PlanPhase = TddPhase;
21
+ /**
22
+ * Plan item with TDD structure.
23
+ */
24
+ export interface PlanItem {
25
+ id?: string;
26
+ content: string;
27
+ priority: 'P0' | 'P1' | 'P2' | null;
28
+ source?: string;
29
+ rationale?: string;
30
+ verificationCriteria?: string;
31
+ testCommand?: string;
32
+ dependencies?: string[];
33
+ status?: PlanTaskStatus;
34
+ attempts?: number;
35
+ lastError?: string;
36
+ completedAt?: number;
37
+ complexity?: 'low' | 'medium' | 'high';
38
+ tddPhase?: PlanPhase;
39
+ pairedWith?: string;
40
+ reviewChecklist?: string[];
41
+ }
42
+ export interface ResearchResult {
43
+ success: boolean;
44
+ findings: {
45
+ externalResources: Array<{
46
+ type: 'github' | 'documentation' | 'tutorial' | 'article' | 'stackoverflow';
47
+ url?: string;
48
+ title: string;
49
+ relevance: string;
50
+ keyInsights: string[];
51
+ }>;
52
+ codebasePatterns: Array<{
53
+ pattern: string;
54
+ location: string;
55
+ relevance: string;
56
+ }>;
57
+ technicalRecommendations: string[];
58
+ potentialChallenges: string[];
59
+ recommendedTools: Array<{
60
+ name: string;
61
+ purpose: string;
62
+ reason: string;
63
+ }>;
64
+ };
65
+ enrichedTaskDescription: string;
66
+ error?: string;
67
+ durationMs: number;
68
+ }
69
+ export interface DetailedPlanResult {
70
+ success: boolean;
71
+ items?: PlanItem[];
72
+ costUsd?: number;
73
+ metadata?: {
74
+ researchResult?: ResearchResult;
75
+ plannerGaps: string[];
76
+ plannerWarnings: string[];
77
+ totalDurationMs: number;
78
+ };
79
+ error?: string;
80
+ }
81
+ export type ProgressCallback = (phase: string, detail: string) => void;
82
+ export interface PlanSubagentEvent {
83
+ type: 'started' | 'progress' | 'completed' | 'failed';
84
+ agentId: string;
85
+ agentType: 'research' | 'planner';
86
+ model: string;
87
+ status: string;
88
+ detail?: string;
89
+ itemCount?: number;
90
+ durationMs?: number;
91
+ error?: string;
92
+ }
93
+ export type SubagentCallback = (event: PlanSubagentEvent) => void;
94
+ export declare class PlanOrchestrator {
95
+ private mux;
96
+ private workingDir;
97
+ private outputDir?;
98
+ private runningSessions;
99
+ private cancelled;
100
+ private taskDescription;
101
+ private researchModel;
102
+ private plannerModel;
103
+ constructor(mux: TerminalMultiplexer, workingDir?: string, outputDir?: string, modelConfig?: {
104
+ defaultModel?: string;
105
+ agentTypeOverrides?: Record<string, string>;
106
+ });
107
+ private saveAgentOutput;
108
+ private saveFinalResult;
109
+ private generateSummary;
110
+ cancel(): Promise<void>;
111
+ /**
112
+ * Generate a detailed TDD plan.
113
+ *
114
+ * Flow:
115
+ * 1. Research Agent (optional - failures don't block)
116
+ * 2. Planner Agent (generates complete TDD plan)
117
+ */
118
+ generateDetailedPlan(taskDescription: string, onProgress?: ProgressCallback, onSubagent?: SubagentCallback): Promise<DetailedPlanResult>;
119
+ private formatResearchContext;
120
+ private runResearchAgent;
121
+ private runPlannerAgent;
122
+ }
123
+ //# sourceMappingURL=plan-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-orchestrator.d.ts","sourceRoot":"","sources":["../src/plan-orchestrator.ts"],"names":[],"mappings":"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"}