@ai-devkit/agent-manager 0.36.0 → 0.38.0

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 (1046) hide show
  1. package/dist/AgentManager.d.ts +9 -8
  2. package/dist/AgentManager.d.ts.map +1 -1
  3. package/dist/AgentManager.js +23 -4
  4. package/dist/AgentManager.js.map +1 -1
  5. package/dist/__tests__/AgentManager.test.js +151 -3
  6. package/dist/__tests__/AgentManager.test.js.map +1 -1
  7. package/dist/__tests__/adapters/IncrementalSessionRefresh.test.js +486 -0
  8. package/dist/__tests__/adapters/IncrementalSessionRefresh.test.js.map +1 -0
  9. package/dist/__tests__/adapters/adapterProcessImports.test.js +52 -0
  10. package/dist/__tests__/adapters/adapterProcessImports.test.js.map +1 -0
  11. package/dist/__tests__/adapters/adapterSnapshotCandidates.test.js +247 -0
  12. package/dist/__tests__/adapters/adapterSnapshotCandidates.test.js.map +1 -0
  13. package/dist/__tests__/capacity/anthropic.test.js +115 -0
  14. package/dist/__tests__/capacity/anthropic.test.js.map +1 -0
  15. package/dist/__tests__/capacity/boundaries.test.js +45 -0
  16. package/dist/__tests__/capacity/boundaries.test.js.map +1 -0
  17. package/dist/__tests__/capacity/claude.test.js +3 -3
  18. package/dist/__tests__/capacity/claude.test.js.map +1 -1
  19. package/dist/__tests__/capacity/codex.test.js +3 -1
  20. package/dist/__tests__/capacity/codex.test.js.map +1 -1
  21. package/dist/__tests__/capacity/openai.test.js +32 -25
  22. package/dist/__tests__/capacity/openai.test.js.map +1 -1
  23. package/dist/__tests__/capacity/wham.test.js +1 -1
  24. package/dist/__tests__/capacity/wham.test.js.map +1 -1
  25. package/dist/__tests__/capacity/zai.test.js +7 -8
  26. package/dist/__tests__/capacity/zai.test.js.map +1 -1
  27. package/dist/__tests__/harnesses/BoundedSummarySkip.test.js +568 -0
  28. package/dist/__tests__/harnesses/BoundedSummarySkip.test.js.map +1 -0
  29. package/dist/__tests__/harnesses/SessionSummaryEquivalence.test.js +1089 -0
  30. package/dist/__tests__/harnesses/SessionSummaryEquivalence.test.js.map +1 -0
  31. package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.subprocess.test.js +143 -0
  32. package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.subprocess.test.js.map +1 -0
  33. package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.test.js +462 -0
  34. package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.test.js.map +1 -0
  35. package/dist/__tests__/harnesses/builtinAdapters.test.js +33 -0
  36. package/dist/__tests__/harnesses/builtinAdapters.test.js.map +1 -0
  37. package/dist/__tests__/harnesses/claude/ClaudeAgentMapper.test.js +79 -0
  38. package/dist/__tests__/harnesses/claude/ClaudeAgentMapper.test.js.map +1 -0
  39. package/dist/__tests__/harnesses/claude/ClaudeCodeAdapter.test.js +1881 -0
  40. package/dist/__tests__/harnesses/claude/ClaudeCodeAdapter.test.js.map +1 -0
  41. package/dist/__tests__/harnesses/claude/ClaudeSessionLocator.test.js +425 -0
  42. package/dist/__tests__/harnesses/claude/ClaudeSessionLocator.test.js.map +1 -0
  43. package/dist/__tests__/harnesses/claude/ClaudeSessionParser.test.js +314 -0
  44. package/dist/__tests__/harnesses/claude/ClaudeSessionParser.test.js.map +1 -0
  45. package/dist/__tests__/harnesses/claude/durable/ClaudeCliProbe.test.js +49 -0
  46. package/dist/__tests__/harnesses/claude/durable/ClaudeCliProbe.test.js.map +1 -0
  47. package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.js +76 -0
  48. package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.js.map +1 -0
  49. package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgentService.test.js +173 -0
  50. package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgentService.test.js.map +1 -0
  51. package/dist/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.js +181 -0
  52. package/dist/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.js.map +1 -0
  53. package/dist/__tests__/harnesses/codex/CodexAdapter.test.js +685 -0
  54. package/dist/__tests__/harnesses/codex/CodexAdapter.test.js.map +1 -0
  55. package/dist/__tests__/harnesses/codex/CodexSessionLocator.test.js +463 -0
  56. package/dist/__tests__/harnesses/codex/CodexSessionLocator.test.js.map +1 -0
  57. package/dist/__tests__/harnesses/codex/CodexSessionMapping.test.js +86 -0
  58. package/dist/__tests__/harnesses/codex/CodexSessionMapping.test.js.map +1 -0
  59. package/dist/__tests__/harnesses/codex/CodexSessionParser.test.js +254 -0
  60. package/dist/__tests__/harnesses/codex/CodexSessionParser.test.js.map +1 -0
  61. package/dist/__tests__/harnesses/codex/durable/CodexCliProbe.test.js +121 -0
  62. package/dist/__tests__/harnesses/codex/durable/CodexCliProbe.test.js.map +1 -0
  63. package/dist/__tests__/harnesses/codex/durable/CodexDurableAgentRepository.test.js +84 -0
  64. package/dist/__tests__/harnesses/codex/durable/CodexDurableAgentRepository.test.js.map +1 -0
  65. package/dist/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.js +128 -0
  66. package/dist/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.js.map +1 -0
  67. package/dist/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.js +246 -0
  68. package/dist/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.js.map +1 -0
  69. package/dist/__tests__/harnesses/codex/durable/CodexPrintRunner.test.js +384 -0
  70. package/dist/__tests__/harnesses/codex/durable/CodexPrintRunner.test.js.map +1 -0
  71. package/dist/__tests__/harnesses/copilot/CopilotAdapter.test.js +659 -0
  72. package/dist/__tests__/harnesses/copilot/CopilotAdapter.test.js.map +1 -0
  73. package/dist/__tests__/harnesses/copilot/CopilotRefreshIO.test.js +290 -0
  74. package/dist/__tests__/harnesses/copilot/CopilotRefreshIO.test.js.map +1 -0
  75. package/dist/__tests__/harnesses/gemini/GeminiCliAdapter.test.js +1443 -0
  76. package/dist/__tests__/harnesses/gemini/GeminiCliAdapter.test.js.map +1 -0
  77. package/dist/__tests__/harnesses/gemini/GeminiSessionJsonl.test.js +491 -0
  78. package/dist/__tests__/harnesses/gemini/GeminiSessionJsonl.test.js.map +1 -0
  79. package/dist/__tests__/harnesses/gemini/GeminiSessionLocator.test.js +399 -0
  80. package/dist/__tests__/harnesses/gemini/GeminiSessionLocator.test.js.map +1 -0
  81. package/dist/__tests__/harnesses/grok/GrokAgentMapper.test.js +56 -0
  82. package/dist/__tests__/harnesses/grok/GrokAgentMapper.test.js.map +1 -0
  83. package/dist/__tests__/harnesses/grok/GrokCliAdapter.test.js +421 -0
  84. package/dist/__tests__/harnesses/grok/GrokCliAdapter.test.js.map +1 -0
  85. package/dist/__tests__/harnesses/grok/GrokIncrementalRefresh.test.js +167 -0
  86. package/dist/__tests__/harnesses/grok/GrokIncrementalRefresh.test.js.map +1 -0
  87. package/dist/__tests__/harnesses/grok/GrokSessionLocator.test.js +133 -0
  88. package/dist/__tests__/harnesses/grok/GrokSessionLocator.test.js.map +1 -0
  89. package/dist/__tests__/harnesses/grok/GrokSessionParser.test.js +301 -0
  90. package/dist/__tests__/harnesses/grok/GrokSessionParser.test.js.map +1 -0
  91. package/dist/__tests__/harnesses/kiro/KiroAdapter.test.js +662 -0
  92. package/dist/__tests__/harnesses/kiro/KiroAdapter.test.js.map +1 -0
  93. package/dist/__tests__/harnesses/opencode/OpenCodeAdapter.test.js +213 -0
  94. package/dist/__tests__/harnesses/opencode/OpenCodeAdapter.test.js.map +1 -0
  95. package/dist/__tests__/harnesses/opencode/OpenCodeAgentMapper.test.js +89 -0
  96. package/dist/__tests__/harnesses/opencode/OpenCodeAgentMapper.test.js.map +1 -0
  97. package/dist/__tests__/harnesses/opencode/OpenCodeSessionLocator.test.js +94 -0
  98. package/dist/__tests__/harnesses/opencode/OpenCodeSessionLocator.test.js.map +1 -0
  99. package/dist/__tests__/harnesses/opencode/OpenCodeSessionParser.test.js +147 -0
  100. package/dist/__tests__/harnesses/opencode/OpenCodeSessionParser.test.js.map +1 -0
  101. package/dist/__tests__/harnesses/pi/PiAdapter.test.js +367 -0
  102. package/dist/__tests__/harnesses/pi/PiAdapter.test.js.map +1 -0
  103. package/dist/__tests__/harnesses/pi/PiDiscoveryIO.test.js +382 -0
  104. package/dist/__tests__/harnesses/pi/PiDiscoveryIO.test.js.map +1 -0
  105. package/dist/__tests__/harnesses/pi/PiSessionParser.test.js +416 -0
  106. package/dist/__tests__/harnesses/pi/PiSessionParser.test.js.map +1 -0
  107. package/dist/__tests__/harnesses/pi/PiSessionTracker.test.js +108 -0
  108. package/dist/__tests__/harnesses/pi/PiSessionTracker.test.js.map +1 -0
  109. package/dist/__tests__/harnesses/pi/durable/PiCliProbe.test.js +70 -0
  110. package/dist/__tests__/harnesses/pi/durable/PiCliProbe.test.js.map +1 -0
  111. package/dist/__tests__/harnesses/pi/durable/PiDurableAgentRepository.test.js.map +1 -0
  112. package/dist/__tests__/harnesses/pi/durable/PiPrintAgentService.test.js +192 -0
  113. package/dist/__tests__/harnesses/pi/durable/PiPrintAgentService.test.js.map +1 -0
  114. package/dist/__tests__/harnesses/pi/durable/PiPrintProtocol.test.js +119 -0
  115. package/dist/__tests__/harnesses/pi/durable/PiPrintProtocol.test.js.map +1 -0
  116. package/dist/__tests__/harnesses/pi/durable/PiPrintRunner.test.js +382 -0
  117. package/dist/__tests__/harnesses/pi/durable/PiPrintRunner.test.js.map +1 -0
  118. package/dist/__tests__/harnesses/pi/durable/PiStreamParser.test.js +34 -0
  119. package/dist/__tests__/harnesses/pi/durable/PiStreamParser.test.js.map +1 -0
  120. package/dist/__tests__/harnesses/readiness/AgentReadiness.test.js +342 -0
  121. package/dist/__tests__/harnesses/readiness/AgentReadiness.test.js.map +1 -0
  122. package/dist/__tests__/harnesses/runtimeProfiles.test.js +89 -0
  123. package/dist/__tests__/harnesses/runtimeProfiles.test.js.map +1 -0
  124. package/dist/__tests__/print/DurableAgent.test.js +4 -6
  125. package/dist/__tests__/print/DurableAgent.test.js.map +1 -1
  126. package/dist/__tests__/print/DurableAgentRepository.test.js +1 -12
  127. package/dist/__tests__/print/DurableAgentRepository.test.js.map +1 -1
  128. package/dist/__tests__/runtime/ManagedAgentRuntime.test.js +49 -0
  129. package/dist/__tests__/runtime/ManagedAgentRuntime.test.js.map +1 -1
  130. package/dist/__tests__/terminal/TmuxManager.test.js +1 -1
  131. package/dist/__tests__/terminal/TmuxManager.test.js.map +1 -1
  132. package/dist/__tests__/utils/IncrementalJsonlSummary.test.js +650 -0
  133. package/dist/__tests__/utils/IncrementalJsonlSummary.test.js.map +1 -0
  134. package/dist/__tests__/utils/conversationTail.bench.test.js +258 -0
  135. package/dist/__tests__/utils/conversationTail.bench.test.js.map +1 -0
  136. package/dist/__tests__/utils/conversationTailParity.test.js +588 -0
  137. package/dist/__tests__/utils/conversationTailParity.test.js.map +1 -0
  138. package/dist/__tests__/utils/jsonlTail.test.js +360 -0
  139. package/dist/__tests__/utils/jsonlTail.test.js.map +1 -0
  140. package/dist/__tests__/utils/matchingConstants.test.js +35 -0
  141. package/dist/__tests__/utils/matchingConstants.test.js.map +1 -0
  142. package/dist/__tests__/utils/process.test.js +436 -2
  143. package/dist/__tests__/utils/process.test.js.map +1 -1
  144. package/dist/adapters/AgentAdapter.d.ts +25 -6
  145. package/dist/adapters/AgentAdapter.d.ts.map +1 -1
  146. package/dist/adapters/AgentAdapter.js +12 -3
  147. package/dist/adapters/AgentAdapter.js.map +1 -1
  148. package/dist/capacity/index.d.ts +9 -19
  149. package/dist/capacity/index.d.ts.map +1 -1
  150. package/dist/capacity/index.js +11 -4
  151. package/dist/capacity/index.js.map +1 -1
  152. package/dist/capacity/providers/anthropic.d.ts +9 -0
  153. package/dist/capacity/providers/anthropic.d.ts.map +1 -0
  154. package/dist/capacity/providers/anthropic.js +153 -0
  155. package/dist/capacity/providers/anthropic.js.map +1 -0
  156. package/dist/capacity/providers/openai-platform.d.ts +14 -0
  157. package/dist/capacity/providers/openai-platform.d.ts.map +1 -0
  158. package/dist/capacity/providers/openai-platform.js +120 -0
  159. package/dist/capacity/providers/openai-platform.js.map +1 -0
  160. package/dist/capacity/providers/openai-subscription.d.ts +20 -0
  161. package/dist/capacity/providers/openai-subscription.d.ts.map +1 -0
  162. package/dist/capacity/providers/openai-subscription.js +129 -0
  163. package/dist/capacity/providers/openai-subscription.js.map +1 -0
  164. package/dist/capacity/providers/zai.d.ts +8 -0
  165. package/dist/capacity/providers/zai.d.ts.map +1 -0
  166. package/dist/capacity/providers/zai.js +158 -0
  167. package/dist/capacity/providers/zai.js.map +1 -0
  168. package/dist/capacity/sources/claude.d.ts +9 -0
  169. package/dist/capacity/sources/claude.d.ts.map +1 -0
  170. package/dist/capacity/sources/claude.js +17 -0
  171. package/dist/capacity/sources/claude.js.map +1 -0
  172. package/dist/capacity/sources/codex.d.ts +32 -0
  173. package/dist/capacity/sources/codex.d.ts.map +1 -0
  174. package/dist/capacity/sources/codex.js +227 -0
  175. package/dist/capacity/sources/codex.js.map +1 -0
  176. package/dist/capacity/sources/pi.d.ts +30 -0
  177. package/dist/capacity/sources/pi.d.ts.map +1 -0
  178. package/dist/capacity/sources/pi.js +81 -0
  179. package/dist/capacity/sources/pi.js.map +1 -0
  180. package/dist/capacity/types.d.ts +2 -0
  181. package/dist/capacity/types.d.ts.map +1 -1
  182. package/dist/capacity/types.js +1 -1
  183. package/dist/capacity/types.js.map +1 -1
  184. package/dist/harnesses/antigravity/AntigravityAgentMapper.d.ts +13 -0
  185. package/dist/harnesses/antigravity/AntigravityAgentMapper.d.ts.map +1 -0
  186. package/dist/harnesses/antigravity/AntigravityAgentMapper.js +30 -0
  187. package/dist/harnesses/antigravity/AntigravityAgentMapper.js.map +1 -0
  188. package/dist/harnesses/antigravity/AntigravityCliAdapter.d.ts +32 -0
  189. package/dist/harnesses/antigravity/AntigravityCliAdapter.d.ts.map +1 -0
  190. package/dist/harnesses/antigravity/AntigravityCliAdapter.js +97 -0
  191. package/dist/harnesses/antigravity/AntigravityCliAdapter.js.map +1 -0
  192. package/dist/harnesses/antigravity/AntigravitySessionLocator.d.ts +30 -0
  193. package/dist/harnesses/antigravity/AntigravitySessionLocator.d.ts.map +1 -0
  194. package/dist/harnesses/antigravity/AntigravitySessionLocator.js +56 -0
  195. package/dist/harnesses/antigravity/AntigravitySessionLocator.js.map +1 -0
  196. package/dist/harnesses/antigravity/AntigravitySessionParser.d.ts +75 -0
  197. package/dist/harnesses/antigravity/AntigravitySessionParser.d.ts.map +1 -0
  198. package/dist/harnesses/antigravity/AntigravitySessionParser.js +174 -0
  199. package/dist/harnesses/antigravity/AntigravitySessionParser.js.map +1 -0
  200. package/dist/harnesses/claude/ClaudeAgentMapper.d.ts.map +1 -0
  201. package/dist/harnesses/claude/ClaudeAgentMapper.js +36 -0
  202. package/dist/harnesses/claude/ClaudeAgentMapper.js.map +1 -0
  203. package/dist/harnesses/claude/ClaudeCodeAdapter.d.ts +30 -0
  204. package/dist/harnesses/claude/ClaudeCodeAdapter.d.ts.map +1 -0
  205. package/dist/harnesses/claude/ClaudeCodeAdapter.js +134 -0
  206. package/dist/harnesses/claude/ClaudeCodeAdapter.js.map +1 -0
  207. package/dist/harnesses/claude/ClaudeSessionLocator.d.ts.map +1 -0
  208. package/dist/harnesses/claude/ClaudeSessionLocator.js +260 -0
  209. package/dist/harnesses/claude/ClaudeSessionLocator.js.map +1 -0
  210. package/dist/harnesses/claude/ClaudeSessionParser.d.ts +148 -0
  211. package/dist/harnesses/claude/ClaudeSessionParser.d.ts.map +1 -0
  212. package/dist/harnesses/claude/ClaudeSessionParser.js +365 -0
  213. package/dist/harnesses/claude/ClaudeSessionParser.js.map +1 -0
  214. package/dist/harnesses/claude/credentials.d.ts +10 -0
  215. package/dist/harnesses/claude/credentials.d.ts.map +1 -0
  216. package/dist/harnesses/claude/credentials.js +112 -0
  217. package/dist/harnesses/claude/credentials.js.map +1 -0
  218. package/dist/harnesses/claude/durable/ClaudeCliProbe.d.ts.map +1 -0
  219. package/dist/harnesses/claude/durable/ClaudeCliProbe.js.map +1 -0
  220. package/dist/harnesses/claude/durable/ClaudePrintAgentService.d.ts.map +1 -0
  221. package/dist/harnesses/claude/durable/ClaudePrintAgentService.js.map +1 -0
  222. package/dist/harnesses/claude/durable/ClaudePrintRunner.d.ts.map +1 -0
  223. package/dist/harnesses/claude/durable/ClaudePrintRunner.js.map +1 -0
  224. package/dist/harnesses/claude/durable/ClaudeStreamParser.d.ts.map +1 -0
  225. package/dist/harnesses/claude/durable/ClaudeStreamParser.js.map +1 -0
  226. package/dist/harnesses/claude/readiness.d.ts +3 -0
  227. package/dist/harnesses/claude/readiness.d.ts.map +1 -0
  228. package/dist/harnesses/claude/readiness.js +63 -0
  229. package/dist/harnesses/claude/readiness.js.map +1 -0
  230. package/dist/harnesses/codex/CodexAdapter.d.ts +29 -0
  231. package/dist/harnesses/codex/CodexAdapter.d.ts.map +1 -0
  232. package/dist/harnesses/codex/CodexAdapter.js +290 -0
  233. package/dist/harnesses/codex/CodexAdapter.js.map +1 -0
  234. package/dist/harnesses/codex/CodexAgentMapper.d.ts.map +1 -0
  235. package/dist/harnesses/codex/CodexAgentMapper.js +28 -0
  236. package/dist/harnesses/codex/CodexAgentMapper.js.map +1 -0
  237. package/dist/harnesses/codex/CodexSessionLocator.d.ts +74 -0
  238. package/dist/harnesses/codex/CodexSessionLocator.d.ts.map +1 -0
  239. package/dist/harnesses/codex/CodexSessionLocator.js +359 -0
  240. package/dist/harnesses/codex/CodexSessionLocator.js.map +1 -0
  241. package/dist/harnesses/codex/CodexSessionMapping.d.ts.map +1 -0
  242. package/dist/harnesses/codex/CodexSessionMapping.js +68 -0
  243. package/dist/harnesses/codex/CodexSessionMapping.js.map +1 -0
  244. package/dist/harnesses/codex/CodexSessionParser.d.ts +89 -0
  245. package/dist/harnesses/codex/CodexSessionParser.d.ts.map +1 -0
  246. package/dist/harnesses/codex/CodexSessionParser.js +308 -0
  247. package/dist/harnesses/codex/CodexSessionParser.js.map +1 -0
  248. package/dist/harnesses/codex/credentials.d.ts +15 -0
  249. package/dist/harnesses/codex/credentials.d.ts.map +1 -0
  250. package/dist/harnesses/codex/credentials.js +58 -0
  251. package/dist/harnesses/codex/credentials.js.map +1 -0
  252. package/dist/harnesses/codex/durable/CodexCliProbe.d.ts.map +1 -0
  253. package/dist/harnesses/codex/durable/CodexCliProbe.js.map +1 -0
  254. package/dist/harnesses/codex/durable/CodexPrintAgentService.d.ts.map +1 -0
  255. package/dist/harnesses/codex/durable/CodexPrintAgentService.js.map +1 -0
  256. package/dist/harnesses/codex/durable/CodexPrintRunner.d.ts.map +1 -0
  257. package/dist/harnesses/codex/durable/CodexPrintRunner.js.map +1 -0
  258. package/dist/harnesses/codex/durable/CodexStreamParser.d.ts.map +1 -0
  259. package/dist/harnesses/codex/durable/CodexStreamParser.js.map +1 -0
  260. package/dist/harnesses/codex/readiness.d.ts +3 -0
  261. package/dist/harnesses/codex/readiness.d.ts.map +1 -0
  262. package/dist/harnesses/codex/readiness.js +60 -0
  263. package/dist/harnesses/codex/readiness.js.map +1 -0
  264. package/dist/harnesses/copilot/CopilotAdapter.d.ts +36 -0
  265. package/dist/harnesses/copilot/CopilotAdapter.d.ts.map +1 -0
  266. package/dist/harnesses/copilot/CopilotAdapter.js +128 -0
  267. package/dist/harnesses/copilot/CopilotAdapter.js.map +1 -0
  268. package/dist/harnesses/copilot/CopilotAgentMapper.d.ts.map +1 -0
  269. package/dist/harnesses/copilot/CopilotAgentMapper.js +30 -0
  270. package/dist/harnesses/copilot/CopilotAgentMapper.js.map +1 -0
  271. package/dist/harnesses/copilot/CopilotSessionLocator.d.ts +42 -0
  272. package/dist/harnesses/copilot/CopilotSessionLocator.d.ts.map +1 -0
  273. package/dist/harnesses/copilot/CopilotSessionLocator.js +126 -0
  274. package/dist/harnesses/copilot/CopilotSessionLocator.js.map +1 -0
  275. package/dist/harnesses/copilot/CopilotSessionParser.d.ts +62 -0
  276. package/dist/harnesses/copilot/CopilotSessionParser.d.ts.map +1 -0
  277. package/dist/harnesses/copilot/CopilotSessionParser.js +236 -0
  278. package/dist/harnesses/copilot/CopilotSessionParser.js.map +1 -0
  279. package/dist/harnesses/copilot/readiness.d.ts +3 -0
  280. package/dist/harnesses/copilot/readiness.d.ts.map +1 -0
  281. package/dist/harnesses/copilot/readiness.js +39 -0
  282. package/dist/harnesses/copilot/readiness.js.map +1 -0
  283. package/dist/harnesses/gemini/GeminiAgentMapper.d.ts.map +1 -0
  284. package/dist/harnesses/gemini/GeminiAgentMapper.js +30 -0
  285. package/dist/harnesses/gemini/GeminiAgentMapper.js.map +1 -0
  286. package/dist/harnesses/gemini/GeminiCliAdapter.d.ts +52 -0
  287. package/dist/harnesses/gemini/GeminiCliAdapter.d.ts.map +1 -0
  288. package/dist/harnesses/gemini/GeminiCliAdapter.js +196 -0
  289. package/dist/harnesses/gemini/GeminiCliAdapter.js.map +1 -0
  290. package/dist/harnesses/gemini/GeminiSessionLocator.d.ts +72 -0
  291. package/dist/harnesses/gemini/GeminiSessionLocator.d.ts.map +1 -0
  292. package/dist/harnesses/gemini/GeminiSessionLocator.js +300 -0
  293. package/dist/harnesses/gemini/GeminiSessionLocator.js.map +1 -0
  294. package/dist/harnesses/gemini/GeminiSessionParser.d.ts +121 -0
  295. package/dist/harnesses/gemini/GeminiSessionParser.d.ts.map +1 -0
  296. package/dist/harnesses/gemini/GeminiSessionParser.js +272 -0
  297. package/dist/harnesses/gemini/GeminiSessionParser.js.map +1 -0
  298. package/dist/harnesses/gemini/fileSignature.d.ts +8 -0
  299. package/dist/harnesses/gemini/fileSignature.d.ts.map +1 -0
  300. package/dist/harnesses/gemini/fileSignature.js +9 -0
  301. package/dist/harnesses/gemini/fileSignature.js.map +1 -0
  302. package/dist/harnesses/grok/GrokAgentMapper.d.ts.map +1 -0
  303. package/dist/harnesses/grok/GrokAgentMapper.js +30 -0
  304. package/dist/harnesses/grok/GrokAgentMapper.js.map +1 -0
  305. package/dist/harnesses/grok/GrokCliAdapter.d.ts +36 -0
  306. package/dist/harnesses/grok/GrokCliAdapter.d.ts.map +1 -0
  307. package/dist/harnesses/grok/GrokCliAdapter.js +102 -0
  308. package/dist/harnesses/grok/GrokCliAdapter.js.map +1 -0
  309. package/dist/harnesses/grok/GrokSessionLocator.d.ts.map +1 -0
  310. package/dist/harnesses/grok/GrokSessionLocator.js +140 -0
  311. package/dist/harnesses/grok/GrokSessionLocator.js.map +1 -0
  312. package/dist/harnesses/grok/GrokSessionParser.d.ts +87 -0
  313. package/dist/harnesses/grok/GrokSessionParser.d.ts.map +1 -0
  314. package/dist/harnesses/grok/GrokSessionParser.js +185 -0
  315. package/dist/harnesses/grok/GrokSessionParser.js.map +1 -0
  316. package/dist/harnesses/index.d.ts +7 -0
  317. package/dist/harnesses/index.d.ts.map +1 -0
  318. package/dist/harnesses/index.js +27 -0
  319. package/dist/harnesses/index.js.map +1 -0
  320. package/dist/harnesses/kiro/KiroAdapter.d.ts +31 -0
  321. package/dist/harnesses/kiro/KiroAdapter.d.ts.map +1 -0
  322. package/dist/harnesses/kiro/KiroAdapter.js +125 -0
  323. package/dist/harnesses/kiro/KiroAdapter.js.map +1 -0
  324. package/dist/harnesses/kiro/KiroAgentMapper.d.ts +13 -0
  325. package/dist/harnesses/kiro/KiroAgentMapper.d.ts.map +1 -0
  326. package/dist/harnesses/kiro/KiroAgentMapper.js +29 -0
  327. package/dist/harnesses/kiro/KiroAgentMapper.js.map +1 -0
  328. package/dist/harnesses/kiro/KiroSessionLocator.d.ts +38 -0
  329. package/dist/harnesses/kiro/KiroSessionLocator.d.ts.map +1 -0
  330. package/dist/harnesses/kiro/KiroSessionLocator.js +95 -0
  331. package/dist/harnesses/kiro/KiroSessionLocator.js.map +1 -0
  332. package/dist/harnesses/kiro/KiroSessionParser.d.ts +81 -0
  333. package/dist/harnesses/kiro/KiroSessionParser.d.ts.map +1 -0
  334. package/dist/harnesses/kiro/KiroSessionParser.js +251 -0
  335. package/dist/harnesses/kiro/KiroSessionParser.js.map +1 -0
  336. package/dist/harnesses/opencode/OpenCodeAdapter.d.ts +29 -0
  337. package/dist/harnesses/opencode/OpenCodeAdapter.d.ts.map +1 -0
  338. package/dist/harnesses/opencode/OpenCodeAdapter.js +86 -0
  339. package/dist/harnesses/opencode/OpenCodeAdapter.js.map +1 -0
  340. package/dist/harnesses/opencode/OpenCodeAgentMapper.d.ts.map +1 -0
  341. package/dist/harnesses/opencode/OpenCodeAgentMapper.js +42 -0
  342. package/dist/harnesses/opencode/OpenCodeAgentMapper.js.map +1 -0
  343. package/dist/harnesses/opencode/OpenCodeSessionLocator.d.ts.map +1 -0
  344. package/dist/harnesses/opencode/OpenCodeSessionLocator.js +118 -0
  345. package/dist/harnesses/opencode/OpenCodeSessionLocator.js.map +1 -0
  346. package/dist/harnesses/opencode/OpenCodeSessionParser.d.ts +16 -0
  347. package/dist/harnesses/opencode/OpenCodeSessionParser.d.ts.map +1 -0
  348. package/dist/harnesses/opencode/OpenCodeSessionParser.js +105 -0
  349. package/dist/harnesses/opencode/OpenCodeSessionParser.js.map +1 -0
  350. package/dist/harnesses/opencode/readiness.d.ts +3 -0
  351. package/dist/harnesses/opencode/readiness.d.ts.map +1 -0
  352. package/dist/harnesses/opencode/readiness.js +50 -0
  353. package/dist/harnesses/opencode/readiness.js.map +1 -0
  354. package/dist/harnesses/pi/PiAdapter.d.ts +30 -0
  355. package/dist/harnesses/pi/PiAdapter.d.ts.map +1 -0
  356. package/dist/harnesses/pi/PiAdapter.js +167 -0
  357. package/dist/harnesses/pi/PiAdapter.js.map +1 -0
  358. package/dist/harnesses/pi/PiAgentMapper.d.ts.map +1 -0
  359. package/dist/harnesses/pi/PiAgentMapper.js +30 -0
  360. package/dist/harnesses/pi/PiAgentMapper.js.map +1 -0
  361. package/dist/harnesses/pi/PiSessionLocator.d.ts +61 -0
  362. package/dist/harnesses/pi/PiSessionLocator.d.ts.map +1 -0
  363. package/dist/harnesses/pi/PiSessionLocator.js +212 -0
  364. package/dist/harnesses/pi/PiSessionLocator.js.map +1 -0
  365. package/dist/harnesses/pi/PiSessionParser.d.ts +88 -0
  366. package/dist/harnesses/pi/PiSessionParser.d.ts.map +1 -0
  367. package/dist/harnesses/pi/PiSessionParser.js +318 -0
  368. package/dist/harnesses/pi/PiSessionParser.js.map +1 -0
  369. package/dist/harnesses/pi/PiSessionTracker.d.ts.map +1 -0
  370. package/dist/harnesses/pi/PiSessionTracker.js +69 -0
  371. package/dist/harnesses/pi/PiSessionTracker.js.map +1 -0
  372. package/dist/harnesses/pi/credentials.d.ts +22 -0
  373. package/dist/harnesses/pi/credentials.d.ts.map +1 -0
  374. package/dist/harnesses/pi/credentials.js +98 -0
  375. package/dist/harnesses/pi/credentials.js.map +1 -0
  376. package/dist/harnesses/pi/durable/PiCliProbe.d.ts.map +1 -0
  377. package/dist/harnesses/pi/durable/PiCliProbe.js.map +1 -0
  378. package/dist/harnesses/pi/durable/PiPrintAgentService.d.ts.map +1 -0
  379. package/dist/harnesses/pi/durable/PiPrintAgentService.js.map +1 -0
  380. package/dist/harnesses/pi/durable/PiPrintProtocol.d.ts.map +1 -0
  381. package/dist/harnesses/pi/durable/PiPrintProtocol.js.map +1 -0
  382. package/dist/harnesses/pi/durable/PiPrintRunner.d.ts.map +1 -0
  383. package/dist/harnesses/pi/durable/PiPrintRunner.js.map +1 -0
  384. package/dist/harnesses/pi/durable/PiStreamParser.d.ts.map +1 -0
  385. package/dist/harnesses/pi/durable/PiStreamParser.js.map +1 -0
  386. package/dist/harnesses/pi/readiness.d.ts +3 -0
  387. package/dist/harnesses/pi/readiness.d.ts.map +1 -0
  388. package/dist/harnesses/pi/readiness.js +96 -0
  389. package/dist/harnesses/pi/readiness.js.map +1 -0
  390. package/dist/harnesses/readiness/AgentReadiness.d.ts +6 -0
  391. package/dist/harnesses/readiness/AgentReadiness.d.ts.map +1 -0
  392. package/dist/harnesses/readiness/AgentReadiness.js +68 -0
  393. package/dist/harnesses/readiness/AgentReadiness.js.map +1 -0
  394. package/dist/harnesses/readiness/checks.d.ts +31 -0
  395. package/dist/harnesses/readiness/checks.d.ts.map +1 -0
  396. package/dist/harnesses/readiness/checks.js +270 -0
  397. package/dist/harnesses/readiness/checks.js.map +1 -0
  398. package/dist/harnesses/readiness/types.d.ts +76 -0
  399. package/dist/harnesses/readiness/types.d.ts.map +1 -0
  400. package/dist/harnesses/readiness/types.js +4 -0
  401. package/dist/harnesses/readiness/types.js.map +1 -0
  402. package/dist/harnesses/runtimeProfiles.d.ts +11 -0
  403. package/dist/harnesses/runtimeProfiles.d.ts.map +1 -0
  404. package/dist/harnesses/runtimeProfiles.js +99 -0
  405. package/dist/harnesses/runtimeProfiles.js.map +1 -0
  406. package/dist/harnesses/shared.d.ts +41 -0
  407. package/dist/harnesses/shared.d.ts.map +1 -0
  408. package/dist/harnesses/shared.js +71 -0
  409. package/dist/harnesses/shared.js.map +1 -0
  410. package/dist/index.d.ts +21 -46
  411. package/dist/index.d.ts.map +1 -1
  412. package/dist/index.js +14 -27
  413. package/dist/index.js.map +1 -1
  414. package/dist/runtime/ManagedAgentRuntime.d.ts +3 -3
  415. package/dist/runtime/ManagedAgentRuntime.d.ts.map +1 -1
  416. package/dist/runtime/ManagedAgentRuntime.js +6 -20
  417. package/dist/runtime/ManagedAgentRuntime.js.map +1 -1
  418. package/dist/runtime/herdr/HerdrAgentDiscovery.d.ts.map +1 -1
  419. package/dist/runtime/herdr/HerdrAgentDiscovery.js +2 -43
  420. package/dist/runtime/herdr/HerdrAgentDiscovery.js.map +1 -1
  421. package/dist/runtime/tmux/PidPolling.d.ts +1 -1
  422. package/dist/runtime/tmux/PidPolling.d.ts.map +1 -1
  423. package/dist/runtime/tmux/PidPolling.js.map +1 -1
  424. package/dist/runtime/tmux/TmuxAgentRuntime.d.ts +1 -1
  425. package/dist/runtime/tmux/TmuxAgentRuntime.d.ts.map +1 -1
  426. package/dist/runtime/tmux/TmuxAgentRuntime.js +1 -1
  427. package/dist/runtime/tmux/TmuxAgentRuntime.js.map +1 -1
  428. package/dist/runtime/tmux/TmuxManager.d.ts +12 -0
  429. package/dist/runtime/tmux/TmuxManager.d.ts.map +1 -0
  430. package/dist/runtime/tmux/TmuxManager.js +116 -0
  431. package/dist/runtime/tmux/TmuxManager.js.map +1 -0
  432. package/dist/runtime/types.d.ts +1 -1
  433. package/dist/runtime/types.d.ts.map +1 -1
  434. package/dist/runtime/types.js.map +1 -1
  435. package/dist/terminal/TerminalFocusManager.d.ts +4 -32
  436. package/dist/terminal/TerminalFocusManager.d.ts.map +1 -1
  437. package/dist/terminal/TerminalFocusManager.js +17 -267
  438. package/dist/terminal/TerminalFocusManager.js.map +1 -1
  439. package/dist/terminal/TtyWriter.d.ts +1 -44
  440. package/dist/terminal/TtyWriter.d.ts.map +1 -1
  441. package/dist/terminal/TtyWriter.js +11 -347
  442. package/dist/terminal/TtyWriter.js.map +1 -1
  443. package/dist/terminal/backends/index.d.ts +5 -0
  444. package/dist/terminal/backends/index.d.ts.map +1 -0
  445. package/dist/terminal/backends/index.js +19 -0
  446. package/dist/terminal/backends/index.js.map +1 -0
  447. package/dist/terminal/backends/iterm2.d.ts +3 -0
  448. package/dist/terminal/backends/iterm2.d.ts.map +1 -0
  449. package/dist/terminal/backends/iterm2.js +135 -0
  450. package/dist/terminal/backends/iterm2.js.map +1 -0
  451. package/dist/terminal/backends/shared.d.ts +7 -0
  452. package/dist/terminal/backends/shared.d.ts.map +1 -0
  453. package/dist/terminal/backends/shared.js +35 -0
  454. package/dist/terminal/backends/shared.js.map +1 -0
  455. package/dist/terminal/backends/terminal-app.d.ts +3 -0
  456. package/dist/terminal/backends/terminal-app.d.ts.map +1 -0
  457. package/dist/terminal/backends/terminal-app.js +129 -0
  458. package/dist/terminal/backends/terminal-app.js.map +1 -0
  459. package/dist/terminal/backends/tmux.d.ts +3 -0
  460. package/dist/terminal/backends/tmux.d.ts.map +1 -0
  461. package/dist/terminal/backends/tmux.js +76 -0
  462. package/dist/terminal/backends/tmux.js.map +1 -0
  463. package/dist/terminal/backends/wezterm.d.ts +3 -0
  464. package/dist/terminal/backends/wezterm.d.ts.map +1 -0
  465. package/dist/terminal/backends/wezterm.js +71 -0
  466. package/dist/terminal/backends/wezterm.js.map +1 -0
  467. package/dist/terminal/types.d.ts +21 -0
  468. package/dist/terminal/types.d.ts.map +1 -0
  469. package/dist/terminal/types.js +10 -0
  470. package/dist/terminal/types.js.map +1 -0
  471. package/dist/utils/IncrementalJsonlSummary.d.ts +100 -0
  472. package/dist/utils/IncrementalJsonlSummary.d.ts.map +1 -0
  473. package/dist/utils/IncrementalJsonlSummary.js +209 -0
  474. package/dist/utils/IncrementalJsonlSummary.js.map +1 -0
  475. package/dist/utils/jsonlTail.d.ts +73 -0
  476. package/dist/utils/jsonlTail.d.ts.map +1 -0
  477. package/dist/utils/jsonlTail.js +238 -0
  478. package/dist/utils/jsonlTail.js.map +1 -0
  479. package/dist/utils/matching.d.ts +2 -0
  480. package/dist/utils/matching.d.ts.map +1 -1
  481. package/dist/utils/matching.js +3 -2
  482. package/dist/utils/matching.js.map +1 -1
  483. package/dist/utils/matchingConstants.d.ts +15 -0
  484. package/dist/utils/matchingConstants.d.ts.map +1 -0
  485. package/dist/utils/matchingConstants.js +14 -0
  486. package/dist/utils/matchingConstants.js.map +1 -0
  487. package/dist/utils/process.d.ts +38 -2
  488. package/dist/utils/process.d.ts.map +1 -1
  489. package/dist/utils/process.js +131 -43
  490. package/dist/utils/process.js.map +1 -1
  491. package/package.json +2 -1
  492. package/scripts/benchmark-cold-start.mjs +350 -0
  493. package/src/AgentManager.ts +27 -6
  494. package/src/__tests__/AgentManager.test.ts +141 -3
  495. package/src/__tests__/adapters/IncrementalSessionRefresh.test.ts +437 -0
  496. package/src/__tests__/adapters/adapterProcessImports.test.ts +58 -0
  497. package/src/__tests__/adapters/adapterSnapshotCandidates.test.ts +243 -0
  498. package/src/__tests__/capacity/anthropic.test.ts +105 -0
  499. package/src/__tests__/capacity/boundaries.test.ts +36 -0
  500. package/src/__tests__/capacity/claude.test.ts +3 -8
  501. package/src/__tests__/capacity/codex.test.ts +12 -35
  502. package/src/__tests__/capacity/fixtures/openai-codex-auth.json +1 -1
  503. package/src/__tests__/capacity/openai.test.ts +20 -30
  504. package/src/__tests__/capacity/wham.test.ts +1 -1
  505. package/src/__tests__/capacity/zai.test.ts +27 -62
  506. package/src/__tests__/harnesses/BoundedSummarySkip.test.ts +496 -0
  507. package/src/__tests__/harnesses/SessionSummaryEquivalence.test.ts +726 -0
  508. package/src/__tests__/harnesses/antigravity/AntigravityCliAdapter.subprocess.test.ts +133 -0
  509. package/src/__tests__/harnesses/antigravity/AntigravityCliAdapter.test.ts +396 -0
  510. package/src/__tests__/harnesses/builtinAdapters.test.ts +33 -0
  511. package/src/__tests__/harnesses/claude/ClaudeAgentMapper.test.ts +84 -0
  512. package/src/__tests__/harnesses/claude/ClaudeCodeAdapter.test.ts +1793 -0
  513. package/src/__tests__/harnesses/claude/ClaudeSessionLocator.test.ts +423 -0
  514. package/src/__tests__/harnesses/claude/ClaudeSessionParser.test.ts +300 -0
  515. package/src/__tests__/harnesses/claude/durable/ClaudeCliProbe.test.ts +34 -0
  516. package/src/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.ts +61 -0
  517. package/src/__tests__/harnesses/claude/durable/ClaudePrintAgentService.test.ts +129 -0
  518. package/src/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.ts +152 -0
  519. package/src/__tests__/harnesses/codex/CodexAdapter.test.ts +652 -0
  520. package/src/__tests__/harnesses/codex/CodexSessionLocator.test.ts +419 -0
  521. package/src/__tests__/harnesses/codex/CodexSessionMapping.test.ts +63 -0
  522. package/src/__tests__/harnesses/codex/CodexSessionParser.test.ts +192 -0
  523. package/src/__tests__/harnesses/codex/durable/CodexCliProbe.test.ts +80 -0
  524. package/src/__tests__/harnesses/codex/durable/CodexDurableAgentRepository.test.ts +65 -0
  525. package/src/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.ts +104 -0
  526. package/src/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.ts +201 -0
  527. package/src/__tests__/harnesses/codex/durable/CodexPrintRunner.test.ts +299 -0
  528. package/src/__tests__/harnesses/copilot/CopilotAdapter.test.ts +614 -0
  529. package/src/__tests__/harnesses/copilot/CopilotRefreshIO.test.ts +270 -0
  530. package/src/__tests__/harnesses/gemini/GeminiCliAdapter.test.ts +1324 -0
  531. package/src/__tests__/harnesses/gemini/GeminiSessionJsonl.test.ts +402 -0
  532. package/src/__tests__/harnesses/gemini/GeminiSessionLocator.test.ts +396 -0
  533. package/src/__tests__/harnesses/grok/GrokAgentMapper.test.ts +57 -0
  534. package/src/__tests__/harnesses/grok/GrokCliAdapter.test.ts +376 -0
  535. package/src/__tests__/harnesses/grok/GrokIncrementalRefresh.test.ts +170 -0
  536. package/src/__tests__/harnesses/grok/GrokSessionLocator.test.ts +106 -0
  537. package/src/__tests__/harnesses/grok/GrokSessionParser.test.ts +230 -0
  538. package/src/__tests__/harnesses/kiro/KiroAdapter.test.ts +552 -0
  539. package/src/__tests__/harnesses/opencode/OpenCodeAdapter.test.ts +215 -0
  540. package/src/__tests__/harnesses/opencode/OpenCodeAgentMapper.test.ts +83 -0
  541. package/src/__tests__/harnesses/opencode/OpenCodeSessionLocator.test.ts +84 -0
  542. package/src/__tests__/harnesses/opencode/OpenCodeSessionParser.test.ts +148 -0
  543. package/src/__tests__/harnesses/pi/PiAdapter.test.ts +325 -0
  544. package/src/__tests__/harnesses/pi/PiDiscoveryIO.test.ts +337 -0
  545. package/src/__tests__/harnesses/pi/PiSessionParser.test.ts +280 -0
  546. package/src/__tests__/harnesses/pi/PiSessionTracker.test.ts +79 -0
  547. package/src/__tests__/harnesses/pi/durable/PiCliProbe.test.ts +50 -0
  548. package/src/__tests__/harnesses/pi/durable/PiPrintAgentService.test.ts +138 -0
  549. package/src/__tests__/harnesses/pi/durable/PiPrintProtocol.test.ts +71 -0
  550. package/src/__tests__/harnesses/pi/durable/PiPrintRunner.test.ts +252 -0
  551. package/src/__tests__/harnesses/pi/durable/PiStreamParser.test.ts +26 -0
  552. package/src/__tests__/harnesses/readiness/AgentReadiness.test.ts +285 -0
  553. package/src/__tests__/harnesses/runtimeProfiles.test.ts +110 -0
  554. package/src/__tests__/print/DurableAgent.test.ts +4 -13
  555. package/src/__tests__/print/DurableAgentRepository.test.ts +1 -13
  556. package/src/__tests__/runtime/ManagedAgentRuntime.test.ts +31 -1
  557. package/src/__tests__/terminal/TmuxManager.test.ts +1 -1
  558. package/src/__tests__/utils/IncrementalJsonlSummary.test.ts +414 -0
  559. package/src/__tests__/utils/conversationTail.bench.test.ts +193 -0
  560. package/src/__tests__/utils/conversationTailParity.test.ts +365 -0
  561. package/src/__tests__/utils/jsonlTail.test.ts +317 -0
  562. package/src/__tests__/utils/matchingConstants.test.ts +40 -0
  563. package/src/__tests__/utils/process.test.ts +254 -0
  564. package/src/adapters/AgentAdapter.ts +37 -14
  565. package/src/capacity/index.ts +29 -23
  566. package/src/capacity/providers/anthropic.ts +198 -0
  567. package/src/capacity/providers/openai-platform.ts +150 -0
  568. package/src/capacity/providers/openai-subscription.ts +162 -0
  569. package/src/capacity/providers/zai.ts +155 -0
  570. package/src/capacity/sources/claude.ts +30 -0
  571. package/src/capacity/sources/codex.ts +262 -0
  572. package/src/capacity/sources/pi.ts +131 -0
  573. package/src/capacity/types.ts +3 -0
  574. package/src/harnesses/antigravity/AntigravityAgentMapper.ts +34 -0
  575. package/src/harnesses/antigravity/AntigravityCliAdapter.ts +126 -0
  576. package/src/harnesses/antigravity/AntigravitySessionLocator.ts +75 -0
  577. package/src/harnesses/antigravity/AntigravitySessionParser.ts +252 -0
  578. package/src/harnesses/claude/ClaudeAgentMapper.ts +55 -0
  579. package/src/harnesses/claude/ClaudeCodeAdapter.ts +175 -0
  580. package/src/harnesses/claude/ClaudeSessionLocator.ts +358 -0
  581. package/src/harnesses/claude/ClaudeSessionParser.ts +524 -0
  582. package/src/harnesses/claude/credentials.ts +122 -0
  583. package/src/harnesses/claude/readiness.ts +69 -0
  584. package/src/harnesses/codex/CodexAdapter.ts +337 -0
  585. package/src/harnesses/codex/CodexAgentMapper.ts +26 -0
  586. package/src/harnesses/codex/CodexSessionLocator.ts +509 -0
  587. package/src/harnesses/codex/CodexSessionMapping.ts +89 -0
  588. package/src/harnesses/codex/CodexSessionParser.ts +462 -0
  589. package/src/harnesses/codex/credentials.ts +81 -0
  590. package/src/harnesses/codex/readiness.ts +72 -0
  591. package/src/harnesses/copilot/CopilotAdapter.ts +161 -0
  592. package/src/harnesses/copilot/CopilotAgentMapper.ts +27 -0
  593. package/src/harnesses/copilot/CopilotSessionLocator.ts +161 -0
  594. package/src/harnesses/copilot/CopilotSessionParser.ts +380 -0
  595. package/src/harnesses/copilot/readiness.ts +33 -0
  596. package/src/harnesses/gemini/GeminiAgentMapper.ts +27 -0
  597. package/src/harnesses/gemini/GeminiCliAdapter.ts +272 -0
  598. package/src/harnesses/gemini/GeminiSessionLocator.ts +394 -0
  599. package/src/harnesses/gemini/GeminiSessionParser.ts +395 -0
  600. package/src/harnesses/gemini/fileSignature.ts +10 -0
  601. package/src/harnesses/grok/GrokAgentMapper.ts +32 -0
  602. package/src/harnesses/grok/GrokCliAdapter.ts +126 -0
  603. package/src/harnesses/grok/GrokSessionLocator.ts +179 -0
  604. package/src/harnesses/grok/GrokSessionParser.ts +251 -0
  605. package/src/harnesses/index.ts +28 -0
  606. package/src/harnesses/kiro/KiroAdapter.ts +143 -0
  607. package/src/harnesses/kiro/KiroAgentMapper.ts +34 -0
  608. package/src/harnesses/kiro/KiroSessionLocator.ts +143 -0
  609. package/src/harnesses/kiro/KiroSessionParser.ts +376 -0
  610. package/src/harnesses/opencode/OpenCodeAdapter.ts +110 -0
  611. package/src/harnesses/opencode/OpenCodeAgentMapper.ts +51 -0
  612. package/src/harnesses/opencode/OpenCodeSessionLocator.ts +151 -0
  613. package/src/harnesses/opencode/OpenCodeSessionParser.ts +146 -0
  614. package/src/harnesses/opencode/readiness.ts +48 -0
  615. package/src/harnesses/pi/PiAdapter.ts +197 -0
  616. package/src/harnesses/pi/PiAgentMapper.ts +27 -0
  617. package/src/harnesses/pi/PiSessionLocator.ts +288 -0
  618. package/src/harnesses/pi/PiSessionParser.ts +488 -0
  619. package/src/harnesses/pi/PiSessionTracker.ts +87 -0
  620. package/src/harnesses/pi/credentials.ts +129 -0
  621. package/src/harnesses/pi/readiness.ts +104 -0
  622. package/src/harnesses/readiness/AgentReadiness.ts +87 -0
  623. package/src/harnesses/readiness/checks.ts +336 -0
  624. package/src/harnesses/readiness/types.ts +90 -0
  625. package/src/harnesses/runtimeProfiles.ts +103 -0
  626. package/src/harnesses/shared.ts +119 -0
  627. package/src/index.ts +20 -131
  628. package/src/runtime/ManagedAgentRuntime.ts +7 -22
  629. package/src/runtime/herdr/HerdrAgentDiscovery.ts +3 -19
  630. package/src/runtime/tmux/PidPolling.ts +1 -1
  631. package/src/runtime/tmux/TmuxAgentRuntime.ts +1 -1
  632. package/src/runtime/tmux/TmuxManager.ts +102 -0
  633. package/src/runtime/types.ts +1 -1
  634. package/src/terminal/TerminalFocusManager.ts +19 -292
  635. package/src/terminal/TtyWriter.ts +16 -336
  636. package/src/terminal/backends/index.ts +21 -0
  637. package/src/terminal/backends/iterm2.ts +126 -0
  638. package/src/terminal/backends/shared.ts +42 -0
  639. package/src/terminal/backends/terminal-app.ts +122 -0
  640. package/src/terminal/backends/tmux.ts +62 -0
  641. package/src/terminal/backends/wezterm.ts +65 -0
  642. package/src/terminal/types.ts +22 -0
  643. package/src/utils/IncrementalJsonlSummary.ts +306 -0
  644. package/src/utils/jsonlTail.ts +349 -0
  645. package/src/utils/matching.ts +3 -3
  646. package/src/utils/matchingConstants.ts +15 -0
  647. package/src/utils/process.ts +189 -45
  648. package/dist/__tests__/adapters/AntigravityCliAdapter.test.js +0 -381
  649. package/dist/__tests__/adapters/AntigravityCliAdapter.test.js.map +0 -1
  650. package/dist/__tests__/adapters/ClaudeCodeAdapter.test.js +0 -1853
  651. package/dist/__tests__/adapters/ClaudeCodeAdapter.test.js.map +0 -1
  652. package/dist/__tests__/adapters/CodexAdapter.test.js +0 -391
  653. package/dist/__tests__/adapters/CodexAdapter.test.js.map +0 -1
  654. package/dist/__tests__/adapters/KiroAdapter.test.js +0 -607
  655. package/dist/__tests__/adapters/KiroAdapter.test.js.map +0 -1
  656. package/dist/__tests__/durable/CodexCliProbe.test.js +0 -129
  657. package/dist/__tests__/durable/CodexCliProbe.test.js.map +0 -1
  658. package/dist/__tests__/durable/CodexDurableAgentRepository.test.js +0 -84
  659. package/dist/__tests__/durable/CodexDurableAgentRepository.test.js.map +0 -1
  660. package/dist/__tests__/durable/CodexPrintAgent.integration.test.js +0 -126
  661. package/dist/__tests__/durable/CodexPrintAgent.integration.test.js.map +0 -1
  662. package/dist/__tests__/durable/CodexPrintAgentService.test.js +0 -271
  663. package/dist/__tests__/durable/CodexPrintAgentService.test.js.map +0 -1
  664. package/dist/__tests__/durable/CodexPrintRunner.test.js +0 -393
  665. package/dist/__tests__/durable/CodexPrintRunner.test.js.map +0 -1
  666. package/dist/__tests__/print/ClaudeCliProbe.test.js +0 -49
  667. package/dist/__tests__/print/ClaudeCliProbe.test.js.map +0 -1
  668. package/dist/__tests__/print/ClaudePrintAgent.integration.test.js +0 -75
  669. package/dist/__tests__/print/ClaudePrintAgent.integration.test.js.map +0 -1
  670. package/dist/__tests__/print/ClaudePrintAgentService.test.js +0 -173
  671. package/dist/__tests__/print/ClaudePrintAgentService.test.js.map +0 -1
  672. package/dist/__tests__/print/ClaudePrintRunner.test.js +0 -181
  673. package/dist/__tests__/print/ClaudePrintRunner.test.js.map +0 -1
  674. package/dist/__tests__/providers/claude/ClaudeAgentMapper.test.js +0 -79
  675. package/dist/__tests__/providers/claude/ClaudeAgentMapper.test.js.map +0 -1
  676. package/dist/__tests__/providers/claude/ClaudeSessionLocator.test.js +0 -436
  677. package/dist/__tests__/providers/claude/ClaudeSessionLocator.test.js.map +0 -1
  678. package/dist/__tests__/providers/codex/CodexSessionLocator.test.js +0 -194
  679. package/dist/__tests__/providers/codex/CodexSessionLocator.test.js.map +0 -1
  680. package/dist/__tests__/providers/codex/CodexSessionMapping.test.js +0 -86
  681. package/dist/__tests__/providers/codex/CodexSessionMapping.test.js.map +0 -1
  682. package/dist/__tests__/providers/codex/CodexSessionParser.test.js +0 -254
  683. package/dist/__tests__/providers/codex/CodexSessionParser.test.js.map +0 -1
  684. package/dist/__tests__/providers/copilot/CopilotAdapter.test.js +0 -659
  685. package/dist/__tests__/providers/copilot/CopilotAdapter.test.js.map +0 -1
  686. package/dist/__tests__/providers/gemini/GeminiCliAdapter.test.js +0 -1434
  687. package/dist/__tests__/providers/gemini/GeminiCliAdapter.test.js.map +0 -1
  688. package/dist/__tests__/providers/grok/GrokAgentMapper.test.js +0 -56
  689. package/dist/__tests__/providers/grok/GrokAgentMapper.test.js.map +0 -1
  690. package/dist/__tests__/providers/grok/GrokCliAdapter.test.js +0 -421
  691. package/dist/__tests__/providers/grok/GrokCliAdapter.test.js.map +0 -1
  692. package/dist/__tests__/providers/grok/GrokSessionLocator.test.js +0 -133
  693. package/dist/__tests__/providers/grok/GrokSessionLocator.test.js.map +0 -1
  694. package/dist/__tests__/providers/opencode/OpenCodeAdapter.test.js +0 -213
  695. package/dist/__tests__/providers/opencode/OpenCodeAdapter.test.js.map +0 -1
  696. package/dist/__tests__/providers/opencode/OpenCodeAgentMapper.test.js +0 -89
  697. package/dist/__tests__/providers/opencode/OpenCodeAgentMapper.test.js.map +0 -1
  698. package/dist/__tests__/providers/opencode/OpenCodeSessionLocator.test.js +0 -94
  699. package/dist/__tests__/providers/opencode/OpenCodeSessionLocator.test.js.map +0 -1
  700. package/dist/__tests__/providers/opencode/OpenCodeSessionParser.test.js +0 -147
  701. package/dist/__tests__/providers/opencode/OpenCodeSessionParser.test.js.map +0 -1
  702. package/dist/__tests__/providers/pi/PiAdapter.test.js +0 -367
  703. package/dist/__tests__/providers/pi/PiAdapter.test.js.map +0 -1
  704. package/dist/__tests__/providers/pi/PiSessionParser.test.js +0 -246
  705. package/dist/__tests__/providers/pi/PiSessionParser.test.js.map +0 -1
  706. package/dist/__tests__/providers/pi/PiSessionTracker.test.js +0 -108
  707. package/dist/__tests__/providers/pi/PiSessionTracker.test.js.map +0 -1
  708. package/dist/__tests__/providers/pi/durable/PiCliProbe.test.js +0 -76
  709. package/dist/__tests__/providers/pi/durable/PiCliProbe.test.js.map +0 -1
  710. package/dist/__tests__/providers/pi/durable/PiDurableAgentRepository.test.js.map +0 -1
  711. package/dist/__tests__/providers/pi/durable/PiPrintAgentService.test.js +0 -202
  712. package/dist/__tests__/providers/pi/durable/PiPrintAgentService.test.js.map +0 -1
  713. package/dist/__tests__/providers/pi/durable/PiPrintProtocol.test.js +0 -119
  714. package/dist/__tests__/providers/pi/durable/PiPrintProtocol.test.js.map +0 -1
  715. package/dist/__tests__/providers/pi/durable/PiPrintRunner.test.js +0 -386
  716. package/dist/__tests__/providers/pi/durable/PiPrintRunner.test.js.map +0 -1
  717. package/dist/__tests__/providers/pi/durable/PiStreamParser.test.js +0 -34
  718. package/dist/__tests__/providers/pi/durable/PiStreamParser.test.js.map +0 -1
  719. package/dist/__tests__/readiness/AgentReadiness.test.js +0 -301
  720. package/dist/__tests__/readiness/AgentReadiness.test.js.map +0 -1
  721. package/dist/__tests__/utils/ClaudeSessionParser.test.js +0 -314
  722. package/dist/__tests__/utils/ClaudeSessionParser.test.js.map +0 -1
  723. package/dist/__tests__/utils/agents.test.js +0 -29
  724. package/dist/__tests__/utils/agents.test.js.map +0 -1
  725. package/dist/adapters/AntigravityCliAdapter.d.ts +0 -57
  726. package/dist/adapters/AntigravityCliAdapter.d.ts.map +0 -1
  727. package/dist/adapters/AntigravityCliAdapter.js +0 -273
  728. package/dist/adapters/AntigravityCliAdapter.js.map +0 -1
  729. package/dist/adapters/KiroAdapter.d.ts +0 -46
  730. package/dist/adapters/KiroAdapter.d.ts.map +0 -1
  731. package/dist/adapters/KiroAdapter.js +0 -344
  732. package/dist/adapters/KiroAdapter.js.map +0 -1
  733. package/dist/adapters/index.d.ts +0 -12
  734. package/dist/adapters/index.d.ts.map +0 -1
  735. package/dist/adapters/index.js +0 -12
  736. package/dist/adapters/index.js.map +0 -1
  737. package/dist/capacity/claude.d.ts +0 -17
  738. package/dist/capacity/claude.d.ts.map +0 -1
  739. package/dist/capacity/claude.js +0 -271
  740. package/dist/capacity/claude.js.map +0 -1
  741. package/dist/capacity/codex.d.ts +0 -36
  742. package/dist/capacity/codex.d.ts.map +0 -1
  743. package/dist/capacity/codex.js +0 -280
  744. package/dist/capacity/codex.js.map +0 -1
  745. package/dist/capacity/openai.d.ts +0 -48
  746. package/dist/capacity/openai.d.ts.map +0 -1
  747. package/dist/capacity/openai.js +0 -312
  748. package/dist/capacity/openai.js.map +0 -1
  749. package/dist/capacity/wham.d.ts +0 -16
  750. package/dist/capacity/wham.d.ts.map +0 -1
  751. package/dist/capacity/wham.js +0 -66
  752. package/dist/capacity/wham.js.map +0 -1
  753. package/dist/capacity/zai.d.ts +0 -14
  754. package/dist/capacity/zai.d.ts.map +0 -1
  755. package/dist/capacity/zai.js +0 -203
  756. package/dist/capacity/zai.js.map +0 -1
  757. package/dist/providers/claude/ClaudeAgentMapper.d.ts.map +0 -1
  758. package/dist/providers/claude/ClaudeAgentMapper.js +0 -42
  759. package/dist/providers/claude/ClaudeAgentMapper.js.map +0 -1
  760. package/dist/providers/claude/ClaudeCodeAdapter.d.ts +0 -31
  761. package/dist/providers/claude/ClaudeCodeAdapter.d.ts.map +0 -1
  762. package/dist/providers/claude/ClaudeCodeAdapter.js +0 -132
  763. package/dist/providers/claude/ClaudeCodeAdapter.js.map +0 -1
  764. package/dist/providers/claude/ClaudeSessionLocator.d.ts.map +0 -1
  765. package/dist/providers/claude/ClaudeSessionLocator.js +0 -260
  766. package/dist/providers/claude/ClaudeSessionLocator.js.map +0 -1
  767. package/dist/providers/claude/ClaudeSessionParser.d.ts +0 -114
  768. package/dist/providers/claude/ClaudeSessionParser.d.ts.map +0 -1
  769. package/dist/providers/claude/ClaudeSessionParser.js +0 -309
  770. package/dist/providers/claude/ClaudeSessionParser.js.map +0 -1
  771. package/dist/providers/claude/durable/ClaudeCliProbe.d.ts.map +0 -1
  772. package/dist/providers/claude/durable/ClaudeCliProbe.js.map +0 -1
  773. package/dist/providers/claude/durable/ClaudePrintAgentService.d.ts.map +0 -1
  774. package/dist/providers/claude/durable/ClaudePrintAgentService.js.map +0 -1
  775. package/dist/providers/claude/durable/ClaudePrintRunner.d.ts.map +0 -1
  776. package/dist/providers/claude/durable/ClaudePrintRunner.js.map +0 -1
  777. package/dist/providers/claude/durable/ClaudeStreamParser.d.ts.map +0 -1
  778. package/dist/providers/claude/durable/ClaudeStreamParser.js.map +0 -1
  779. package/dist/providers/codex/CodexAdapter.d.ts +0 -28
  780. package/dist/providers/codex/CodexAdapter.d.ts.map +0 -1
  781. package/dist/providers/codex/CodexAdapter.js +0 -170
  782. package/dist/providers/codex/CodexAdapter.js.map +0 -1
  783. package/dist/providers/codex/CodexAgentMapper.d.ts.map +0 -1
  784. package/dist/providers/codex/CodexAgentMapper.js +0 -35
  785. package/dist/providers/codex/CodexAgentMapper.js.map +0 -1
  786. package/dist/providers/codex/CodexSessionLocator.d.ts +0 -44
  787. package/dist/providers/codex/CodexSessionLocator.d.ts.map +0 -1
  788. package/dist/providers/codex/CodexSessionLocator.js +0 -207
  789. package/dist/providers/codex/CodexSessionLocator.js.map +0 -1
  790. package/dist/providers/codex/CodexSessionMapping.d.ts.map +0 -1
  791. package/dist/providers/codex/CodexSessionMapping.js +0 -68
  792. package/dist/providers/codex/CodexSessionMapping.js.map +0 -1
  793. package/dist/providers/codex/CodexSessionParser.d.ts +0 -58
  794. package/dist/providers/codex/CodexSessionParser.d.ts.map +0 -1
  795. package/dist/providers/codex/CodexSessionParser.js +0 -262
  796. package/dist/providers/codex/CodexSessionParser.js.map +0 -1
  797. package/dist/providers/codex/durable/CodexCliProbe.d.ts.map +0 -1
  798. package/dist/providers/codex/durable/CodexCliProbe.js.map +0 -1
  799. package/dist/providers/codex/durable/CodexPrintAgentService.d.ts.map +0 -1
  800. package/dist/providers/codex/durable/CodexPrintAgentService.js.map +0 -1
  801. package/dist/providers/codex/durable/CodexPrintRunner.d.ts.map +0 -1
  802. package/dist/providers/codex/durable/CodexPrintRunner.js.map +0 -1
  803. package/dist/providers/codex/durable/CodexStreamParser.d.ts.map +0 -1
  804. package/dist/providers/codex/durable/CodexStreamParser.js.map +0 -1
  805. package/dist/providers/copilot/CopilotAdapter.d.ts +0 -35
  806. package/dist/providers/copilot/CopilotAdapter.d.ts.map +0 -1
  807. package/dist/providers/copilot/CopilotAdapter.js +0 -123
  808. package/dist/providers/copilot/CopilotAdapter.js.map +0 -1
  809. package/dist/providers/copilot/CopilotAgentMapper.d.ts.map +0 -1
  810. package/dist/providers/copilot/CopilotAgentMapper.js +0 -37
  811. package/dist/providers/copilot/CopilotAgentMapper.js.map +0 -1
  812. package/dist/providers/copilot/CopilotSessionLocator.d.ts +0 -20
  813. package/dist/providers/copilot/CopilotSessionLocator.d.ts.map +0 -1
  814. package/dist/providers/copilot/CopilotSessionLocator.js +0 -49
  815. package/dist/providers/copilot/CopilotSessionLocator.js.map +0 -1
  816. package/dist/providers/copilot/CopilotSessionParser.d.ts +0 -30
  817. package/dist/providers/copilot/CopilotSessionParser.d.ts.map +0 -1
  818. package/dist/providers/copilot/CopilotSessionParser.js +0 -181
  819. package/dist/providers/copilot/CopilotSessionParser.js.map +0 -1
  820. package/dist/providers/gemini/GeminiAgentMapper.d.ts.map +0 -1
  821. package/dist/providers/gemini/GeminiAgentMapper.js +0 -37
  822. package/dist/providers/gemini/GeminiAgentMapper.js.map +0 -1
  823. package/dist/providers/gemini/GeminiCliAdapter.d.ts +0 -53
  824. package/dist/providers/gemini/GeminiCliAdapter.d.ts.map +0 -1
  825. package/dist/providers/gemini/GeminiCliAdapter.js +0 -197
  826. package/dist/providers/gemini/GeminiCliAdapter.js.map +0 -1
  827. package/dist/providers/gemini/GeminiSessionLocator.d.ts +0 -30
  828. package/dist/providers/gemini/GeminiSessionLocator.d.ts.map +0 -1
  829. package/dist/providers/gemini/GeminiSessionLocator.js +0 -142
  830. package/dist/providers/gemini/GeminiSessionLocator.js.map +0 -1
  831. package/dist/providers/gemini/GeminiSessionParser.d.ts +0 -94
  832. package/dist/providers/gemini/GeminiSessionParser.d.ts.map +0 -1
  833. package/dist/providers/gemini/GeminiSessionParser.js +0 -166
  834. package/dist/providers/gemini/GeminiSessionParser.js.map +0 -1
  835. package/dist/providers/grok/GrokAgentMapper.d.ts.map +0 -1
  836. package/dist/providers/grok/GrokAgentMapper.js +0 -36
  837. package/dist/providers/grok/GrokAgentMapper.js.map +0 -1
  838. package/dist/providers/grok/GrokCliAdapter.d.ts +0 -36
  839. package/dist/providers/grok/GrokCliAdapter.d.ts.map +0 -1
  840. package/dist/providers/grok/GrokCliAdapter.js +0 -98
  841. package/dist/providers/grok/GrokCliAdapter.js.map +0 -1
  842. package/dist/providers/grok/GrokSessionLocator.d.ts.map +0 -1
  843. package/dist/providers/grok/GrokSessionLocator.js +0 -140
  844. package/dist/providers/grok/GrokSessionLocator.js.map +0 -1
  845. package/dist/providers/grok/GrokSessionParser.d.ts +0 -54
  846. package/dist/providers/grok/GrokSessionParser.d.ts.map +0 -1
  847. package/dist/providers/grok/GrokSessionParser.js +0 -122
  848. package/dist/providers/grok/GrokSessionParser.js.map +0 -1
  849. package/dist/providers/opencode/OpenCodeAdapter.d.ts +0 -31
  850. package/dist/providers/opencode/OpenCodeAdapter.d.ts.map +0 -1
  851. package/dist/providers/opencode/OpenCodeAdapter.js +0 -89
  852. package/dist/providers/opencode/OpenCodeAdapter.js.map +0 -1
  853. package/dist/providers/opencode/OpenCodeAgentMapper.d.ts.map +0 -1
  854. package/dist/providers/opencode/OpenCodeAgentMapper.js +0 -50
  855. package/dist/providers/opencode/OpenCodeAgentMapper.js.map +0 -1
  856. package/dist/providers/opencode/OpenCodeSessionLocator.d.ts.map +0 -1
  857. package/dist/providers/opencode/OpenCodeSessionLocator.js +0 -118
  858. package/dist/providers/opencode/OpenCodeSessionLocator.js.map +0 -1
  859. package/dist/providers/opencode/OpenCodeSessionParser.d.ts +0 -18
  860. package/dist/providers/opencode/OpenCodeSessionParser.d.ts.map +0 -1
  861. package/dist/providers/opencode/OpenCodeSessionParser.js +0 -104
  862. package/dist/providers/opencode/OpenCodeSessionParser.js.map +0 -1
  863. package/dist/providers/pi/PiAdapter.d.ts +0 -29
  864. package/dist/providers/pi/PiAdapter.d.ts.map +0 -1
  865. package/dist/providers/pi/PiAdapter.js +0 -163
  866. package/dist/providers/pi/PiAdapter.js.map +0 -1
  867. package/dist/providers/pi/PiAgentMapper.d.ts.map +0 -1
  868. package/dist/providers/pi/PiAgentMapper.js +0 -37
  869. package/dist/providers/pi/PiAgentMapper.js.map +0 -1
  870. package/dist/providers/pi/PiSessionLocator.d.ts +0 -24
  871. package/dist/providers/pi/PiSessionLocator.d.ts.map +0 -1
  872. package/dist/providers/pi/PiSessionLocator.js +0 -86
  873. package/dist/providers/pi/PiSessionLocator.js.map +0 -1
  874. package/dist/providers/pi/PiSessionParser.d.ts +0 -36
  875. package/dist/providers/pi/PiSessionParser.d.ts.map +0 -1
  876. package/dist/providers/pi/PiSessionParser.js +0 -191
  877. package/dist/providers/pi/PiSessionParser.js.map +0 -1
  878. package/dist/providers/pi/PiSessionTracker.d.ts.map +0 -1
  879. package/dist/providers/pi/PiSessionTracker.js +0 -69
  880. package/dist/providers/pi/PiSessionTracker.js.map +0 -1
  881. package/dist/providers/pi/durable/PiCliProbe.d.ts.map +0 -1
  882. package/dist/providers/pi/durable/PiCliProbe.js.map +0 -1
  883. package/dist/providers/pi/durable/PiPrintAgentService.d.ts.map +0 -1
  884. package/dist/providers/pi/durable/PiPrintAgentService.js.map +0 -1
  885. package/dist/providers/pi/durable/PiPrintProtocol.d.ts.map +0 -1
  886. package/dist/providers/pi/durable/PiPrintProtocol.js.map +0 -1
  887. package/dist/providers/pi/durable/PiPrintRunner.d.ts.map +0 -1
  888. package/dist/providers/pi/durable/PiPrintRunner.js.map +0 -1
  889. package/dist/providers/pi/durable/PiStreamParser.d.ts.map +0 -1
  890. package/dist/providers/pi/durable/PiStreamParser.js.map +0 -1
  891. package/dist/readiness/AgentReadiness.d.ts +0 -67
  892. package/dist/readiness/AgentReadiness.d.ts.map +0 -1
  893. package/dist/readiness/AgentReadiness.js +0 -614
  894. package/dist/readiness/AgentReadiness.js.map +0 -1
  895. package/dist/terminal/TmuxManager.d.ts +0 -28
  896. package/dist/terminal/TmuxManager.d.ts.map +0 -1
  897. package/dist/terminal/TmuxManager.js +0 -135
  898. package/dist/terminal/TmuxManager.js.map +0 -1
  899. package/dist/terminal/index.d.ts +0 -5
  900. package/dist/terminal/index.d.ts.map +0 -1
  901. package/dist/terminal/index.js +0 -5
  902. package/dist/terminal/index.js.map +0 -1
  903. package/dist/utils/agents.d.ts +0 -15
  904. package/dist/utils/agents.d.ts.map +0 -1
  905. package/dist/utils/agents.js +0 -82
  906. package/dist/utils/agents.js.map +0 -1
  907. package/dist/utils/index.d.ts +0 -7
  908. package/dist/utils/index.d.ts.map +0 -1
  909. package/dist/utils/index.js +0 -6
  910. package/dist/utils/index.js.map +0 -1
  911. package/src/__tests__/adapters/AntigravityCliAdapter.test.ts +0 -324
  912. package/src/__tests__/adapters/ClaudeCodeAdapter.test.ts +0 -1763
  913. package/src/__tests__/adapters/CodexAdapter.test.ts +0 -387
  914. package/src/__tests__/adapters/KiroAdapter.test.ts +0 -534
  915. package/src/__tests__/durable/CodexCliProbe.test.ts +0 -85
  916. package/src/__tests__/durable/CodexDurableAgentRepository.test.ts +0 -65
  917. package/src/__tests__/durable/CodexPrintAgent.integration.test.ts +0 -104
  918. package/src/__tests__/durable/CodexPrintAgentService.test.ts +0 -217
  919. package/src/__tests__/durable/CodexPrintRunner.test.ts +0 -309
  920. package/src/__tests__/fixtures/fake-claude.cjs +0 -31
  921. package/src/__tests__/fixtures/fake-codex.cjs +0 -56
  922. package/src/__tests__/print/ClaudeCliProbe.test.ts +0 -34
  923. package/src/__tests__/print/ClaudePrintAgent.integration.test.ts +0 -61
  924. package/src/__tests__/print/ClaudePrintAgentService.test.ts +0 -129
  925. package/src/__tests__/print/ClaudePrintRunner.test.ts +0 -152
  926. package/src/__tests__/providers/claude/ClaudeAgentMapper.test.ts +0 -84
  927. package/src/__tests__/providers/claude/ClaudeSessionLocator.test.ts +0 -434
  928. package/src/__tests__/providers/codex/CodexSessionLocator.test.ts +0 -182
  929. package/src/__tests__/providers/codex/CodexSessionMapping.test.ts +0 -63
  930. package/src/__tests__/providers/codex/CodexSessionParser.test.ts +0 -192
  931. package/src/__tests__/providers/copilot/CopilotAdapter.test.ts +0 -614
  932. package/src/__tests__/providers/gemini/GeminiCliAdapter.test.ts +0 -1320
  933. package/src/__tests__/providers/grok/GrokAgentMapper.test.ts +0 -57
  934. package/src/__tests__/providers/grok/GrokCliAdapter.test.ts +0 -376
  935. package/src/__tests__/providers/grok/GrokSessionLocator.test.ts +0 -106
  936. package/src/__tests__/providers/opencode/OpenCodeAdapter.test.ts +0 -215
  937. package/src/__tests__/providers/opencode/OpenCodeAgentMapper.test.ts +0 -83
  938. package/src/__tests__/providers/opencode/OpenCodeSessionLocator.test.ts +0 -84
  939. package/src/__tests__/providers/opencode/OpenCodeSessionParser.test.ts +0 -148
  940. package/src/__tests__/providers/pi/PiAdapter.test.ts +0 -325
  941. package/src/__tests__/providers/pi/PiSessionParser.test.ts +0 -190
  942. package/src/__tests__/providers/pi/PiSessionTracker.test.ts +0 -79
  943. package/src/__tests__/providers/pi/durable/PiCliProbe.test.ts +0 -54
  944. package/src/__tests__/providers/pi/durable/PiPrintAgentService.test.ts +0 -141
  945. package/src/__tests__/providers/pi/durable/PiPrintProtocol.test.ts +0 -71
  946. package/src/__tests__/providers/pi/durable/PiPrintRunner.test.ts +0 -253
  947. package/src/__tests__/providers/pi/durable/PiStreamParser.test.ts +0 -26
  948. package/src/__tests__/readiness/AgentReadiness.test.ts +0 -242
  949. package/src/__tests__/utils/ClaudeSessionParser.test.ts +0 -300
  950. package/src/__tests__/utils/agents.test.ts +0 -31
  951. package/src/adapters/AntigravityCliAdapter.ts +0 -356
  952. package/src/adapters/KiroAdapter.ts +0 -456
  953. package/src/adapters/index.ts +0 -17
  954. package/src/capacity/claude.ts +0 -313
  955. package/src/capacity/codex.ts +0 -332
  956. package/src/capacity/openai.ts +0 -361
  957. package/src/capacity/wham.ts +0 -84
  958. package/src/capacity/zai.ts +0 -237
  959. package/src/providers/claude/ClaudeAgentMapper.ts +0 -63
  960. package/src/providers/claude/ClaudeCodeAdapter.ts +0 -173
  961. package/src/providers/claude/ClaudeSessionLocator.ts +0 -358
  962. package/src/providers/claude/ClaudeSessionParser.ts +0 -432
  963. package/src/providers/codex/CodexAdapter.ts +0 -213
  964. package/src/providers/codex/CodexAgentMapper.ts +0 -35
  965. package/src/providers/codex/CodexSessionLocator.ts +0 -279
  966. package/src/providers/codex/CodexSessionMapping.ts +0 -89
  967. package/src/providers/codex/CodexSessionParser.ts +0 -385
  968. package/src/providers/copilot/CopilotAdapter.ts +0 -161
  969. package/src/providers/copilot/CopilotAgentMapper.ts +0 -36
  970. package/src/providers/copilot/CopilotSessionLocator.ts +0 -63
  971. package/src/providers/copilot/CopilotSessionParser.ts +0 -289
  972. package/src/providers/gemini/GeminiAgentMapper.ts +0 -36
  973. package/src/providers/gemini/GeminiCliAdapter.ts +0 -274
  974. package/src/providers/gemini/GeminiSessionLocator.ts +0 -183
  975. package/src/providers/gemini/GeminiSessionParser.ts +0 -271
  976. package/src/providers/grok/GrokAgentMapper.ts +0 -41
  977. package/src/providers/grok/GrokCliAdapter.ts +0 -125
  978. package/src/providers/grok/GrokSessionLocator.ts +0 -179
  979. package/src/providers/grok/GrokSessionParser.ts +0 -166
  980. package/src/providers/opencode/OpenCodeAdapter.ts +0 -116
  981. package/src/providers/opencode/OpenCodeAgentMapper.ts +0 -61
  982. package/src/providers/opencode/OpenCodeSessionLocator.ts +0 -151
  983. package/src/providers/opencode/OpenCodeSessionParser.ts +0 -145
  984. package/src/providers/pi/PiAdapter.ts +0 -195
  985. package/src/providers/pi/PiAgentMapper.ts +0 -36
  986. package/src/providers/pi/PiSessionLocator.ts +0 -110
  987. package/src/providers/pi/PiSessionParser.ts +0 -284
  988. package/src/providers/pi/PiSessionTracker.ts +0 -87
  989. package/src/readiness/AgentReadiness.ts +0 -730
  990. package/src/terminal/TmuxManager.ts +0 -123
  991. package/src/terminal/index.ts +0 -4
  992. package/src/utils/agents.ts +0 -75
  993. package/src/utils/index.ts +0 -12
  994. /package/dist/__tests__/{providers → harnesses}/pi/durable/PiDurableAgentRepository.test.js +0 -0
  995. /package/dist/{providers → harnesses}/claude/ClaudeAgentMapper.d.ts +0 -0
  996. /package/dist/{providers → harnesses}/claude/ClaudeSessionLocator.d.ts +0 -0
  997. /package/dist/{providers → harnesses}/claude/durable/ClaudeCliProbe.d.ts +0 -0
  998. /package/dist/{providers → harnesses}/claude/durable/ClaudeCliProbe.js +0 -0
  999. /package/dist/{providers → harnesses}/claude/durable/ClaudePrintAgentService.d.ts +0 -0
  1000. /package/dist/{providers → harnesses}/claude/durable/ClaudePrintAgentService.js +0 -0
  1001. /package/dist/{providers → harnesses}/claude/durable/ClaudePrintRunner.d.ts +0 -0
  1002. /package/dist/{providers → harnesses}/claude/durable/ClaudePrintRunner.js +0 -0
  1003. /package/dist/{providers → harnesses}/claude/durable/ClaudeStreamParser.d.ts +0 -0
  1004. /package/dist/{providers → harnesses}/claude/durable/ClaudeStreamParser.js +0 -0
  1005. /package/dist/{providers → harnesses}/codex/CodexAgentMapper.d.ts +0 -0
  1006. /package/dist/{providers → harnesses}/codex/CodexSessionMapping.d.ts +0 -0
  1007. /package/dist/{providers → harnesses}/codex/durable/CodexCliProbe.d.ts +0 -0
  1008. /package/dist/{providers → harnesses}/codex/durable/CodexCliProbe.js +0 -0
  1009. /package/dist/{providers → harnesses}/codex/durable/CodexPrintAgentService.d.ts +0 -0
  1010. /package/dist/{providers → harnesses}/codex/durable/CodexPrintAgentService.js +0 -0
  1011. /package/dist/{providers → harnesses}/codex/durable/CodexPrintRunner.d.ts +0 -0
  1012. /package/dist/{providers → harnesses}/codex/durable/CodexPrintRunner.js +0 -0
  1013. /package/dist/{providers → harnesses}/codex/durable/CodexStreamParser.d.ts +0 -0
  1014. /package/dist/{providers → harnesses}/codex/durable/CodexStreamParser.js +0 -0
  1015. /package/dist/{providers → harnesses}/copilot/CopilotAgentMapper.d.ts +0 -0
  1016. /package/dist/{providers → harnesses}/gemini/GeminiAgentMapper.d.ts +0 -0
  1017. /package/dist/{providers → harnesses}/grok/GrokAgentMapper.d.ts +0 -0
  1018. /package/dist/{providers → harnesses}/grok/GrokSessionLocator.d.ts +0 -0
  1019. /package/dist/{providers → harnesses}/opencode/OpenCodeAgentMapper.d.ts +0 -0
  1020. /package/dist/{providers → harnesses}/opencode/OpenCodeSessionLocator.d.ts +0 -0
  1021. /package/dist/{providers → harnesses}/pi/PiAgentMapper.d.ts +0 -0
  1022. /package/dist/{providers → harnesses}/pi/PiSessionTracker.d.ts +0 -0
  1023. /package/dist/{providers → harnesses}/pi/durable/PiCliProbe.d.ts +0 -0
  1024. /package/dist/{providers → harnesses}/pi/durable/PiCliProbe.js +0 -0
  1025. /package/dist/{providers → harnesses}/pi/durable/PiPrintAgentService.d.ts +0 -0
  1026. /package/dist/{providers → harnesses}/pi/durable/PiPrintAgentService.js +0 -0
  1027. /package/dist/{providers → harnesses}/pi/durable/PiPrintProtocol.d.ts +0 -0
  1028. /package/dist/{providers → harnesses}/pi/durable/PiPrintProtocol.js +0 -0
  1029. /package/dist/{providers → harnesses}/pi/durable/PiPrintRunner.d.ts +0 -0
  1030. /package/dist/{providers → harnesses}/pi/durable/PiPrintRunner.js +0 -0
  1031. /package/dist/{providers → harnesses}/pi/durable/PiStreamParser.d.ts +0 -0
  1032. /package/dist/{providers → harnesses}/pi/durable/PiStreamParser.js +0 -0
  1033. /package/src/__tests__/{providers → harnesses}/pi/durable/PiDurableAgentRepository.test.ts +0 -0
  1034. /package/src/{providers → harnesses}/claude/durable/ClaudeCliProbe.ts +0 -0
  1035. /package/src/{providers → harnesses}/claude/durable/ClaudePrintAgentService.ts +0 -0
  1036. /package/src/{providers → harnesses}/claude/durable/ClaudePrintRunner.ts +0 -0
  1037. /package/src/{providers → harnesses}/claude/durable/ClaudeStreamParser.ts +0 -0
  1038. /package/src/{providers → harnesses}/codex/durable/CodexCliProbe.ts +0 -0
  1039. /package/src/{providers → harnesses}/codex/durable/CodexPrintAgentService.ts +0 -0
  1040. /package/src/{providers → harnesses}/codex/durable/CodexPrintRunner.ts +0 -0
  1041. /package/src/{providers → harnesses}/codex/durable/CodexStreamParser.ts +0 -0
  1042. /package/src/{providers → harnesses}/pi/durable/PiCliProbe.ts +0 -0
  1043. /package/src/{providers → harnesses}/pi/durable/PiPrintAgentService.ts +0 -0
  1044. /package/src/{providers → harnesses}/pi/durable/PiPrintProtocol.ts +0 -0
  1045. /package/src/{providers → harnesses}/pi/durable/PiPrintRunner.ts +0 -0
  1046. /package/src/{providers → harnesses}/pi/durable/PiStreamParser.ts +0 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Helpers shared by the harness adapters. Each harness keeps its own session
3
+ * matching and parsing; these cover the parts that are the same everywhere.
4
+ */ import { AgentStatus } from "../adapters/AgentAdapter.js";
5
+ import { generateAgentName } from "../utils/matching.js";
6
+ import { captureProcessSnapshot, executableBasename, filterByProcessNames } from "../utils/process.js";
7
+ /** A session untouched for longer than this is IDLE. */ export const IDLE_THRESHOLD_MINUTES = 5;
8
+ /** Maximum length of a session summary derived from a user prompt. */ export const SUMMARY_MAX_LENGTH = 120;
9
+ /**
10
+ * The adapter's processes from the manager's shared snapshot, or from its own
11
+ * capture when called standalone. `relevant` also keeps helper processes
12
+ * (e.g. a harness's child runtime) that detection may need to walk through.
13
+ */ export async function findHarnessProcesses(adapter, context) {
14
+ const snapshot = context?.processes ?? await captureProcessSnapshot(adapter.processNames, {
15
+ isCandidate: (process1)=>adapter.canHandle(process1)
16
+ });
17
+ const relevant = filterByProcessNames(snapshot, adapter.processNames);
18
+ const byPid = new Map();
19
+ for (const process1 of relevant){
20
+ if (!byPid.has(process1.pid) && adapter.canHandle(process1)) byPid.set(process1.pid, process1);
21
+ }
22
+ return {
23
+ relevant,
24
+ processes: Array.from(byPid.values())
25
+ };
26
+ }
27
+ /** Whether argv[0]'s basename is `name` or `name.exe`. */ export function matchesExecutable(command, name) {
28
+ const base = executableBasename(command);
29
+ return base === name || base === `${name}.exe`;
30
+ }
31
+ /**
32
+ * The placeholder agent for a running process with no matched session:
33
+ * RUNNING, with a `pid-<pid>` session id.
34
+ */ export function processOnlyAgent(type, processInfo, { summary, cwd = processInfo.cwd }) {
35
+ return {
36
+ name: generateAgentName(cwd, processInfo.pid),
37
+ type,
38
+ status: AgentStatus.RUNNING,
39
+ summary,
40
+ pid: processInfo.pid,
41
+ projectPath: cwd,
42
+ sessionId: `pid-${processInfo.pid}`,
43
+ lastActive: new Date()
44
+ };
45
+ }
46
+ export function isIdle(lastActive, now = Date.now()) {
47
+ return (now - lastActive.getTime()) / 60000 > IDLE_THRESHOLD_MINUTES;
48
+ }
49
+ export function homeDir() {
50
+ return process.env.HOME || process.env.USERPROFILE || "";
51
+ }
52
+ /** ISO strings, or epoch numbers in seconds or milliseconds; null when invalid. */ export function parseTimestamp(value) {
53
+ if (typeof value === "number") {
54
+ const date = new Date(value < 1_000_000_000_000 ? value * 1000 : value);
55
+ return Number.isNaN(date.getTime()) ? null : date;
56
+ }
57
+ if (typeof value !== "string" || !value) return null;
58
+ const date = new Date(value);
59
+ return Number.isNaN(date.getTime()) ? null : date;
60
+ }
61
+ export function truncate(value, maxLength) {
62
+ if (value.length <= maxLength) return value;
63
+ return `${value.slice(0, maxLength - 3)}...`;
64
+ }
65
+ /** Flatten a string, or an array of `{ text }` blocks, to plain text. */ export function flattenTextBlocks(content) {
66
+ if (typeof content === "string") return content;
67
+ if (!Array.isArray(content)) return "";
68
+ return content.map((block)=>block && typeof block === "object" && typeof block.text === "string" ? block.text : "").join("");
69
+ }
70
+
71
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/harnesses/shared.ts"],"sourcesContent":["/**\n * Helpers shared by the harness adapters. Each harness keeps its own session\n * matching and parsing; these cover the parts that are the same everywhere.\n */\n\nimport type {\n AgentAdapter,\n AgentDetectionContext,\n AgentInfo,\n AgentType,\n ProcessInfo,\n} from \"../adapters/AgentAdapter.js\";\nimport { AgentStatus } from \"../adapters/AgentAdapter.js\";\nimport { generateAgentName } from \"../utils/matching.js\";\nimport {\n captureProcessSnapshot,\n executableBasename,\n filterByProcessNames,\n} from \"../utils/process.js\";\n\n/** A session untouched for longer than this is IDLE. */\nexport const IDLE_THRESHOLD_MINUTES = 5;\n\n/** Maximum length of a session summary derived from a user prompt. */\nexport const SUMMARY_MAX_LENGTH = 120;\n\nexport interface HarnessProcesses {\n /** Every process whose executable is one of the adapter's `processNames`. */\n relevant: ProcessInfo[];\n /** The subset `canHandle` accepts (deduplicated by PID): the agents. */\n processes: ProcessInfo[];\n}\n\n/**\n * The adapter's processes from the manager's shared snapshot, or from its own\n * capture when called standalone. `relevant` also keeps helper processes\n * (e.g. a harness's child runtime) that detection may need to walk through.\n */\nexport async function findHarnessProcesses(\n adapter: Pick<AgentAdapter, \"canHandle\"> & { readonly processNames: readonly string[] },\n context?: AgentDetectionContext,\n): Promise<HarnessProcesses> {\n const snapshot =\n context?.processes ??\n (await captureProcessSnapshot(adapter.processNames, {\n isCandidate: (process) => adapter.canHandle(process),\n }));\n const relevant = filterByProcessNames(snapshot, adapter.processNames);\n\n const byPid = new Map<number, ProcessInfo>();\n for (const process of relevant) {\n if (!byPid.has(process.pid) && adapter.canHandle(process)) byPid.set(process.pid, process);\n }\n return { relevant, processes: Array.from(byPid.values()) };\n}\n\n/** Whether argv[0]'s basename is `name` or `name.exe`. */\nexport function matchesExecutable(command: string, name: string): boolean {\n const base = executableBasename(command);\n return base === name || base === `${name}.exe`;\n}\n\n/**\n * The placeholder agent for a running process with no matched session:\n * RUNNING, with a `pid-<pid>` session id.\n */\nexport function processOnlyAgent(\n type: AgentType,\n processInfo: ProcessInfo,\n { summary, cwd = processInfo.cwd }: { summary: string; cwd?: string },\n): AgentInfo {\n return {\n name: generateAgentName(cwd, processInfo.pid),\n type,\n status: AgentStatus.RUNNING,\n summary,\n pid: processInfo.pid,\n projectPath: cwd,\n sessionId: `pid-${processInfo.pid}`,\n lastActive: new Date(),\n };\n}\n\nexport function isIdle(lastActive: Date, now = Date.now()): boolean {\n return (now - lastActive.getTime()) / 60000 > IDLE_THRESHOLD_MINUTES;\n}\n\nexport function homeDir(): string {\n return process.env.HOME || process.env.USERPROFILE || \"\";\n}\n\n/** ISO strings, or epoch numbers in seconds or milliseconds; null when invalid. */\nexport function parseTimestamp(value: unknown): Date | null {\n if (typeof value === \"number\") {\n const date = new Date(value < 1_000_000_000_000 ? value * 1000 : value);\n return Number.isNaN(date.getTime()) ? null : date;\n }\n if (typeof value !== \"string\" || !value) return null;\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\nexport function truncate(value: string, maxLength: number): string {\n if (value.length <= maxLength) return value;\n return `${value.slice(0, maxLength - 3)}...`;\n}\n\n/** Flatten a string, or an array of `{ text }` blocks, to plain text. */\nexport function flattenTextBlocks(content: unknown): string {\n if (typeof content === \"string\") return content;\n if (!Array.isArray(content)) return \"\";\n return content\n .map((block) =>\n block && typeof block === \"object\" && typeof (block as { text?: unknown }).text === \"string\"\n ? (block as { text: string }).text\n : \"\",\n )\n .join(\"\");\n}\n"],"names":["AgentStatus","generateAgentName","captureProcessSnapshot","executableBasename","filterByProcessNames","IDLE_THRESHOLD_MINUTES","SUMMARY_MAX_LENGTH","findHarnessProcesses","adapter","context","snapshot","processes","processNames","isCandidate","process","canHandle","relevant","byPid","Map","has","pid","set","Array","from","values","matchesExecutable","command","name","base","processOnlyAgent","type","processInfo","summary","cwd","status","RUNNING","projectPath","sessionId","lastActive","Date","isIdle","now","getTime","homeDir","env","HOME","USERPROFILE","parseTimestamp","value","date","Number","isNaN","truncate","maxLength","length","slice","flattenTextBlocks","content","isArray","map","block","text","join"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,51 +1,26 @@
1
- export { AgentManager, AgentNotRunningError } from "./AgentManager.js";
2
- export { getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport, } from "./capacity/index.js";
3
- export type { ClaudeCapacityOptions, CapacityProbeOptions, CapacityReport, CapacityWindow, OpenAiCapacityOptions, ZaiCapacityOptions, } from "./capacity/index.js";
4
- export { getAgentReadinessReport, getAgentReadinessReports, worstReadinessStatus, } from "./readiness/AgentReadiness.js";
5
- export type { AgentReadinessOptions, AgentReadinessReport, AuthReadinessCheck, BuiltInSkillsReadinessCheck, DirectoryReadinessCheck, ExecutableReadinessCheck, IntegrationReadinessCheck, ReadinessAgentType, ReadinessAuthState, ReadinessCheck, ReadinessStatus, } from "./readiness/AgentReadiness.js";
6
- export { ClaudeCodeAdapter } from "./providers/claude/ClaudeCodeAdapter.js";
7
- export { CodexAdapter } from "./providers/codex/CodexAdapter.js";
8
- export { CopilotAdapter } from "./providers/copilot/CopilotAdapter.js";
9
- export { GeminiCliAdapter } from "./providers/gemini/GeminiCliAdapter.js";
10
- export { GrokCliAdapter } from "./providers/grok/GrokCliAdapter.js";
11
- export { AntigravityCliAdapter } from "./adapters/AntigravityCliAdapter.js";
12
- export { KiroAdapter } from "./adapters/KiroAdapter.js";
13
- export { OpenCodeAdapter } from "./providers/opencode/OpenCodeAdapter.js";
14
- export { PiAdapter } from "./providers/pi/PiAdapter.js";
15
- export { AgentStatus } from "./adapters/AgentAdapter.js";
16
- export type { AgentAdapter, AgentType, AgentInfo, ProcessInfo, ConversationMessage, SessionSummary, ListSessionsOptions, AgentDetectionContext, } from "./adapters/AgentAdapter.js";
17
- export { TerminalFocusManager, TerminalType } from "./terminal/TerminalFocusManager.js";
18
- export type { TerminalLocation } from "./terminal/TerminalFocusManager.js";
1
+ export { AgentManager } from "./AgentManager.js";
2
+ export { getAnthropicCapacityReport, getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport, } from "./capacity/index.js";
3
+ export type { CapacityReport, CapacityWindow } from "./capacity/index.js";
4
+ export { getAgentReadinessReports, worstReadinessStatus, } from "./harnesses/readiness/AgentReadiness.js";
5
+ export type { AgentReadinessOptions, AgentReadinessReport, ReadinessAgentType, ReadinessStatus, } from "./harnesses/readiness/AgentReadiness.js";
6
+ export { createBuiltinAdapters } from "./harnesses/index.js";
7
+ export { HARNESS_RUNTIME_PROFILES, type StartableAgentType } from "./harnesses/runtimeProfiles.js";
8
+ export { AGENT_TYPES, AgentStatus } from "./adapters/AgentAdapter.js";
9
+ export type { AgentAdapter, AgentType, AgentInfo, ConversationMessage, SessionSummary, ListSessionsOptions, } from "./adapters/AgentAdapter.js";
10
+ export { TerminalFocusManager } from "./terminal/TerminalFocusManager.js";
11
+ export { TerminalType } from "./terminal/types.js";
12
+ export type { TerminalLocation } from "./terminal/types.js";
19
13
  export { TtyWriter } from "./terminal/TtyWriter.js";
20
- export type { AgentManagerOptions, ListAgentsOptions } from "./AgentManager.js";
21
- export { extractHerdrAgentPanes, fetchHerdrAgentPanes, findMatchingHerdrPane, herdrPaneToRuntimeRef, } from "./runtime/herdr/HerdrAgentDiscovery.js";
22
- export type { HerdrAgentPane } from "./runtime/herdr/HerdrAgentDiscovery.js";
23
14
  export { AgentRegistry, RenameNotFoundError, RenameConflictError, AGENT_RUNTIME_PROVIDERS, parseTmuxRuntimeRef, } from "./utils/AgentRegistry.js";
24
- export type { AgentRegistryOptions, RegistryEntry, AgentRuntimeProvider, TmuxRuntimeRef, } from "./utils/AgentRegistry.js";
25
- export { TmuxManager } from "./terminal/TmuxManager.js";
26
- export type { AgentRuntimeAvailability, InteractiveAgentRuntime } from "./runtime/types.js";
27
- export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS, } from "./runtime/ManagedAgentRuntime.js";
28
- export type { FocusAgentDeps, StartAgentDeps, StartAgentOptions, StopAgentDeps, StopAgentResult, FocusAgentResult, SendAgentPromptDeps, } from "./runtime/ManagedAgentRuntime.js";
29
- export { AGENTS } from "./utils/agents.js";
30
- export type { AgentConfig, StartableAgentType } from "./utils/agents.js";
15
+ export type { AgentRuntimeProvider } from "./utils/AgentRegistry.js";
16
+ export type { InteractiveAgentRuntime } from "./runtime/types.js";
17
+ export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_TIMEOUT_MS, } from "./runtime/ManagedAgentRuntime.js";
31
18
  export type { AgentRequest } from "./utils/agent-requests.js";
32
- export { getAgentRequestPath, readLatestAgentRequest, writeAgentRequest, } from "./utils/agent-requests.js";
33
- export { AGENT_MODES, DurableAgentError, DurableAgentBusyError, DurableAgentNotFoundError, DurableAgentRepositoryError, DurableAgentNameConflictError, ClaudePrintError, CodexPrintError, PiPrintError, } from "./durable/DurableAgent.js";
34
- export type { DurableAgent, DurableAgentBase, ClaudeDurableAgent, CodexDurableAgent, PiDurableAgent, DurableProvider, CodexPrintErrorCode, DurableAgentState, DurableSessionHealth, DurableRunStatus, DurableActiveRun, DurableLastResult, PiPrintErrorCode, ProcessIdentity, } from "./durable/DurableAgent.js";
19
+ export { readLatestAgentRequest, writeAgentRequest } from "./utils/agent-requests.js";
20
+ export { AGENT_MODES } from "./durable/DurableAgent.js";
21
+ export type { DurableProvider } from "./durable/DurableAgent.js";
35
22
  export { DurableAgentRepository } from "./durable/DurableAgentRepository.js";
36
- export type { CreateDurableAgentInput, DurableAgentRepositoryOptions, ProcessInspector, DurableRunCompletion, } from "./durable/DurableAgentRepository.js";
37
- export { ClaudePrintAgentService } from "./providers/claude/durable/ClaudePrintAgentService.js";
38
- export type { ClaudePrintAgentServiceOptions, ClaudePrintSendResult, } from "./providers/claude/durable/ClaudePrintAgentService.js";
39
- export { CodexCliProbe } from "./providers/codex/durable/CodexCliProbe.js";
40
- export type { CodexCliProbeOptions } from "./providers/codex/durable/CodexCliProbe.js";
41
- export { CodexPrintRunner } from "./providers/codex/durable/CodexPrintRunner.js";
42
- export type { CodexPrintRunnerOptions, CodexPrintRunRequest, CodexPrintRunResult, } from "./providers/codex/durable/CodexPrintRunner.js";
43
- export { CodexPrintAgentService } from "./providers/codex/durable/CodexPrintAgentService.js";
44
- export type { CodexPrintAgentServiceOptions, CodexPrintSendResult, } from "./providers/codex/durable/CodexPrintAgentService.js";
45
- export { PiCliProbe } from "./providers/pi/durable/PiCliProbe.js";
46
- export type { PiCliProbeOptions } from "./providers/pi/durable/PiCliProbe.js";
47
- export { PiPrintRunner } from "./providers/pi/durable/PiPrintRunner.js";
48
- export type { PiPrintRunnerOptions, PiPrintRunRequest, PiPrintRunResult, } from "./providers/pi/durable/PiPrintRunner.js";
49
- export { PiPrintAgentService } from "./providers/pi/durable/PiPrintAgentService.js";
50
- export type { PiPrintAgentServiceOptions, PiPrintSendResult, } from "./providers/pi/durable/PiPrintAgentService.js";
23
+ export { ClaudePrintAgentService } from "./harnesses/claude/durable/ClaudePrintAgentService.js";
24
+ export { CodexPrintAgentService } from "./harnesses/codex/durable/CodexPrintAgentService.js";
25
+ export { PiPrintAgentService } from "./harnesses/pi/durable/PiPrintAgentService.js";
51
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACxF,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,YAAY,EACV,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC"}
package/dist/index.js CHANGED
@@ -1,32 +1,19 @@
1
- export { AgentManager, AgentNotRunningError } from "./AgentManager.js";
2
- export { getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport } from "./capacity/index.js";
3
- export { getAgentReadinessReport, getAgentReadinessReports, worstReadinessStatus } from "./readiness/AgentReadiness.js";
4
- export { ClaudeCodeAdapter } from "./providers/claude/ClaudeCodeAdapter.js";
5
- export { CodexAdapter } from "./providers/codex/CodexAdapter.js";
6
- export { CopilotAdapter } from "./providers/copilot/CopilotAdapter.js";
7
- export { GeminiCliAdapter } from "./providers/gemini/GeminiCliAdapter.js";
8
- export { GrokCliAdapter } from "./providers/grok/GrokCliAdapter.js";
9
- export { AntigravityCliAdapter } from "./adapters/AntigravityCliAdapter.js";
10
- export { KiroAdapter } from "./adapters/KiroAdapter.js";
11
- export { OpenCodeAdapter } from "./providers/opencode/OpenCodeAdapter.js";
12
- export { PiAdapter } from "./providers/pi/PiAdapter.js";
13
- export { AgentStatus } from "./adapters/AgentAdapter.js";
14
- export { TerminalFocusManager, TerminalType } from "./terminal/TerminalFocusManager.js";
1
+ export { AgentManager } from "./AgentManager.js";
2
+ export { getAnthropicCapacityReport, getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport } from "./capacity/index.js";
3
+ export { getAgentReadinessReports, worstReadinessStatus } from "./harnesses/readiness/AgentReadiness.js";
4
+ export { createBuiltinAdapters } from "./harnesses/index.js";
5
+ export { HARNESS_RUNTIME_PROFILES } from "./harnesses/runtimeProfiles.js";
6
+ export { AGENT_TYPES, AgentStatus } from "./adapters/AgentAdapter.js";
7
+ export { TerminalFocusManager } from "./terminal/TerminalFocusManager.js";
8
+ export { TerminalType } from "./terminal/types.js";
15
9
  export { TtyWriter } from "./terminal/TtyWriter.js";
16
- export { extractHerdrAgentPanes, fetchHerdrAgentPanes, findMatchingHerdrPane, herdrPaneToRuntimeRef } from "./runtime/herdr/HerdrAgentDiscovery.js";
17
10
  export { AgentRegistry, RenameNotFoundError, RenameConflictError, AGENT_RUNTIME_PROVIDERS, parseTmuxRuntimeRef } from "./utils/AgentRegistry.js";
18
- export { TmuxManager } from "./terminal/TmuxManager.js";
19
- export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from "./runtime/ManagedAgentRuntime.js";
20
- export { AGENTS } from "./utils/agents.js";
21
- export { getAgentRequestPath, readLatestAgentRequest, writeAgentRequest } from "./utils/agent-requests.js";
22
- export { AGENT_MODES, DurableAgentError, DurableAgentBusyError, DurableAgentNotFoundError, DurableAgentRepositoryError, DurableAgentNameConflictError, ClaudePrintError, CodexPrintError, PiPrintError } from "./durable/DurableAgent.js";
11
+ export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_TIMEOUT_MS } from "./runtime/ManagedAgentRuntime.js";
12
+ export { readLatestAgentRequest, writeAgentRequest } from "./utils/agent-requests.js";
13
+ export { AGENT_MODES } from "./durable/DurableAgent.js";
23
14
  export { DurableAgentRepository } from "./durable/DurableAgentRepository.js";
24
- export { ClaudePrintAgentService } from "./providers/claude/durable/ClaudePrintAgentService.js";
25
- export { CodexCliProbe } from "./providers/codex/durable/CodexCliProbe.js";
26
- export { CodexPrintRunner } from "./providers/codex/durable/CodexPrintRunner.js";
27
- export { CodexPrintAgentService } from "./providers/codex/durable/CodexPrintAgentService.js";
28
- export { PiCliProbe } from "./providers/pi/durable/PiCliProbe.js";
29
- export { PiPrintRunner } from "./providers/pi/durable/PiPrintRunner.js";
30
- export { PiPrintAgentService } from "./providers/pi/durable/PiPrintAgentService.js";
15
+ export { ClaudePrintAgentService } from "./harnesses/claude/durable/ClaudePrintAgentService.js";
16
+ export { CodexPrintAgentService } from "./harnesses/codex/durable/CodexPrintAgentService.js";
17
+ export { PiPrintAgentService } from "./harnesses/pi/durable/PiPrintAgentService.js";
31
18
 
32
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { AgentManager, AgentNotRunningError } from \"./AgentManager.js\";\nexport {\n getClaudeCapacityReport,\n getCodexCapacityReport,\n getOpenAiCapacityReport,\n getZaiCapacityReport,\n} from \"./capacity/index.js\";\nexport type {\n ClaudeCapacityOptions,\n CapacityProbeOptions,\n CapacityReport,\n CapacityWindow,\n OpenAiCapacityOptions,\n ZaiCapacityOptions,\n} from \"./capacity/index.js\";\nexport {\n getAgentReadinessReport,\n getAgentReadinessReports,\n worstReadinessStatus,\n} from \"./readiness/AgentReadiness.js\";\nexport type {\n AgentReadinessOptions,\n AgentReadinessReport,\n AuthReadinessCheck,\n BuiltInSkillsReadinessCheck,\n DirectoryReadinessCheck,\n ExecutableReadinessCheck,\n IntegrationReadinessCheck,\n ReadinessAgentType,\n ReadinessAuthState,\n ReadinessCheck,\n ReadinessStatus,\n} from \"./readiness/AgentReadiness.js\";\n\nexport { ClaudeCodeAdapter } from \"./providers/claude/ClaudeCodeAdapter.js\";\nexport { CodexAdapter } from \"./providers/codex/CodexAdapter.js\";\nexport { CopilotAdapter } from \"./providers/copilot/CopilotAdapter.js\";\nexport { GeminiCliAdapter } from \"./providers/gemini/GeminiCliAdapter.js\";\nexport { GrokCliAdapter } from \"./providers/grok/GrokCliAdapter.js\";\nexport { AntigravityCliAdapter } from \"./adapters/AntigravityCliAdapter.js\";\nexport { KiroAdapter } from \"./adapters/KiroAdapter.js\";\nexport { OpenCodeAdapter } from \"./providers/opencode/OpenCodeAdapter.js\";\nexport { PiAdapter } from \"./providers/pi/PiAdapter.js\";\nexport { AgentStatus } from \"./adapters/AgentAdapter.js\";\nexport type {\n AgentAdapter,\n AgentType,\n AgentInfo,\n ProcessInfo,\n ConversationMessage,\n SessionSummary,\n ListSessionsOptions,\n AgentDetectionContext,\n} from \"./adapters/AgentAdapter.js\";\n\nexport { TerminalFocusManager, TerminalType } from \"./terminal/TerminalFocusManager.js\";\nexport type { TerminalLocation } from \"./terminal/TerminalFocusManager.js\";\nexport { TtyWriter } from \"./terminal/TtyWriter.js\";\n\nexport type { AgentManagerOptions, ListAgentsOptions } from \"./AgentManager.js\";\nexport {\n extractHerdrAgentPanes,\n fetchHerdrAgentPanes,\n findMatchingHerdrPane,\n herdrPaneToRuntimeRef,\n} from \"./runtime/herdr/HerdrAgentDiscovery.js\";\nexport type { HerdrAgentPane } from \"./runtime/herdr/HerdrAgentDiscovery.js\";\n\nexport {\n AgentRegistry,\n RenameNotFoundError,\n RenameConflictError,\n AGENT_RUNTIME_PROVIDERS,\n parseTmuxRuntimeRef,\n} from \"./utils/AgentRegistry.js\";\nexport type {\n AgentRegistryOptions,\n RegistryEntry,\n AgentRuntimeProvider,\n TmuxRuntimeRef,\n} from \"./utils/AgentRegistry.js\";\nexport { TmuxManager } from \"./terminal/TmuxManager.js\";\nexport type { AgentRuntimeAvailability, InteractiveAgentRuntime } from \"./runtime/types.js\";\nexport {\n startAgent,\n stopAgent,\n focusAgent,\n sendAgentPrompt,\n TmuxUnavailableError,\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n DEFAULT_PID_POLL_INTERVAL_MS,\n DEFAULT_PID_POLL_TIMEOUT_MS,\n} from \"./runtime/ManagedAgentRuntime.js\";\nexport type {\n FocusAgentDeps,\n StartAgentDeps,\n StartAgentOptions,\n StopAgentDeps,\n StopAgentResult,\n FocusAgentResult,\n SendAgentPromptDeps,\n} from \"./runtime/ManagedAgentRuntime.js\";\nexport { AGENTS } from \"./utils/agents.js\";\nexport type { AgentConfig, StartableAgentType } from \"./utils/agents.js\";\n\nexport type { AgentRequest } from \"./utils/agent-requests.js\";\nexport {\n getAgentRequestPath,\n readLatestAgentRequest,\n writeAgentRequest,\n} from \"./utils/agent-requests.js\";\n\nexport {\n AGENT_MODES,\n DurableAgentError,\n DurableAgentBusyError,\n DurableAgentNotFoundError,\n DurableAgentRepositoryError,\n DurableAgentNameConflictError,\n ClaudePrintError,\n CodexPrintError,\n PiPrintError,\n} from \"./durable/DurableAgent.js\";\nexport type {\n DurableAgent,\n DurableAgentBase,\n ClaudeDurableAgent,\n CodexDurableAgent,\n PiDurableAgent,\n DurableProvider,\n CodexPrintErrorCode,\n DurableAgentState,\n DurableSessionHealth,\n DurableRunStatus,\n DurableActiveRun,\n DurableLastResult,\n PiPrintErrorCode,\n ProcessIdentity,\n} from \"./durable/DurableAgent.js\";\nexport { DurableAgentRepository } from \"./durable/DurableAgentRepository.js\";\nexport type {\n CreateDurableAgentInput,\n DurableAgentRepositoryOptions,\n ProcessInspector,\n DurableRunCompletion,\n} from \"./durable/DurableAgentRepository.js\";\nexport { ClaudePrintAgentService } from \"./providers/claude/durable/ClaudePrintAgentService.js\";\nexport type {\n ClaudePrintAgentServiceOptions,\n ClaudePrintSendResult,\n} from \"./providers/claude/durable/ClaudePrintAgentService.js\";\nexport { CodexCliProbe } from \"./providers/codex/durable/CodexCliProbe.js\";\nexport type { CodexCliProbeOptions } from \"./providers/codex/durable/CodexCliProbe.js\";\nexport { CodexPrintRunner } from \"./providers/codex/durable/CodexPrintRunner.js\";\nexport type {\n CodexPrintRunnerOptions,\n CodexPrintRunRequest,\n CodexPrintRunResult,\n} from \"./providers/codex/durable/CodexPrintRunner.js\";\nexport { CodexPrintAgentService } from \"./providers/codex/durable/CodexPrintAgentService.js\";\nexport type {\n CodexPrintAgentServiceOptions,\n CodexPrintSendResult,\n} from \"./providers/codex/durable/CodexPrintAgentService.js\";\nexport { PiCliProbe } from \"./providers/pi/durable/PiCliProbe.js\";\nexport type { PiCliProbeOptions } from \"./providers/pi/durable/PiCliProbe.js\";\nexport { PiPrintRunner } from \"./providers/pi/durable/PiPrintRunner.js\";\nexport type {\n PiPrintRunnerOptions,\n PiPrintRunRequest,\n PiPrintRunResult,\n} from \"./providers/pi/durable/PiPrintRunner.js\";\nexport { PiPrintAgentService } from \"./providers/pi/durable/PiPrintAgentService.js\";\nexport type {\n PiPrintAgentServiceOptions,\n PiPrintSendResult,\n} from \"./providers/pi/durable/PiPrintAgentService.js\";\n"],"names":["AgentManager","AgentNotRunningError","getClaudeCapacityReport","getCodexCapacityReport","getOpenAiCapacityReport","getZaiCapacityReport","getAgentReadinessReport","getAgentReadinessReports","worstReadinessStatus","ClaudeCodeAdapter","CodexAdapter","CopilotAdapter","GeminiCliAdapter","GrokCliAdapter","AntigravityCliAdapter","KiroAdapter","OpenCodeAdapter","PiAdapter","AgentStatus","TerminalFocusManager","TerminalType","TtyWriter","extractHerdrAgentPanes","fetchHerdrAgentPanes","findMatchingHerdrPane","herdrPaneToRuntimeRef","AgentRegistry","RenameNotFoundError","RenameConflictError","AGENT_RUNTIME_PROVIDERS","parseTmuxRuntimeRef","TmuxManager","startAgent","stopAgent","focusAgent","sendAgentPrompt","TmuxUnavailableError","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","AGENTS","getAgentRequestPath","readLatestAgentRequest","writeAgentRequest","AGENT_MODES","DurableAgentError","DurableAgentBusyError","DurableAgentNotFoundError","DurableAgentRepositoryError","DurableAgentNameConflictError","ClaudePrintError","CodexPrintError","PiPrintError","DurableAgentRepository","ClaudePrintAgentService","CodexCliProbe","CodexPrintRunner","CodexPrintAgentService","PiCliProbe","PiPrintRunner","PiPrintAgentService"],"mappings":"AAAA,SAASA,YAAY,EAAEC,oBAAoB,QAAQ,oBAAoB;AACvE,SACEC,uBAAuB,EACvBC,sBAAsB,EACtBC,uBAAuB,EACvBC,oBAAoB,QACf,sBAAsB;AAS7B,SACEC,uBAAuB,EACvBC,wBAAwB,EACxBC,oBAAoB,QACf,gCAAgC;AAevC,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,YAAY,QAAQ,oCAAoC;AACjE,SAASC,cAAc,QAAQ,wCAAwC;AACvE,SAASC,gBAAgB,QAAQ,yCAAyC;AAC1E,SAASC,cAAc,QAAQ,qCAAqC;AACpE,SAASC,qBAAqB,QAAQ,sCAAsC;AAC5E,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,WAAW,QAAQ,6BAA6B;AAYzD,SAASC,oBAAoB,EAAEC,YAAY,QAAQ,qCAAqC;AAExF,SAASC,SAAS,QAAQ,0BAA0B;AAGpD,SACEC,sBAAsB,EACtBC,oBAAoB,EACpBC,qBAAqB,EACrBC,qBAAqB,QAChB,yCAAyC;AAGhD,SACEC,aAAa,EACbC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAmB,QACd,2BAA2B;AAOlC,SAASC,WAAW,QAAQ,4BAA4B;AAExD,SACEC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,oBAAoB,EACpBC,mBAAmB,EACnBC,wBAAwB,EACxBC,4BAA4B,EAC5BC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,2BAA2B,QACtB,mCAAmC;AAU1C,SAASC,MAAM,QAAQ,oBAAoB;AAI3C,SACEC,mBAAmB,EACnBC,sBAAsB,EACtBC,iBAAiB,QACZ,4BAA4B;AAEnC,SACEC,WAAW,EACXC,iBAAiB,EACjBC,qBAAqB,EACrBC,yBAAyB,EACzBC,2BAA2B,EAC3BC,6BAA6B,EAC7BC,gBAAgB,EAChBC,eAAe,EACfC,YAAY,QACP,4BAA4B;AAiBnC,SAASC,sBAAsB,QAAQ,sCAAsC;AAO7E,SAASC,uBAAuB,QAAQ,wDAAwD;AAKhG,SAASC,aAAa,QAAQ,6CAA6C;AAE3E,SAASC,gBAAgB,QAAQ,gDAAgD;AAMjF,SAASC,sBAAsB,QAAQ,sDAAsD;AAK7F,SAASC,UAAU,QAAQ,uCAAuC;AAElE,SAASC,aAAa,QAAQ,0CAA0C;AAMxE,SAASC,mBAAmB,QAAQ,gDAAgD"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { AgentManager } from \"./AgentManager.js\";\nexport {\n getAnthropicCapacityReport,\n getClaudeCapacityReport,\n getCodexCapacityReport,\n getOpenAiCapacityReport,\n getZaiCapacityReport,\n} from \"./capacity/index.js\";\nexport type { CapacityReport, CapacityWindow } from \"./capacity/index.js\";\n\nexport {\n getAgentReadinessReports,\n worstReadinessStatus,\n} from \"./harnesses/readiness/AgentReadiness.js\";\nexport type {\n AgentReadinessOptions,\n AgentReadinessReport,\n ReadinessAgentType,\n ReadinessStatus,\n} from \"./harnesses/readiness/AgentReadiness.js\";\n\nexport { createBuiltinAdapters } from \"./harnesses/index.js\";\nexport { HARNESS_RUNTIME_PROFILES, type StartableAgentType } from \"./harnesses/runtimeProfiles.js\";\nexport { AGENT_TYPES, AgentStatus } from \"./adapters/AgentAdapter.js\";\nexport type {\n AgentAdapter,\n AgentType,\n AgentInfo,\n ConversationMessage,\n SessionSummary,\n ListSessionsOptions,\n} from \"./adapters/AgentAdapter.js\";\n\nexport { TerminalFocusManager } from \"./terminal/TerminalFocusManager.js\";\nexport { TerminalType } from \"./terminal/types.js\";\nexport type { TerminalLocation } from \"./terminal/types.js\";\nexport { TtyWriter } from \"./terminal/TtyWriter.js\";\n\nexport {\n AgentRegistry,\n RenameNotFoundError,\n RenameConflictError,\n AGENT_RUNTIME_PROVIDERS,\n parseTmuxRuntimeRef,\n} from \"./utils/AgentRegistry.js\";\nexport type { AgentRuntimeProvider } from \"./utils/AgentRegistry.js\";\nexport type { InteractiveAgentRuntime } from \"./runtime/types.js\";\nexport {\n startAgent,\n stopAgent,\n focusAgent,\n sendAgentPrompt,\n TmuxUnavailableError,\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n DEFAULT_PID_POLL_TIMEOUT_MS,\n} from \"./runtime/ManagedAgentRuntime.js\";\n\nexport type { AgentRequest } from \"./utils/agent-requests.js\";\nexport { readLatestAgentRequest, writeAgentRequest } from \"./utils/agent-requests.js\";\n\nexport { AGENT_MODES } from \"./durable/DurableAgent.js\";\nexport type { DurableProvider } from \"./durable/DurableAgent.js\";\nexport { DurableAgentRepository } from \"./durable/DurableAgentRepository.js\";\nexport { ClaudePrintAgentService } from \"./harnesses/claude/durable/ClaudePrintAgentService.js\";\nexport { CodexPrintAgentService } from \"./harnesses/codex/durable/CodexPrintAgentService.js\";\nexport { PiPrintAgentService } from \"./harnesses/pi/durable/PiPrintAgentService.js\";\n"],"names":["AgentManager","getAnthropicCapacityReport","getClaudeCapacityReport","getCodexCapacityReport","getOpenAiCapacityReport","getZaiCapacityReport","getAgentReadinessReports","worstReadinessStatus","createBuiltinAdapters","HARNESS_RUNTIME_PROFILES","AGENT_TYPES","AgentStatus","TerminalFocusManager","TerminalType","TtyWriter","AgentRegistry","RenameNotFoundError","RenameConflictError","AGENT_RUNTIME_PROVIDERS","parseTmuxRuntimeRef","startAgent","stopAgent","focusAgent","sendAgentPrompt","TmuxUnavailableError","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","DEFAULT_PID_POLL_TIMEOUT_MS","readLatestAgentRequest","writeAgentRequest","AGENT_MODES","DurableAgentRepository","ClaudePrintAgentService","CodexPrintAgentService","PiPrintAgentService"],"mappings":"AAAA,SAASA,YAAY,QAAQ,oBAAoB;AACjD,SACEC,0BAA0B,EAC1BC,uBAAuB,EACvBC,sBAAsB,EACtBC,uBAAuB,EACvBC,oBAAoB,QACf,sBAAsB;AAG7B,SACEC,wBAAwB,EACxBC,oBAAoB,QACf,0CAA0C;AAQjD,SAASC,qBAAqB,QAAQ,uBAAuB;AAC7D,SAASC,wBAAwB,QAAiC,iCAAiC;AACnG,SAASC,WAAW,EAAEC,WAAW,QAAQ,6BAA6B;AAUtE,SAASC,oBAAoB,QAAQ,qCAAqC;AAC1E,SAASC,YAAY,QAAQ,sBAAsB;AAEnD,SAASC,SAAS,QAAQ,0BAA0B;AAEpD,SACEC,aAAa,EACbC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAmB,QACd,2BAA2B;AAGlC,SACEC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,oBAAoB,EACpBC,mBAAmB,EACnBC,wBAAwB,EACxBC,4BAA4B,EAC5BC,0BAA0B,EAC1BC,2BAA2B,QACtB,mCAAmC;AAG1C,SAASC,sBAAsB,EAAEC,iBAAiB,QAAQ,4BAA4B;AAEtF,SAASC,WAAW,QAAQ,4BAA4B;AAExD,SAASC,sBAAsB,QAAQ,sCAAsC;AAC7E,SAASC,uBAAuB,QAAQ,wDAAwD;AAChG,SAASC,sBAAsB,QAAQ,sDAAsD;AAC7F,SAASC,mBAAmB,QAAQ,gDAAgD"}
@@ -1,8 +1,8 @@
1
1
  import type { AgentInfo } from "../adapters/AgentAdapter.js";
2
- import type { TerminalLocation } from "../terminal/TerminalFocusManager.js";
3
- import { TmuxManager } from "../terminal/TmuxManager.js";
2
+ import type { TerminalLocation } from "../terminal/types.js";
3
+ import { TmuxManager } from "./tmux/TmuxManager.js";
4
4
  import { AgentRegistry, type AgentRuntimeProvider, type RegistryEntry } from "../utils/AgentRegistry.js";
5
- import { type StartableAgentType } from "../utils/agents.js";
5
+ import { type StartableAgentType } from "../harnesses/runtimeProfiles.js";
6
6
  import { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from "./tmux/PidPolling.js";
7
7
  import type { InteractiveAgentRuntime } from "./types.js";
8
8
  import { AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, TmuxUnavailableError } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ManagedAgentRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/ManagedAgentRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ManagedAgentRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/ManagedAgentRuntime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { TmuxManager } from "../terminal/TmuxManager.js";
1
+ import { TmuxManager } from "./tmux/TmuxManager.js";
2
2
  import { AgentRegistry } from "../utils/AgentRegistry.js";
3
- import { AGENTS } from "../utils/agents.js";
3
+ import { HARNESS_RUNTIME_PROFILES } from "../harnesses/runtimeProfiles.js";
4
4
  import { createInteractiveRuntime } from "./RuntimeFactory.js";
5
5
  import { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from "./tmux/PidPolling.js";
6
6
  import { TmuxAgentRuntime } from "./tmux/TmuxAgentRuntime.js";
@@ -13,7 +13,7 @@ export { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };
13
13
  * Callers are responsible for user input validation before invoking this.
14
14
  */ export async function startAgent(opts, deps = {}) {
15
15
  const registry = deps.registry ?? AgentRegistry.default();
16
- const agent = AGENTS[opts.type];
16
+ const profile = HARNESS_RUNTIME_PROFILES[opts.type];
17
17
  const intervalMs = opts.pollIntervalMs ?? DEFAULT_PID_POLL_INTERVAL_MS;
18
18
  const timeoutMs = opts.pollTimeoutMs ?? DEFAULT_PID_POLL_TIMEOUT_MS;
19
19
  const provider = opts.runtimeProvider ?? deps.runtime?.provider ?? "tmux";
@@ -38,12 +38,12 @@ export { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };
38
38
  const result = await runtime.startAgent({
39
39
  name: opts.name,
40
40
  cwd: opts.cwd,
41
- kind: agentRuntimeKind(opts.type, provider),
41
+ kind: profile.runtimeKind,
42
42
  args: [],
43
43
  timeoutMs,
44
44
  ...provider === "tmux" ? {
45
- command: agent.command,
46
- matches: agent.matches,
45
+ command: profile.command,
46
+ matches: profile.matches,
47
47
  pollIntervalMs: intervalMs
48
48
  } : {}
49
49
  });
@@ -140,19 +140,5 @@ function resolveRuntimeForEntry(registryEntry, deps) {
140
140
  function isHerdrRegistryEntry(entry) {
141
141
  return typeof entry === "object" && entry !== null && entry.runtime === "herdr" && "runtimeRef" in entry;
142
142
  }
143
- function agentRuntimeKind(type, provider) {
144
- if (provider === "tmux") return type;
145
- return ({
146
- claude: "claude",
147
- codex: "codex",
148
- copilot: "copilot",
149
- gemini_cli: "gemini",
150
- grok_cli: "grok",
151
- antigravity_cli: "agy",
152
- opencode: "opencode",
153
- pi: "pi",
154
- kiro: "kiro"
155
- })[type];
156
- }
157
143
 
158
144
  //# sourceMappingURL=ManagedAgentRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runtime/ManagedAgentRuntime.ts"],"sourcesContent":["import type { AgentInfo } from \"../adapters/AgentAdapter.js\";\nimport type { TerminalLocation } from \"../terminal/TerminalFocusManager.js\";\nimport { TmuxManager } from \"../terminal/TmuxManager.js\";\nimport {\n AgentRegistry,\n type AgentRuntimeProvider,\n type RegistryEntry,\n} from \"../utils/AgentRegistry.js\";\nimport { AGENTS, type StartableAgentType } from \"../utils/agents.js\";\nimport { createInteractiveRuntime } from \"./RuntimeFactory.js\";\nimport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from \"./tmux/PidPolling.js\";\nimport { TmuxAgentRuntime } from \"./tmux/TmuxAgentRuntime.js\";\nimport type { InteractiveAgentRuntime } from \"./types.js\";\nimport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n} from \"./errors.js\";\n\nexport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n};\nexport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };\n\nexport interface StartAgentOptions {\n type: StartableAgentType;\n name: string;\n cwd: string;\n runtimeProvider?: AgentRuntimeProvider;\n pollIntervalMs?: number;\n pollTimeoutMs?: number;\n}\n\nexport interface StartAgentDeps {\n tmux?: TmuxManager;\n runtime?: InteractiveAgentRuntime;\n registry?: AgentRegistry;\n /** Called for non-fatal events (e.g., replacing an orphan tmux session). */\n onWarning?: (message: string) => void;\n}\n\nexport interface StopAgentDeps {\n tmux?: Pick<TmuxManager, \"killSession\">;\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n killProcess?: (pid: number, signal: NodeJS.Signals) => void;\n}\n\nexport interface StopAgentResult {\n agentName: string;\n pid: number;\n runtime: AgentRuntimeProvider;\n runtimeRef: unknown | null;\n}\n\nexport interface FocusAgentDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n focusTerminal(location: TerminalLocation): Promise<boolean>;\n };\n}\n\nexport type FocusAgentResult =\n | { focused: true }\n | { focused: false; reason: \"terminal-not-found\" | \"focus-failed\" };\n\nexport interface SendAgentPromptDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n };\n writer?: (location: TerminalLocation, text: string) => Promise<void>;\n}\n\n/**\n * Orchestrate `agent start`: ensure the configured runtime is available,\n * create the runtime session, detect the agent PID, and register the entry.\n * Callers are responsible for user input validation before invoking this.\n */\nexport async function startAgent(\n opts: StartAgentOptions,\n deps: StartAgentDeps = {},\n): Promise<RegistryEntry> {\n const registry = deps.registry ?? AgentRegistry.default();\n const agent = AGENTS[opts.type];\n const intervalMs = opts.pollIntervalMs ?? DEFAULT_PID_POLL_INTERVAL_MS;\n const timeoutMs = opts.pollTimeoutMs ?? DEFAULT_PID_POLL_TIMEOUT_MS;\n const provider = opts.runtimeProvider ?? deps.runtime?.provider ?? \"tmux\";\n const tmux = provider === \"tmux\" ? (deps.tmux ?? new TmuxManager()) : undefined;\n const runtime = resolveStartRuntime(provider, { ...deps, tmux });\n\n const availability = await runtime.isAvailable();\n if (!availability.ok) {\n if (provider === \"tmux\") throw new TmuxUnavailableError();\n throw new AgentRuntimeUnavailableError(provider, availability.reason, availability.detail);\n }\n\n registry.prune();\n const existing = registry.lookup(opts.name);\n if (existing) {\n throw new AgentNameInUseError(opts.name, existing.pid);\n }\n\n if (provider === \"tmux\" && tmux && (await tmux.sessionExists(opts.name))) {\n deps.onWarning?.(\n `tmux session \"${opts.name}\" already exists but has no live registry entry — it will be replaced.`,\n );\n }\n\n const result = await runtime.startAgent({\n name: opts.name,\n cwd: opts.cwd,\n kind: agentRuntimeKind(opts.type, provider),\n args: [],\n timeoutMs,\n ...(provider === \"tmux\"\n ? {\n command: agent.command,\n matches: agent.matches,\n pollIntervalMs: intervalMs,\n }\n : {}),\n });\n\n const entry: RegistryEntry = {\n name: opts.name,\n type: opts.type,\n pid: result.pid,\n runtime: runtime.provider,\n runtimeRef: result.runtimeRef,\n cwd: opts.cwd,\n startedAt: new Date().toISOString(),\n sessionId: \"\",\n sessionFilePath: \"\",\n pinned: false,\n };\n registry.register(entry);\n return entry;\n}\n\nexport async function stopAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: StopAgentDeps = {},\n): Promise<StopAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n const runtimeRef = registryEntry?.runtimeRef ?? null;\n\n await runtime.stop({\n agent,\n runtimeRef,\n killProcess: deps.killProcess,\n });\n\n return {\n agentName: agent.name,\n pid: agent.pid,\n runtime: runtime.provider,\n runtimeRef,\n };\n}\n\nexport async function focusAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: FocusAgentDeps,\n): Promise<FocusAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n if (runtime.provider === \"tmux\") {\n const location = await deps.focusManager.findTerminal(agent.pid);\n if (!location) return { focused: false, reason: \"terminal-not-found\" };\n\n const focused = await deps.focusManager.focusTerminal(location);\n return focused ? { focused: true } : { focused: false, reason: \"focus-failed\" };\n }\n\n const focused = await runtime.focus({\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n focusManager: deps.focusManager,\n });\n\n if (focused) return { focused: true };\n return { focused: false, reason: \"focus-failed\" };\n}\n\nexport async function sendAgentPrompt(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n prompt: string,\n deps: SendAgentPromptDeps,\n): Promise<void> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n\n await runtime.send(\n {\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n prompt,\n },\n {\n focusManager: deps.focusManager,\n writer: deps.writer,\n },\n );\n}\n\nfunction resolveStartRuntime(\n provider: AgentRuntimeProvider,\n deps: StartAgentDeps,\n): InteractiveAgentRuntime {\n if (deps.runtime && deps.runtime.provider === provider) {\n return deps.runtime;\n }\n if (provider === \"tmux\") return new TmuxAgentRuntime(deps.tmux);\n return createInteractiveRuntime(provider);\n}\n\nfunction resolveRuntimeForEntry(\n registryEntry: RegistryEntry | null,\n deps: { runtime?: InteractiveAgentRuntime; tmux?: Pick<TmuxManager, \"killSession\"> },\n): InteractiveAgentRuntime {\n if (isHerdrRegistryEntry(registryEntry)) {\n return deps.runtime?.provider === \"herdr\" ? deps.runtime : createInteractiveRuntime(\"herdr\");\n }\n if (deps.runtime?.provider === \"tmux\") return deps.runtime;\n return deps.tmux\n ? new TmuxAgentRuntime(deps.tmux as TmuxManager)\n : createInteractiveRuntime(\"tmux\");\n}\n\nfunction isHerdrRegistryEntry(\n entry: unknown,\n): entry is RegistryEntry & { runtime: \"herdr\"; runtimeRef: unknown } {\n return (\n typeof entry === \"object\" &&\n entry !== null &&\n (entry as { runtime?: unknown }).runtime === \"herdr\" &&\n \"runtimeRef\" in entry\n );\n}\n\nfunction agentRuntimeKind(type: StartableAgentType, provider: AgentRuntimeProvider): string {\n if (provider === \"tmux\") return type;\n return {\n claude: \"claude\",\n codex: \"codex\",\n copilot: \"copilot\",\n gemini_cli: \"gemini\",\n grok_cli: \"grok\",\n antigravity_cli: \"agy\",\n opencode: \"opencode\",\n pi: \"pi\",\n kiro: \"kiro\",\n }[type];\n}\n"],"names":["TmuxManager","AgentRegistry","AGENTS","createInteractiveRuntime","DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","TmuxAgentRuntime","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","TmuxUnavailableError","startAgent","opts","deps","registry","default","agent","type","intervalMs","pollIntervalMs","timeoutMs","pollTimeoutMs","provider","runtimeProvider","runtime","tmux","undefined","resolveStartRuntime","availability","isAvailable","ok","reason","detail","prune","existing","lookup","name","pid","sessionExists","onWarning","result","cwd","kind","agentRuntimeKind","args","command","matches","entry","runtimeRef","startedAt","Date","toISOString","sessionId","sessionFilePath","pinned","register","stopAgent","registryEntry","resolveRuntimeForEntry","stop","killProcess","agentName","focusAgent","location","focusManager","findTerminal","focused","focusTerminal","focus","sendAgentPrompt","prompt","send","writer","isHerdrRegistryEntry","claude","codex","copilot","gemini_cli","grok_cli","antigravity_cli","opencode","pi","kiro"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/runtime/ManagedAgentRuntime.ts"],"sourcesContent":["import type { AgentInfo } from \"../adapters/AgentAdapter.js\";\nimport type { TerminalLocation } from \"../terminal/types.js\";\nimport { TmuxManager } from \"./tmux/TmuxManager.js\";\nimport {\n AgentRegistry,\n type AgentRuntimeProvider,\n type RegistryEntry,\n} from \"../utils/AgentRegistry.js\";\nimport { HARNESS_RUNTIME_PROFILES, type StartableAgentType } from \"../harnesses/runtimeProfiles.js\";\nimport { createInteractiveRuntime } from \"./RuntimeFactory.js\";\nimport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from \"./tmux/PidPolling.js\";\nimport { TmuxAgentRuntime } from \"./tmux/TmuxAgentRuntime.js\";\nimport type { InteractiveAgentRuntime } from \"./types.js\";\nimport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n} from \"./errors.js\";\n\nexport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n};\nexport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };\n\nexport interface StartAgentOptions {\n type: StartableAgentType;\n name: string;\n cwd: string;\n runtimeProvider?: AgentRuntimeProvider;\n pollIntervalMs?: number;\n pollTimeoutMs?: number;\n}\n\nexport interface StartAgentDeps {\n tmux?: TmuxManager;\n runtime?: InteractiveAgentRuntime;\n registry?: AgentRegistry;\n /** Called for non-fatal events (e.g., replacing an orphan tmux session). */\n onWarning?: (message: string) => void;\n}\n\nexport interface StopAgentDeps {\n tmux?: Pick<TmuxManager, \"killSession\">;\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n killProcess?: (pid: number, signal: NodeJS.Signals) => void;\n}\n\nexport interface StopAgentResult {\n agentName: string;\n pid: number;\n runtime: AgentRuntimeProvider;\n runtimeRef: unknown | null;\n}\n\nexport interface FocusAgentDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n focusTerminal(location: TerminalLocation): Promise<boolean>;\n };\n}\n\nexport type FocusAgentResult =\n | { focused: true }\n | { focused: false; reason: \"terminal-not-found\" | \"focus-failed\" };\n\nexport interface SendAgentPromptDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n };\n writer?: (location: TerminalLocation, text: string) => Promise<void>;\n}\n\n/**\n * Orchestrate `agent start`: ensure the configured runtime is available,\n * create the runtime session, detect the agent PID, and register the entry.\n * Callers are responsible for user input validation before invoking this.\n */\nexport async function startAgent(\n opts: StartAgentOptions,\n deps: StartAgentDeps = {},\n): Promise<RegistryEntry> {\n const registry = deps.registry ?? AgentRegistry.default();\n const profile = HARNESS_RUNTIME_PROFILES[opts.type];\n const intervalMs = opts.pollIntervalMs ?? DEFAULT_PID_POLL_INTERVAL_MS;\n const timeoutMs = opts.pollTimeoutMs ?? DEFAULT_PID_POLL_TIMEOUT_MS;\n const provider = opts.runtimeProvider ?? deps.runtime?.provider ?? \"tmux\";\n const tmux = provider === \"tmux\" ? (deps.tmux ?? new TmuxManager()) : undefined;\n const runtime = resolveStartRuntime(provider, { ...deps, tmux });\n\n const availability = await runtime.isAvailable();\n if (!availability.ok) {\n if (provider === \"tmux\") throw new TmuxUnavailableError();\n throw new AgentRuntimeUnavailableError(provider, availability.reason, availability.detail);\n }\n\n registry.prune();\n const existing = registry.lookup(opts.name);\n if (existing) {\n throw new AgentNameInUseError(opts.name, existing.pid);\n }\n\n if (provider === \"tmux\" && tmux && (await tmux.sessionExists(opts.name))) {\n deps.onWarning?.(\n `tmux session \"${opts.name}\" already exists but has no live registry entry — it will be replaced.`,\n );\n }\n\n const result = await runtime.startAgent({\n name: opts.name,\n cwd: opts.cwd,\n kind: profile.runtimeKind,\n args: [],\n timeoutMs,\n ...(provider === \"tmux\"\n ? {\n command: profile.command,\n matches: profile.matches,\n pollIntervalMs: intervalMs,\n }\n : {}),\n });\n\n const entry: RegistryEntry = {\n name: opts.name,\n type: opts.type,\n pid: result.pid,\n runtime: runtime.provider,\n runtimeRef: result.runtimeRef,\n cwd: opts.cwd,\n startedAt: new Date().toISOString(),\n sessionId: \"\",\n sessionFilePath: \"\",\n pinned: false,\n };\n registry.register(entry);\n return entry;\n}\n\nexport async function stopAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: StopAgentDeps = {},\n): Promise<StopAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n const runtimeRef = registryEntry?.runtimeRef ?? null;\n\n await runtime.stop({\n agent,\n runtimeRef,\n killProcess: deps.killProcess,\n });\n\n return {\n agentName: agent.name,\n pid: agent.pid,\n runtime: runtime.provider,\n runtimeRef,\n };\n}\n\nexport async function focusAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: FocusAgentDeps,\n): Promise<FocusAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n if (runtime.provider === \"tmux\") {\n const location = await deps.focusManager.findTerminal(agent.pid);\n if (!location) return { focused: false, reason: \"terminal-not-found\" };\n\n const focused = await deps.focusManager.focusTerminal(location);\n return focused ? { focused: true } : { focused: false, reason: \"focus-failed\" };\n }\n\n const focused = await runtime.focus({\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n focusManager: deps.focusManager,\n });\n\n if (focused) return { focused: true };\n return { focused: false, reason: \"focus-failed\" };\n}\n\nexport async function sendAgentPrompt(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n prompt: string,\n deps: SendAgentPromptDeps,\n): Promise<void> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n\n await runtime.send(\n {\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n prompt,\n },\n {\n focusManager: deps.focusManager,\n writer: deps.writer,\n },\n );\n}\n\nfunction resolveStartRuntime(\n provider: AgentRuntimeProvider,\n deps: StartAgentDeps,\n): InteractiveAgentRuntime {\n if (deps.runtime && deps.runtime.provider === provider) {\n return deps.runtime;\n }\n if (provider === \"tmux\") return new TmuxAgentRuntime(deps.tmux);\n return createInteractiveRuntime(provider);\n}\n\nfunction resolveRuntimeForEntry(\n registryEntry: RegistryEntry | null,\n deps: { runtime?: InteractiveAgentRuntime; tmux?: Pick<TmuxManager, \"killSession\"> },\n): InteractiveAgentRuntime {\n if (isHerdrRegistryEntry(registryEntry)) {\n return deps.runtime?.provider === \"herdr\" ? deps.runtime : createInteractiveRuntime(\"herdr\");\n }\n if (deps.runtime?.provider === \"tmux\") return deps.runtime;\n return deps.tmux\n ? new TmuxAgentRuntime(deps.tmux as TmuxManager)\n : createInteractiveRuntime(\"tmux\");\n}\n\nfunction isHerdrRegistryEntry(\n entry: unknown,\n): entry is RegistryEntry & { runtime: \"herdr\"; runtimeRef: unknown } {\n return (\n typeof entry === \"object\" &&\n entry !== null &&\n (entry as { runtime?: unknown }).runtime === \"herdr\" &&\n \"runtimeRef\" in entry\n );\n}\n"],"names":["TmuxManager","AgentRegistry","HARNESS_RUNTIME_PROFILES","createInteractiveRuntime","DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","TmuxAgentRuntime","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","TmuxUnavailableError","startAgent","opts","deps","registry","default","profile","type","intervalMs","pollIntervalMs","timeoutMs","pollTimeoutMs","provider","runtimeProvider","runtime","tmux","undefined","resolveStartRuntime","availability","isAvailable","ok","reason","detail","prune","existing","lookup","name","pid","sessionExists","onWarning","result","cwd","kind","runtimeKind","args","command","matches","entry","runtimeRef","startedAt","Date","toISOString","sessionId","sessionFilePath","pinned","register","stopAgent","agent","registryEntry","resolveRuntimeForEntry","stop","killProcess","agentName","focusAgent","location","focusManager","findTerminal","focused","focusTerminal","focus","sendAgentPrompt","prompt","send","writer","isHerdrRegistryEntry"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HerdrAgentDiscovery.d.ts","sourceRoot":"","sources":["../../../src/runtime/herdr/HerdrAgentDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIjG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CA8BvE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC,EACpE,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,cAAc,GAAG,IAAI,CAmBvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAQ9F"}
1
+ {"version":3,"file":"HerdrAgentDiscovery.d.ts","sourceRoot":"","sources":["../../../src/runtime/herdr/HerdrAgentDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIjG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CA8BvE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC,EACpE,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,cAAc,GAAG,IAAI,CAmBvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAQ9F"}
@@ -1,3 +1,4 @@
1
+ import { runtimeAgentMatchesHarness } from "../../harnesses/runtimeProfiles.js";
1
2
  import { HerdrCliClient } from "./HerdrCliClient.js";
2
3
  export async function fetchHerdrAgentPanes(runner) {
3
4
  const client = new HerdrCliClient(runner);
@@ -62,7 +63,7 @@ export function findMatchingHerdrPane(agent, panes) {
62
63
  const shellPidMatches = panes.filter((pane)=>pane.shellPid === agent.pid);
63
64
  if (shellPidMatches.length === 1) return shellPidMatches[0];
64
65
  if (shellPidMatches.length > 1) return null;
65
- const cwdMatches = panes.filter((pane)=>pane.cwd === agent.projectPath && herdrAgentMatchesType(pane.agent, agent.type));
66
+ const cwdMatches = panes.filter((pane)=>pane.cwd === agent.projectPath && runtimeAgentMatchesHarness(pane.agent, agent.type));
66
67
  return cwdMatches.length === 1 ? cwdMatches[0] : null;
67
68
  }
68
69
  export function herdrPaneToRuntimeRef(pane, agentName) {
@@ -78,48 +79,6 @@ export function herdrPaneToRuntimeRef(pane, agentName) {
78
79
  } : {}
79
80
  };
80
81
  }
81
- function herdrAgentMatchesType(herdrAgent, agentType) {
82
- const normalized = herdrAgent.toLowerCase();
83
- const candidates = {
84
- claude: [
85
- "claude"
86
- ],
87
- codex: [
88
- "codex"
89
- ],
90
- copilot: [
91
- "copilot"
92
- ],
93
- gemini_cli: [
94
- "gemini",
95
- "gemini_cli"
96
- ],
97
- grok_cli: [
98
- "grok",
99
- "grok_cli"
100
- ],
101
- antigravity_cli: [
102
- "agy",
103
- "antigravity",
104
- "antigravity_cli"
105
- ],
106
- kiro: [
107
- "kiro",
108
- "kiro_cli",
109
- "kiro-cli"
110
- ],
111
- opencode: [
112
- "opencode"
113
- ],
114
- pi: [
115
- "pi"
116
- ],
117
- other: [
118
- "other"
119
- ]
120
- };
121
- return candidates[agentType]?.includes(normalized) ?? false;
122
- }
123
82
  async function enrichHerdrAgentPanes(client, panes) {
124
83
  return Promise.all(panes.map(async (pane)=>{
125
84
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/herdr/HerdrAgentDiscovery.ts"],"sourcesContent":["import type { AgentInfo, AgentType } from \"../../adapters/AgentAdapter.js\";\nimport { HerdrCliClient, type HerdrCommandRunner } from \"./HerdrCliClient.js\";\nimport type { HerdrRuntimeRef } from \"./HerdrRuntimeRef.js\";\n\nexport interface HerdrAgentPane {\n agent: string;\n agentSessionId?: string;\n cwd?: string;\n paneId: string;\n workspaceId?: string;\n tabId?: string;\n foregroundPids?: number[];\n shellPid?: number;\n}\n\nexport async function fetchHerdrAgentPanes(runner?: HerdrCommandRunner): Promise<HerdrAgentPane[]> {\n const client = new HerdrCliClient(runner);\n const response = await client.runJson([\"pane\", \"list\"]);\n return enrichHerdrAgentPanes(client, extractHerdrAgentPanes(response));\n}\n\nexport function extractHerdrAgentPanes(value: unknown): HerdrAgentPane[] {\n const snapshot = getObject(value, [\"result\", \"snapshot\"]);\n const rawPanes = getArray(value, [\"result\", \"panes\"]) ?? snapshot?.agents;\n if (!Array.isArray(rawPanes)) return [];\n\n const panes: HerdrAgentPane[] = [];\n for (const rawPane of rawPanes) {\n if (!rawPane || typeof rawPane !== \"object\" || Array.isArray(rawPane)) continue;\n const pane = rawPane as Record<string, unknown>;\n const agent = nonEmptyString(pane.agent);\n const paneId = nonEmptyString(pane.pane_id);\n if (!agent || !paneId) continue;\n\n const session = getObject(pane, [\"agent_session\"]);\n const agentSessionId = nonEmptyString(session?.value);\n const cwd = nonEmptyString(pane.cwd);\n const workspaceId = nonEmptyString(pane.workspace_id);\n const tabId = nonEmptyString(pane.tab_id);\n\n panes.push({\n agent,\n paneId,\n ...(agentSessionId ? { agentSessionId } : {}),\n ...(cwd ? { cwd } : {}),\n ...(workspaceId ? { workspaceId } : {}),\n ...(tabId ? { tabId } : {}),\n });\n }\n\n return panes;\n}\n\nexport function findMatchingHerdrPane(\n agent: Pick<AgentInfo, \"type\" | \"projectPath\" | \"sessionId\" | \"pid\">,\n panes: readonly HerdrAgentPane[],\n): HerdrAgentPane | null {\n if (agent.sessionId) {\n const sessionMatches = panes.filter((pane) => pane.agentSessionId === agent.sessionId);\n if (sessionMatches.length === 1) return sessionMatches[0]!;\n if (sessionMatches.length > 1) return null;\n }\n\n const foregroundPidMatches = panes.filter((pane) => pane.foregroundPids?.includes(agent.pid));\n if (foregroundPidMatches.length === 1) return foregroundPidMatches[0]!;\n if (foregroundPidMatches.length > 1) return null;\n\n const shellPidMatches = panes.filter((pane) => pane.shellPid === agent.pid);\n if (shellPidMatches.length === 1) return shellPidMatches[0]!;\n if (shellPidMatches.length > 1) return null;\n\n const cwdMatches = panes.filter(\n (pane) => pane.cwd === agent.projectPath && herdrAgentMatchesType(pane.agent, agent.type),\n );\n return cwdMatches.length === 1 ? cwdMatches[0]! : null;\n}\n\nexport function herdrPaneToRuntimeRef(pane: HerdrAgentPane, agentName: string): HerdrRuntimeRef {\n return {\n session: \"default\",\n paneId: pane.paneId,\n agentName,\n ...(pane.workspaceId ? { workspaceId: pane.workspaceId } : {}),\n ...(pane.tabId ? { tabId: pane.tabId } : {}),\n };\n}\n\nfunction herdrAgentMatchesType(herdrAgent: string, agentType: AgentType): boolean {\n const normalized = herdrAgent.toLowerCase();\n const candidates: Record<AgentType, readonly string[]> = {\n claude: [\"claude\"],\n codex: [\"codex\"],\n copilot: [\"copilot\"],\n gemini_cli: [\"gemini\", \"gemini_cli\"],\n grok_cli: [\"grok\", \"grok_cli\"],\n antigravity_cli: [\"agy\", \"antigravity\", \"antigravity_cli\"],\n kiro: [\"kiro\", \"kiro_cli\", \"kiro-cli\"],\n opencode: [\"opencode\"],\n pi: [\"pi\"],\n other: [\"other\"],\n };\n return candidates[agentType]?.includes(normalized) ?? false;\n}\n\nasync function enrichHerdrAgentPanes(\n client: HerdrCliClient,\n panes: HerdrAgentPane[],\n): Promise<HerdrAgentPane[]> {\n return Promise.all(\n panes.map(async (pane) => {\n try {\n const response = await client.runJson([\"pane\", \"process-info\", \"--pane\", pane.paneId]);\n return {\n ...pane,\n ...extractPaneProcessIds(response),\n };\n } catch {\n return pane;\n }\n }),\n );\n}\n\nfunction extractPaneProcessIds(\n value: unknown,\n): Pick<HerdrAgentPane, \"foregroundPids\" | \"shellPid\"> {\n const processInfo = getObject(value, [\"result\", \"process_info\"]);\n if (!processInfo) return {};\n\n const foregroundProcesses = processInfo.foreground_processes;\n const foregroundPids: number[] = [];\n if (Array.isArray(foregroundProcesses)) {\n for (const foregroundProcess of foregroundProcesses) {\n if (\n !foregroundProcess ||\n typeof foregroundProcess !== \"object\" ||\n Array.isArray(foregroundProcess)\n )\n continue;\n const pid = positiveIntegerOrNull((foregroundProcess as { pid?: unknown }).pid);\n if (pid !== null) foregroundPids.push(pid);\n }\n }\n const shellPid = positiveIntegerOrNull(processInfo.shell_pid);\n\n return {\n ...(foregroundPids.length > 0 ? { foregroundPids } : {}),\n ...(shellPid !== null ? { shellPid } : {}),\n };\n}\n\nfunction getArray(value: unknown, path: string[]): unknown[] | null {\n let current = value;\n for (const part of path) {\n if (!current || typeof current !== \"object\" || Array.isArray(current) || !(part in current)) {\n return null;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return Array.isArray(current) ? current : null;\n}\n\nfunction getObject(value: unknown, path: string[]): Record<string, unknown> | null {\n let current = value;\n for (const part of path) {\n if (!current || typeof current !== \"object\" || Array.isArray(current) || !(part in current)) {\n return null;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return current && typeof current === \"object\" && !Array.isArray(current)\n ? (current as Record<string, unknown>)\n : null;\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction positiveIntegerOrNull(value: unknown): number | null {\n return typeof value === \"number\" && Number.isInteger(value) && value > 0 ? value : null;\n}\n"],"names":["HerdrCliClient","fetchHerdrAgentPanes","runner","client","response","runJson","enrichHerdrAgentPanes","extractHerdrAgentPanes","value","snapshot","getObject","rawPanes","getArray","agents","Array","isArray","panes","rawPane","pane","agent","nonEmptyString","paneId","pane_id","session","agentSessionId","cwd","workspaceId","workspace_id","tabId","tab_id","push","findMatchingHerdrPane","sessionId","sessionMatches","filter","length","foregroundPidMatches","foregroundPids","includes","pid","shellPidMatches","shellPid","cwdMatches","projectPath","herdrAgentMatchesType","type","herdrPaneToRuntimeRef","agentName","herdrAgent","agentType","normalized","toLowerCase","candidates","claude","codex","copilot","gemini_cli","grok_cli","antigravity_cli","kiro","opencode","pi","other","Promise","all","map","extractPaneProcessIds","processInfo","foregroundProcesses","foreground_processes","foregroundProcess","positiveIntegerOrNull","shell_pid","path","current","part","trim","undefined","Number","isInteger"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/runtime/herdr/HerdrAgentDiscovery.ts"],"sourcesContent":["import type { AgentInfo } from \"../../adapters/AgentAdapter.js\";\nimport { runtimeAgentMatchesHarness } from \"../../harnesses/runtimeProfiles.js\";\nimport { HerdrCliClient, type HerdrCommandRunner } from \"./HerdrCliClient.js\";\nimport type { HerdrRuntimeRef } from \"./HerdrRuntimeRef.js\";\n\nexport interface HerdrAgentPane {\n agent: string;\n agentSessionId?: string;\n cwd?: string;\n paneId: string;\n workspaceId?: string;\n tabId?: string;\n foregroundPids?: number[];\n shellPid?: number;\n}\n\nexport async function fetchHerdrAgentPanes(runner?: HerdrCommandRunner): Promise<HerdrAgentPane[]> {\n const client = new HerdrCliClient(runner);\n const response = await client.runJson([\"pane\", \"list\"]);\n return enrichHerdrAgentPanes(client, extractHerdrAgentPanes(response));\n}\n\nexport function extractHerdrAgentPanes(value: unknown): HerdrAgentPane[] {\n const snapshot = getObject(value, [\"result\", \"snapshot\"]);\n const rawPanes = getArray(value, [\"result\", \"panes\"]) ?? snapshot?.agents;\n if (!Array.isArray(rawPanes)) return [];\n\n const panes: HerdrAgentPane[] = [];\n for (const rawPane of rawPanes) {\n if (!rawPane || typeof rawPane !== \"object\" || Array.isArray(rawPane)) continue;\n const pane = rawPane as Record<string, unknown>;\n const agent = nonEmptyString(pane.agent);\n const paneId = nonEmptyString(pane.pane_id);\n if (!agent || !paneId) continue;\n\n const session = getObject(pane, [\"agent_session\"]);\n const agentSessionId = nonEmptyString(session?.value);\n const cwd = nonEmptyString(pane.cwd);\n const workspaceId = nonEmptyString(pane.workspace_id);\n const tabId = nonEmptyString(pane.tab_id);\n\n panes.push({\n agent,\n paneId,\n ...(agentSessionId ? { agentSessionId } : {}),\n ...(cwd ? { cwd } : {}),\n ...(workspaceId ? { workspaceId } : {}),\n ...(tabId ? { tabId } : {}),\n });\n }\n\n return panes;\n}\n\nexport function findMatchingHerdrPane(\n agent: Pick<AgentInfo, \"type\" | \"projectPath\" | \"sessionId\" | \"pid\">,\n panes: readonly HerdrAgentPane[],\n): HerdrAgentPane | null {\n if (agent.sessionId) {\n const sessionMatches = panes.filter((pane) => pane.agentSessionId === agent.sessionId);\n if (sessionMatches.length === 1) return sessionMatches[0]!;\n if (sessionMatches.length > 1) return null;\n }\n\n const foregroundPidMatches = panes.filter((pane) => pane.foregroundPids?.includes(agent.pid));\n if (foregroundPidMatches.length === 1) return foregroundPidMatches[0]!;\n if (foregroundPidMatches.length > 1) return null;\n\n const shellPidMatches = panes.filter((pane) => pane.shellPid === agent.pid);\n if (shellPidMatches.length === 1) return shellPidMatches[0]!;\n if (shellPidMatches.length > 1) return null;\n\n const cwdMatches = panes.filter(\n (pane) => pane.cwd === agent.projectPath && runtimeAgentMatchesHarness(pane.agent, agent.type),\n );\n return cwdMatches.length === 1 ? cwdMatches[0]! : null;\n}\n\nexport function herdrPaneToRuntimeRef(pane: HerdrAgentPane, agentName: string): HerdrRuntimeRef {\n return {\n session: \"default\",\n paneId: pane.paneId,\n agentName,\n ...(pane.workspaceId ? { workspaceId: pane.workspaceId } : {}),\n ...(pane.tabId ? { tabId: pane.tabId } : {}),\n };\n}\n\nasync function enrichHerdrAgentPanes(\n client: HerdrCliClient,\n panes: HerdrAgentPane[],\n): Promise<HerdrAgentPane[]> {\n return Promise.all(\n panes.map(async (pane) => {\n try {\n const response = await client.runJson([\"pane\", \"process-info\", \"--pane\", pane.paneId]);\n return {\n ...pane,\n ...extractPaneProcessIds(response),\n };\n } catch {\n return pane;\n }\n }),\n );\n}\n\nfunction extractPaneProcessIds(\n value: unknown,\n): Pick<HerdrAgentPane, \"foregroundPids\" | \"shellPid\"> {\n const processInfo = getObject(value, [\"result\", \"process_info\"]);\n if (!processInfo) return {};\n\n const foregroundProcesses = processInfo.foreground_processes;\n const foregroundPids: number[] = [];\n if (Array.isArray(foregroundProcesses)) {\n for (const foregroundProcess of foregroundProcesses) {\n if (\n !foregroundProcess ||\n typeof foregroundProcess !== \"object\" ||\n Array.isArray(foregroundProcess)\n )\n continue;\n const pid = positiveIntegerOrNull((foregroundProcess as { pid?: unknown }).pid);\n if (pid !== null) foregroundPids.push(pid);\n }\n }\n const shellPid = positiveIntegerOrNull(processInfo.shell_pid);\n\n return {\n ...(foregroundPids.length > 0 ? { foregroundPids } : {}),\n ...(shellPid !== null ? { shellPid } : {}),\n };\n}\n\nfunction getArray(value: unknown, path: string[]): unknown[] | null {\n let current = value;\n for (const part of path) {\n if (!current || typeof current !== \"object\" || Array.isArray(current) || !(part in current)) {\n return null;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return Array.isArray(current) ? current : null;\n}\n\nfunction getObject(value: unknown, path: string[]): Record<string, unknown> | null {\n let current = value;\n for (const part of path) {\n if (!current || typeof current !== \"object\" || Array.isArray(current) || !(part in current)) {\n return null;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return current && typeof current === \"object\" && !Array.isArray(current)\n ? (current as Record<string, unknown>)\n : null;\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction positiveIntegerOrNull(value: unknown): number | null {\n return typeof value === \"number\" && Number.isInteger(value) && value > 0 ? value : null;\n}\n"],"names":["runtimeAgentMatchesHarness","HerdrCliClient","fetchHerdrAgentPanes","runner","client","response","runJson","enrichHerdrAgentPanes","extractHerdrAgentPanes","value","snapshot","getObject","rawPanes","getArray","agents","Array","isArray","panes","rawPane","pane","agent","nonEmptyString","paneId","pane_id","session","agentSessionId","cwd","workspaceId","workspace_id","tabId","tab_id","push","findMatchingHerdrPane","sessionId","sessionMatches","filter","length","foregroundPidMatches","foregroundPids","includes","pid","shellPidMatches","shellPid","cwdMatches","projectPath","type","herdrPaneToRuntimeRef","agentName","Promise","all","map","extractPaneProcessIds","processInfo","foregroundProcesses","foreground_processes","foregroundProcess","positiveIntegerOrNull","shell_pid","path","current","part","trim","undefined","Number","isInteger"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TmuxManager } from "../../terminal/TmuxManager.js";
1
+ import type { TmuxManager } from "./TmuxManager.js";
2
2
  export declare const DEFAULT_PID_POLL_INTERVAL_MS = 500;
3
3
  export declare const DEFAULT_PID_POLL_TIMEOUT_MS = 15000;
4
4
  export declare function pollForPid(tmux: Pick<TmuxManager, "findAgentPid">, session: string, matches: (psCommand: string) => boolean, intervalMs: number, timeoutMs: number): Promise<number | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"PidPolling.d.ts","sourceRoot":"","sources":["../../../src/runtime/tmux/PidPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAGlD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EACvC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBxB"}
1
+ {"version":3,"file":"PidPolling.d.ts","sourceRoot":"","sources":["../../../src/runtime/tmux/PidPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAGlD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EACvC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBxB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtime/tmux/PidPolling.ts"],"sourcesContent":["import type { TmuxManager } from \"../../terminal/TmuxManager.js\";\n\nexport const DEFAULT_PID_POLL_INTERVAL_MS = 500;\nexport const DEFAULT_PID_POLL_TIMEOUT_MS = 15_000;\nconst REQUIRED_STABLE_PID_POLLS = 5;\n\nexport async function pollForPid(\n tmux: Pick<TmuxManager, \"findAgentPid\">,\n session: string,\n matches: (psCommand: string) => boolean,\n intervalMs: number,\n timeoutMs: number,\n): Promise<number | null> {\n const deadline = Date.now() + timeoutMs;\n let candidatePid: number | null = null;\n let stablePolls = 0;\n\n while (Date.now() < deadline) {\n const pid = await tmux.findAgentPid(session, matches);\n if (pid !== null) {\n if (pid === candidatePid) {\n stablePolls += 1;\n } else {\n candidatePid = pid;\n stablePolls = 1;\n }\n\n if (stablePolls >= REQUIRED_STABLE_PID_POLLS) return pid;\n }\n await new Promise((resolve) => setTimeout(resolve, intervalMs));\n }\n\n return null;\n}\n"],"names":["DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","REQUIRED_STABLE_PID_POLLS","pollForPid","tmux","session","matches","intervalMs","timeoutMs","deadline","Date","now","candidatePid","stablePolls","pid","findAgentPid","Promise","resolve","setTimeout"],"mappings":"AAEA,OAAO,MAAMA,+BAA+B,IAAI;AAChD,OAAO,MAAMC,8BAA8B,OAAO;AAClD,MAAMC,4BAA4B;AAElC,OAAO,eAAeC,WACpBC,IAAuC,EACvCC,OAAe,EACfC,OAAuC,EACvCC,UAAkB,EAClBC,SAAiB;IAEjB,MAAMC,WAAWC,KAAKC,GAAG,KAAKH;IAC9B,IAAII,eAA8B;IAClC,IAAIC,cAAc;IAElB,MAAOH,KAAKC,GAAG,KAAKF,SAAU;QAC5B,MAAMK,MAAM,MAAMV,KAAKW,YAAY,CAACV,SAASC;QAC7C,IAAIQ,QAAQ,MAAM;YAChB,IAAIA,QAAQF,cAAc;gBACxBC,eAAe;YACjB,OAAO;gBACLD,eAAeE;gBACfD,cAAc;YAChB;YAEA,IAAIA,eAAeX,2BAA2B,OAAOY;QACvD;QACA,MAAM,IAAIE,QAAQ,CAACC,UAAYC,WAAWD,SAASV;IACrD;IAEA,OAAO;AACT"}
1
+ {"version":3,"sources":["../../../src/runtime/tmux/PidPolling.ts"],"sourcesContent":["import type { TmuxManager } from \"./TmuxManager.js\";\n\nexport const DEFAULT_PID_POLL_INTERVAL_MS = 500;\nexport const DEFAULT_PID_POLL_TIMEOUT_MS = 15_000;\nconst REQUIRED_STABLE_PID_POLLS = 5;\n\nexport async function pollForPid(\n tmux: Pick<TmuxManager, \"findAgentPid\">,\n session: string,\n matches: (psCommand: string) => boolean,\n intervalMs: number,\n timeoutMs: number,\n): Promise<number | null> {\n const deadline = Date.now() + timeoutMs;\n let candidatePid: number | null = null;\n let stablePolls = 0;\n\n while (Date.now() < deadline) {\n const pid = await tmux.findAgentPid(session, matches);\n if (pid !== null) {\n if (pid === candidatePid) {\n stablePolls += 1;\n } else {\n candidatePid = pid;\n stablePolls = 1;\n }\n\n if (stablePolls >= REQUIRED_STABLE_PID_POLLS) return pid;\n }\n await new Promise((resolve) => setTimeout(resolve, intervalMs));\n }\n\n return null;\n}\n"],"names":["DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","REQUIRED_STABLE_PID_POLLS","pollForPid","tmux","session","matches","intervalMs","timeoutMs","deadline","Date","now","candidatePid","stablePolls","pid","findAgentPid","Promise","resolve","setTimeout"],"mappings":"AAEA,OAAO,MAAMA,+BAA+B,IAAI;AAChD,OAAO,MAAMC,8BAA8B,OAAO;AAClD,MAAMC,4BAA4B;AAElC,OAAO,eAAeC,WACpBC,IAAuC,EACvCC,OAAe,EACfC,OAAuC,EACvCC,UAAkB,EAClBC,SAAiB;IAEjB,MAAMC,WAAWC,KAAKC,GAAG,KAAKH;IAC9B,IAAII,eAA8B;IAClC,IAAIC,cAAc;IAElB,MAAOH,KAAKC,GAAG,KAAKF,SAAU;QAC5B,MAAMK,MAAM,MAAMV,KAAKW,YAAY,CAACV,SAASC;QAC7C,IAAIQ,QAAQ,MAAM;YAChB,IAAIA,QAAQF,cAAc;gBACxBC,eAAe;YACjB,OAAO;gBACLD,eAAeE;gBACfD,cAAc;YAChB;YAEA,IAAIA,eAAeX,2BAA2B,OAAOY;QACvD;QACA,MAAM,IAAIE,QAAQ,CAACC,UAAYC,WAAWD,SAASV;IACrD;IAEA,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- import { TmuxManager } from "../../terminal/TmuxManager.js";
1
+ import { TmuxManager } from "./TmuxManager.js";
2
2
  import type { AgentRuntimeAvailability, InteractiveAgentRuntime, RuntimeFocusInput, RuntimeSendDeps, RuntimeSendInput, RuntimeStartInput, RuntimeStartResult, RuntimeStopInput } from "../types.js";
3
3
  export declare class TmuxAgentRuntime implements InteractiveAgentRuntime {
4
4
  readonly provider: "tmux";