@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.
- package/dist/AgentManager.d.ts +9 -8
- package/dist/AgentManager.d.ts.map +1 -1
- package/dist/AgentManager.js +23 -4
- package/dist/AgentManager.js.map +1 -1
- package/dist/__tests__/AgentManager.test.js +151 -3
- package/dist/__tests__/AgentManager.test.js.map +1 -1
- package/dist/__tests__/adapters/IncrementalSessionRefresh.test.js +486 -0
- package/dist/__tests__/adapters/IncrementalSessionRefresh.test.js.map +1 -0
- package/dist/__tests__/adapters/adapterProcessImports.test.js +52 -0
- package/dist/__tests__/adapters/adapterProcessImports.test.js.map +1 -0
- package/dist/__tests__/adapters/adapterSnapshotCandidates.test.js +247 -0
- package/dist/__tests__/adapters/adapterSnapshotCandidates.test.js.map +1 -0
- package/dist/__tests__/capacity/anthropic.test.js +115 -0
- package/dist/__tests__/capacity/anthropic.test.js.map +1 -0
- package/dist/__tests__/capacity/boundaries.test.js +45 -0
- package/dist/__tests__/capacity/boundaries.test.js.map +1 -0
- package/dist/__tests__/capacity/claude.test.js +3 -3
- package/dist/__tests__/capacity/claude.test.js.map +1 -1
- package/dist/__tests__/capacity/codex.test.js +3 -1
- package/dist/__tests__/capacity/codex.test.js.map +1 -1
- package/dist/__tests__/capacity/openai.test.js +32 -25
- package/dist/__tests__/capacity/openai.test.js.map +1 -1
- package/dist/__tests__/capacity/wham.test.js +1 -1
- package/dist/__tests__/capacity/wham.test.js.map +1 -1
- package/dist/__tests__/capacity/zai.test.js +7 -8
- package/dist/__tests__/capacity/zai.test.js.map +1 -1
- package/dist/__tests__/harnesses/BoundedSummarySkip.test.js +568 -0
- package/dist/__tests__/harnesses/BoundedSummarySkip.test.js.map +1 -0
- package/dist/__tests__/harnesses/SessionSummaryEquivalence.test.js +1089 -0
- package/dist/__tests__/harnesses/SessionSummaryEquivalence.test.js.map +1 -0
- package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.subprocess.test.js +143 -0
- package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.subprocess.test.js.map +1 -0
- package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.test.js +462 -0
- package/dist/__tests__/harnesses/antigravity/AntigravityCliAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/builtinAdapters.test.js +33 -0
- package/dist/__tests__/harnesses/builtinAdapters.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/ClaudeAgentMapper.test.js +79 -0
- package/dist/__tests__/harnesses/claude/ClaudeAgentMapper.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/ClaudeCodeAdapter.test.js +1881 -0
- package/dist/__tests__/harnesses/claude/ClaudeCodeAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/ClaudeSessionLocator.test.js +425 -0
- package/dist/__tests__/harnesses/claude/ClaudeSessionLocator.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/ClaudeSessionParser.test.js +314 -0
- package/dist/__tests__/harnesses/claude/ClaudeSessionParser.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudeCliProbe.test.js +49 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudeCliProbe.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.js +76 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgentService.test.js +173 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgentService.test.js.map +1 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.js +181 -0
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/CodexAdapter.test.js +685 -0
- package/dist/__tests__/harnesses/codex/CodexAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/CodexSessionLocator.test.js +463 -0
- package/dist/__tests__/harnesses/codex/CodexSessionLocator.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/CodexSessionMapping.test.js +86 -0
- package/dist/__tests__/harnesses/codex/CodexSessionMapping.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/CodexSessionParser.test.js +254 -0
- package/dist/__tests__/harnesses/codex/CodexSessionParser.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/durable/CodexCliProbe.test.js +121 -0
- package/dist/__tests__/harnesses/codex/durable/CodexCliProbe.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/durable/CodexDurableAgentRepository.test.js +84 -0
- package/dist/__tests__/harnesses/codex/durable/CodexDurableAgentRepository.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.js +128 -0
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.js +246 -0
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.js.map +1 -0
- package/dist/__tests__/harnesses/codex/durable/CodexPrintRunner.test.js +384 -0
- package/dist/__tests__/harnesses/codex/durable/CodexPrintRunner.test.js.map +1 -0
- package/dist/__tests__/harnesses/copilot/CopilotAdapter.test.js +659 -0
- package/dist/__tests__/harnesses/copilot/CopilotAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/copilot/CopilotRefreshIO.test.js +290 -0
- package/dist/__tests__/harnesses/copilot/CopilotRefreshIO.test.js.map +1 -0
- package/dist/__tests__/harnesses/gemini/GeminiCliAdapter.test.js +1443 -0
- package/dist/__tests__/harnesses/gemini/GeminiCliAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/gemini/GeminiSessionJsonl.test.js +491 -0
- package/dist/__tests__/harnesses/gemini/GeminiSessionJsonl.test.js.map +1 -0
- package/dist/__tests__/harnesses/gemini/GeminiSessionLocator.test.js +399 -0
- package/dist/__tests__/harnesses/gemini/GeminiSessionLocator.test.js.map +1 -0
- package/dist/__tests__/harnesses/grok/GrokAgentMapper.test.js +56 -0
- package/dist/__tests__/harnesses/grok/GrokAgentMapper.test.js.map +1 -0
- package/dist/__tests__/harnesses/grok/GrokCliAdapter.test.js +421 -0
- package/dist/__tests__/harnesses/grok/GrokCliAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/grok/GrokIncrementalRefresh.test.js +167 -0
- package/dist/__tests__/harnesses/grok/GrokIncrementalRefresh.test.js.map +1 -0
- package/dist/__tests__/harnesses/grok/GrokSessionLocator.test.js +133 -0
- package/dist/__tests__/harnesses/grok/GrokSessionLocator.test.js.map +1 -0
- package/dist/__tests__/harnesses/grok/GrokSessionParser.test.js +301 -0
- package/dist/__tests__/harnesses/grok/GrokSessionParser.test.js.map +1 -0
- package/dist/__tests__/harnesses/kiro/KiroAdapter.test.js +662 -0
- package/dist/__tests__/harnesses/kiro/KiroAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeAdapter.test.js +213 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeAgentMapper.test.js +89 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeAgentMapper.test.js.map +1 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeSessionLocator.test.js +94 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeSessionLocator.test.js.map +1 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeSessionParser.test.js +147 -0
- package/dist/__tests__/harnesses/opencode/OpenCodeSessionParser.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/PiAdapter.test.js +367 -0
- package/dist/__tests__/harnesses/pi/PiAdapter.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/PiDiscoveryIO.test.js +382 -0
- package/dist/__tests__/harnesses/pi/PiDiscoveryIO.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/PiSessionParser.test.js +416 -0
- package/dist/__tests__/harnesses/pi/PiSessionParser.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/PiSessionTracker.test.js +108 -0
- package/dist/__tests__/harnesses/pi/PiSessionTracker.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/durable/PiCliProbe.test.js +70 -0
- package/dist/__tests__/harnesses/pi/durable/PiCliProbe.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/durable/PiDurableAgentRepository.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/durable/PiPrintAgentService.test.js +192 -0
- package/dist/__tests__/harnesses/pi/durable/PiPrintAgentService.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/durable/PiPrintProtocol.test.js +119 -0
- package/dist/__tests__/harnesses/pi/durable/PiPrintProtocol.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/durable/PiPrintRunner.test.js +382 -0
- package/dist/__tests__/harnesses/pi/durable/PiPrintRunner.test.js.map +1 -0
- package/dist/__tests__/harnesses/pi/durable/PiStreamParser.test.js +34 -0
- package/dist/__tests__/harnesses/pi/durable/PiStreamParser.test.js.map +1 -0
- package/dist/__tests__/harnesses/readiness/AgentReadiness.test.js +342 -0
- package/dist/__tests__/harnesses/readiness/AgentReadiness.test.js.map +1 -0
- package/dist/__tests__/harnesses/runtimeProfiles.test.js +89 -0
- package/dist/__tests__/harnesses/runtimeProfiles.test.js.map +1 -0
- package/dist/__tests__/print/DurableAgent.test.js +4 -6
- package/dist/__tests__/print/DurableAgent.test.js.map +1 -1
- package/dist/__tests__/print/DurableAgentRepository.test.js +1 -12
- package/dist/__tests__/print/DurableAgentRepository.test.js.map +1 -1
- package/dist/__tests__/runtime/ManagedAgentRuntime.test.js +49 -0
- package/dist/__tests__/runtime/ManagedAgentRuntime.test.js.map +1 -1
- package/dist/__tests__/terminal/TmuxManager.test.js +1 -1
- package/dist/__tests__/terminal/TmuxManager.test.js.map +1 -1
- package/dist/__tests__/utils/IncrementalJsonlSummary.test.js +650 -0
- package/dist/__tests__/utils/IncrementalJsonlSummary.test.js.map +1 -0
- package/dist/__tests__/utils/conversationTail.bench.test.js +258 -0
- package/dist/__tests__/utils/conversationTail.bench.test.js.map +1 -0
- package/dist/__tests__/utils/conversationTailParity.test.js +588 -0
- package/dist/__tests__/utils/conversationTailParity.test.js.map +1 -0
- package/dist/__tests__/utils/jsonlTail.test.js +360 -0
- package/dist/__tests__/utils/jsonlTail.test.js.map +1 -0
- package/dist/__tests__/utils/matchingConstants.test.js +35 -0
- package/dist/__tests__/utils/matchingConstants.test.js.map +1 -0
- package/dist/__tests__/utils/process.test.js +436 -2
- package/dist/__tests__/utils/process.test.js.map +1 -1
- package/dist/adapters/AgentAdapter.d.ts +25 -6
- package/dist/adapters/AgentAdapter.d.ts.map +1 -1
- package/dist/adapters/AgentAdapter.js +12 -3
- package/dist/adapters/AgentAdapter.js.map +1 -1
- package/dist/capacity/index.d.ts +9 -19
- package/dist/capacity/index.d.ts.map +1 -1
- package/dist/capacity/index.js +11 -4
- package/dist/capacity/index.js.map +1 -1
- package/dist/capacity/providers/anthropic.d.ts +9 -0
- package/dist/capacity/providers/anthropic.d.ts.map +1 -0
- package/dist/capacity/providers/anthropic.js +153 -0
- package/dist/capacity/providers/anthropic.js.map +1 -0
- package/dist/capacity/providers/openai-platform.d.ts +14 -0
- package/dist/capacity/providers/openai-platform.d.ts.map +1 -0
- package/dist/capacity/providers/openai-platform.js +120 -0
- package/dist/capacity/providers/openai-platform.js.map +1 -0
- package/dist/capacity/providers/openai-subscription.d.ts +20 -0
- package/dist/capacity/providers/openai-subscription.d.ts.map +1 -0
- package/dist/capacity/providers/openai-subscription.js +129 -0
- package/dist/capacity/providers/openai-subscription.js.map +1 -0
- package/dist/capacity/providers/zai.d.ts +8 -0
- package/dist/capacity/providers/zai.d.ts.map +1 -0
- package/dist/capacity/providers/zai.js +158 -0
- package/dist/capacity/providers/zai.js.map +1 -0
- package/dist/capacity/sources/claude.d.ts +9 -0
- package/dist/capacity/sources/claude.d.ts.map +1 -0
- package/dist/capacity/sources/claude.js +17 -0
- package/dist/capacity/sources/claude.js.map +1 -0
- package/dist/capacity/sources/codex.d.ts +32 -0
- package/dist/capacity/sources/codex.d.ts.map +1 -0
- package/dist/capacity/sources/codex.js +227 -0
- package/dist/capacity/sources/codex.js.map +1 -0
- package/dist/capacity/sources/pi.d.ts +30 -0
- package/dist/capacity/sources/pi.d.ts.map +1 -0
- package/dist/capacity/sources/pi.js +81 -0
- package/dist/capacity/sources/pi.js.map +1 -0
- package/dist/capacity/types.d.ts +2 -0
- package/dist/capacity/types.d.ts.map +1 -1
- package/dist/capacity/types.js +1 -1
- package/dist/capacity/types.js.map +1 -1
- package/dist/harnesses/antigravity/AntigravityAgentMapper.d.ts +13 -0
- package/dist/harnesses/antigravity/AntigravityAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/antigravity/AntigravityAgentMapper.js +30 -0
- package/dist/harnesses/antigravity/AntigravityAgentMapper.js.map +1 -0
- package/dist/harnesses/antigravity/AntigravityCliAdapter.d.ts +32 -0
- package/dist/harnesses/antigravity/AntigravityCliAdapter.d.ts.map +1 -0
- package/dist/harnesses/antigravity/AntigravityCliAdapter.js +97 -0
- package/dist/harnesses/antigravity/AntigravityCliAdapter.js.map +1 -0
- package/dist/harnesses/antigravity/AntigravitySessionLocator.d.ts +30 -0
- package/dist/harnesses/antigravity/AntigravitySessionLocator.d.ts.map +1 -0
- package/dist/harnesses/antigravity/AntigravitySessionLocator.js +56 -0
- package/dist/harnesses/antigravity/AntigravitySessionLocator.js.map +1 -0
- package/dist/harnesses/antigravity/AntigravitySessionParser.d.ts +75 -0
- package/dist/harnesses/antigravity/AntigravitySessionParser.d.ts.map +1 -0
- package/dist/harnesses/antigravity/AntigravitySessionParser.js +174 -0
- package/dist/harnesses/antigravity/AntigravitySessionParser.js.map +1 -0
- package/dist/harnesses/claude/ClaudeAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/claude/ClaudeAgentMapper.js +36 -0
- package/dist/harnesses/claude/ClaudeAgentMapper.js.map +1 -0
- package/dist/harnesses/claude/ClaudeCodeAdapter.d.ts +30 -0
- package/dist/harnesses/claude/ClaudeCodeAdapter.d.ts.map +1 -0
- package/dist/harnesses/claude/ClaudeCodeAdapter.js +134 -0
- package/dist/harnesses/claude/ClaudeCodeAdapter.js.map +1 -0
- package/dist/harnesses/claude/ClaudeSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/claude/ClaudeSessionLocator.js +260 -0
- package/dist/harnesses/claude/ClaudeSessionLocator.js.map +1 -0
- package/dist/harnesses/claude/ClaudeSessionParser.d.ts +148 -0
- package/dist/harnesses/claude/ClaudeSessionParser.d.ts.map +1 -0
- package/dist/harnesses/claude/ClaudeSessionParser.js +365 -0
- package/dist/harnesses/claude/ClaudeSessionParser.js.map +1 -0
- package/dist/harnesses/claude/credentials.d.ts +10 -0
- package/dist/harnesses/claude/credentials.d.ts.map +1 -0
- package/dist/harnesses/claude/credentials.js +112 -0
- package/dist/harnesses/claude/credentials.js.map +1 -0
- package/dist/harnesses/claude/durable/ClaudeCliProbe.d.ts.map +1 -0
- package/dist/harnesses/claude/durable/ClaudeCliProbe.js.map +1 -0
- package/dist/harnesses/claude/durable/ClaudePrintAgentService.d.ts.map +1 -0
- package/dist/harnesses/claude/durable/ClaudePrintAgentService.js.map +1 -0
- package/dist/harnesses/claude/durable/ClaudePrintRunner.d.ts.map +1 -0
- package/dist/harnesses/claude/durable/ClaudePrintRunner.js.map +1 -0
- package/dist/harnesses/claude/durable/ClaudeStreamParser.d.ts.map +1 -0
- package/dist/harnesses/claude/durable/ClaudeStreamParser.js.map +1 -0
- package/dist/harnesses/claude/readiness.d.ts +3 -0
- package/dist/harnesses/claude/readiness.d.ts.map +1 -0
- package/dist/harnesses/claude/readiness.js +63 -0
- package/dist/harnesses/claude/readiness.js.map +1 -0
- package/dist/harnesses/codex/CodexAdapter.d.ts +29 -0
- package/dist/harnesses/codex/CodexAdapter.d.ts.map +1 -0
- package/dist/harnesses/codex/CodexAdapter.js +290 -0
- package/dist/harnesses/codex/CodexAdapter.js.map +1 -0
- package/dist/harnesses/codex/CodexAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/codex/CodexAgentMapper.js +28 -0
- package/dist/harnesses/codex/CodexAgentMapper.js.map +1 -0
- package/dist/harnesses/codex/CodexSessionLocator.d.ts +74 -0
- package/dist/harnesses/codex/CodexSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/codex/CodexSessionLocator.js +359 -0
- package/dist/harnesses/codex/CodexSessionLocator.js.map +1 -0
- package/dist/harnesses/codex/CodexSessionMapping.d.ts.map +1 -0
- package/dist/harnesses/codex/CodexSessionMapping.js +68 -0
- package/dist/harnesses/codex/CodexSessionMapping.js.map +1 -0
- package/dist/harnesses/codex/CodexSessionParser.d.ts +89 -0
- package/dist/harnesses/codex/CodexSessionParser.d.ts.map +1 -0
- package/dist/harnesses/codex/CodexSessionParser.js +308 -0
- package/dist/harnesses/codex/CodexSessionParser.js.map +1 -0
- package/dist/harnesses/codex/credentials.d.ts +15 -0
- package/dist/harnesses/codex/credentials.d.ts.map +1 -0
- package/dist/harnesses/codex/credentials.js +58 -0
- package/dist/harnesses/codex/credentials.js.map +1 -0
- package/dist/harnesses/codex/durable/CodexCliProbe.d.ts.map +1 -0
- package/dist/harnesses/codex/durable/CodexCliProbe.js.map +1 -0
- package/dist/harnesses/codex/durable/CodexPrintAgentService.d.ts.map +1 -0
- package/dist/harnesses/codex/durable/CodexPrintAgentService.js.map +1 -0
- package/dist/harnesses/codex/durable/CodexPrintRunner.d.ts.map +1 -0
- package/dist/harnesses/codex/durable/CodexPrintRunner.js.map +1 -0
- package/dist/harnesses/codex/durable/CodexStreamParser.d.ts.map +1 -0
- package/dist/harnesses/codex/durable/CodexStreamParser.js.map +1 -0
- package/dist/harnesses/codex/readiness.d.ts +3 -0
- package/dist/harnesses/codex/readiness.d.ts.map +1 -0
- package/dist/harnesses/codex/readiness.js +60 -0
- package/dist/harnesses/codex/readiness.js.map +1 -0
- package/dist/harnesses/copilot/CopilotAdapter.d.ts +36 -0
- package/dist/harnesses/copilot/CopilotAdapter.d.ts.map +1 -0
- package/dist/harnesses/copilot/CopilotAdapter.js +128 -0
- package/dist/harnesses/copilot/CopilotAdapter.js.map +1 -0
- package/dist/harnesses/copilot/CopilotAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/copilot/CopilotAgentMapper.js +30 -0
- package/dist/harnesses/copilot/CopilotAgentMapper.js.map +1 -0
- package/dist/harnesses/copilot/CopilotSessionLocator.d.ts +42 -0
- package/dist/harnesses/copilot/CopilotSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/copilot/CopilotSessionLocator.js +126 -0
- package/dist/harnesses/copilot/CopilotSessionLocator.js.map +1 -0
- package/dist/harnesses/copilot/CopilotSessionParser.d.ts +62 -0
- package/dist/harnesses/copilot/CopilotSessionParser.d.ts.map +1 -0
- package/dist/harnesses/copilot/CopilotSessionParser.js +236 -0
- package/dist/harnesses/copilot/CopilotSessionParser.js.map +1 -0
- package/dist/harnesses/copilot/readiness.d.ts +3 -0
- package/dist/harnesses/copilot/readiness.d.ts.map +1 -0
- package/dist/harnesses/copilot/readiness.js +39 -0
- package/dist/harnesses/copilot/readiness.js.map +1 -0
- package/dist/harnesses/gemini/GeminiAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/gemini/GeminiAgentMapper.js +30 -0
- package/dist/harnesses/gemini/GeminiAgentMapper.js.map +1 -0
- package/dist/harnesses/gemini/GeminiCliAdapter.d.ts +52 -0
- package/dist/harnesses/gemini/GeminiCliAdapter.d.ts.map +1 -0
- package/dist/harnesses/gemini/GeminiCliAdapter.js +196 -0
- package/dist/harnesses/gemini/GeminiCliAdapter.js.map +1 -0
- package/dist/harnesses/gemini/GeminiSessionLocator.d.ts +72 -0
- package/dist/harnesses/gemini/GeminiSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/gemini/GeminiSessionLocator.js +300 -0
- package/dist/harnesses/gemini/GeminiSessionLocator.js.map +1 -0
- package/dist/harnesses/gemini/GeminiSessionParser.d.ts +121 -0
- package/dist/harnesses/gemini/GeminiSessionParser.d.ts.map +1 -0
- package/dist/harnesses/gemini/GeminiSessionParser.js +272 -0
- package/dist/harnesses/gemini/GeminiSessionParser.js.map +1 -0
- package/dist/harnesses/gemini/fileSignature.d.ts +8 -0
- package/dist/harnesses/gemini/fileSignature.d.ts.map +1 -0
- package/dist/harnesses/gemini/fileSignature.js +9 -0
- package/dist/harnesses/gemini/fileSignature.js.map +1 -0
- package/dist/harnesses/grok/GrokAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/grok/GrokAgentMapper.js +30 -0
- package/dist/harnesses/grok/GrokAgentMapper.js.map +1 -0
- package/dist/harnesses/grok/GrokCliAdapter.d.ts +36 -0
- package/dist/harnesses/grok/GrokCliAdapter.d.ts.map +1 -0
- package/dist/harnesses/grok/GrokCliAdapter.js +102 -0
- package/dist/harnesses/grok/GrokCliAdapter.js.map +1 -0
- package/dist/harnesses/grok/GrokSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/grok/GrokSessionLocator.js +140 -0
- package/dist/harnesses/grok/GrokSessionLocator.js.map +1 -0
- package/dist/harnesses/grok/GrokSessionParser.d.ts +87 -0
- package/dist/harnesses/grok/GrokSessionParser.d.ts.map +1 -0
- package/dist/harnesses/grok/GrokSessionParser.js +185 -0
- package/dist/harnesses/grok/GrokSessionParser.js.map +1 -0
- package/dist/harnesses/index.d.ts +7 -0
- package/dist/harnesses/index.d.ts.map +1 -0
- package/dist/harnesses/index.js +27 -0
- package/dist/harnesses/index.js.map +1 -0
- package/dist/harnesses/kiro/KiroAdapter.d.ts +31 -0
- package/dist/harnesses/kiro/KiroAdapter.d.ts.map +1 -0
- package/dist/harnesses/kiro/KiroAdapter.js +125 -0
- package/dist/harnesses/kiro/KiroAdapter.js.map +1 -0
- package/dist/harnesses/kiro/KiroAgentMapper.d.ts +13 -0
- package/dist/harnesses/kiro/KiroAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/kiro/KiroAgentMapper.js +29 -0
- package/dist/harnesses/kiro/KiroAgentMapper.js.map +1 -0
- package/dist/harnesses/kiro/KiroSessionLocator.d.ts +38 -0
- package/dist/harnesses/kiro/KiroSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/kiro/KiroSessionLocator.js +95 -0
- package/dist/harnesses/kiro/KiroSessionLocator.js.map +1 -0
- package/dist/harnesses/kiro/KiroSessionParser.d.ts +81 -0
- package/dist/harnesses/kiro/KiroSessionParser.d.ts.map +1 -0
- package/dist/harnesses/kiro/KiroSessionParser.js +251 -0
- package/dist/harnesses/kiro/KiroSessionParser.js.map +1 -0
- package/dist/harnesses/opencode/OpenCodeAdapter.d.ts +29 -0
- package/dist/harnesses/opencode/OpenCodeAdapter.d.ts.map +1 -0
- package/dist/harnesses/opencode/OpenCodeAdapter.js +86 -0
- package/dist/harnesses/opencode/OpenCodeAdapter.js.map +1 -0
- package/dist/harnesses/opencode/OpenCodeAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/opencode/OpenCodeAgentMapper.js +42 -0
- package/dist/harnesses/opencode/OpenCodeAgentMapper.js.map +1 -0
- package/dist/harnesses/opencode/OpenCodeSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/opencode/OpenCodeSessionLocator.js +118 -0
- package/dist/harnesses/opencode/OpenCodeSessionLocator.js.map +1 -0
- package/dist/harnesses/opencode/OpenCodeSessionParser.d.ts +16 -0
- package/dist/harnesses/opencode/OpenCodeSessionParser.d.ts.map +1 -0
- package/dist/harnesses/opencode/OpenCodeSessionParser.js +105 -0
- package/dist/harnesses/opencode/OpenCodeSessionParser.js.map +1 -0
- package/dist/harnesses/opencode/readiness.d.ts +3 -0
- package/dist/harnesses/opencode/readiness.d.ts.map +1 -0
- package/dist/harnesses/opencode/readiness.js +50 -0
- package/dist/harnesses/opencode/readiness.js.map +1 -0
- package/dist/harnesses/pi/PiAdapter.d.ts +30 -0
- package/dist/harnesses/pi/PiAdapter.d.ts.map +1 -0
- package/dist/harnesses/pi/PiAdapter.js +167 -0
- package/dist/harnesses/pi/PiAdapter.js.map +1 -0
- package/dist/harnesses/pi/PiAgentMapper.d.ts.map +1 -0
- package/dist/harnesses/pi/PiAgentMapper.js +30 -0
- package/dist/harnesses/pi/PiAgentMapper.js.map +1 -0
- package/dist/harnesses/pi/PiSessionLocator.d.ts +61 -0
- package/dist/harnesses/pi/PiSessionLocator.d.ts.map +1 -0
- package/dist/harnesses/pi/PiSessionLocator.js +212 -0
- package/dist/harnesses/pi/PiSessionLocator.js.map +1 -0
- package/dist/harnesses/pi/PiSessionParser.d.ts +88 -0
- package/dist/harnesses/pi/PiSessionParser.d.ts.map +1 -0
- package/dist/harnesses/pi/PiSessionParser.js +318 -0
- package/dist/harnesses/pi/PiSessionParser.js.map +1 -0
- package/dist/harnesses/pi/PiSessionTracker.d.ts.map +1 -0
- package/dist/harnesses/pi/PiSessionTracker.js +69 -0
- package/dist/harnesses/pi/PiSessionTracker.js.map +1 -0
- package/dist/harnesses/pi/credentials.d.ts +22 -0
- package/dist/harnesses/pi/credentials.d.ts.map +1 -0
- package/dist/harnesses/pi/credentials.js +98 -0
- package/dist/harnesses/pi/credentials.js.map +1 -0
- package/dist/harnesses/pi/durable/PiCliProbe.d.ts.map +1 -0
- package/dist/harnesses/pi/durable/PiCliProbe.js.map +1 -0
- package/dist/harnesses/pi/durable/PiPrintAgentService.d.ts.map +1 -0
- package/dist/harnesses/pi/durable/PiPrintAgentService.js.map +1 -0
- package/dist/harnesses/pi/durable/PiPrintProtocol.d.ts.map +1 -0
- package/dist/harnesses/pi/durable/PiPrintProtocol.js.map +1 -0
- package/dist/harnesses/pi/durable/PiPrintRunner.d.ts.map +1 -0
- package/dist/harnesses/pi/durable/PiPrintRunner.js.map +1 -0
- package/dist/harnesses/pi/durable/PiStreamParser.d.ts.map +1 -0
- package/dist/harnesses/pi/durable/PiStreamParser.js.map +1 -0
- package/dist/harnesses/pi/readiness.d.ts +3 -0
- package/dist/harnesses/pi/readiness.d.ts.map +1 -0
- package/dist/harnesses/pi/readiness.js +96 -0
- package/dist/harnesses/pi/readiness.js.map +1 -0
- package/dist/harnesses/readiness/AgentReadiness.d.ts +6 -0
- package/dist/harnesses/readiness/AgentReadiness.d.ts.map +1 -0
- package/dist/harnesses/readiness/AgentReadiness.js +68 -0
- package/dist/harnesses/readiness/AgentReadiness.js.map +1 -0
- package/dist/harnesses/readiness/checks.d.ts +31 -0
- package/dist/harnesses/readiness/checks.d.ts.map +1 -0
- package/dist/harnesses/readiness/checks.js +270 -0
- package/dist/harnesses/readiness/checks.js.map +1 -0
- package/dist/harnesses/readiness/types.d.ts +76 -0
- package/dist/harnesses/readiness/types.d.ts.map +1 -0
- package/dist/harnesses/readiness/types.js +4 -0
- package/dist/harnesses/readiness/types.js.map +1 -0
- package/dist/harnesses/runtimeProfiles.d.ts +11 -0
- package/dist/harnesses/runtimeProfiles.d.ts.map +1 -0
- package/dist/harnesses/runtimeProfiles.js +99 -0
- package/dist/harnesses/runtimeProfiles.js.map +1 -0
- package/dist/harnesses/shared.d.ts +41 -0
- package/dist/harnesses/shared.d.ts.map +1 -0
- package/dist/harnesses/shared.js +71 -0
- package/dist/harnesses/shared.js.map +1 -0
- package/dist/index.d.ts +21 -46
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -27
- package/dist/index.js.map +1 -1
- package/dist/runtime/ManagedAgentRuntime.d.ts +3 -3
- package/dist/runtime/ManagedAgentRuntime.d.ts.map +1 -1
- package/dist/runtime/ManagedAgentRuntime.js +6 -20
- package/dist/runtime/ManagedAgentRuntime.js.map +1 -1
- package/dist/runtime/herdr/HerdrAgentDiscovery.d.ts.map +1 -1
- package/dist/runtime/herdr/HerdrAgentDiscovery.js +2 -43
- package/dist/runtime/herdr/HerdrAgentDiscovery.js.map +1 -1
- package/dist/runtime/tmux/PidPolling.d.ts +1 -1
- package/dist/runtime/tmux/PidPolling.d.ts.map +1 -1
- package/dist/runtime/tmux/PidPolling.js.map +1 -1
- package/dist/runtime/tmux/TmuxAgentRuntime.d.ts +1 -1
- package/dist/runtime/tmux/TmuxAgentRuntime.d.ts.map +1 -1
- package/dist/runtime/tmux/TmuxAgentRuntime.js +1 -1
- package/dist/runtime/tmux/TmuxAgentRuntime.js.map +1 -1
- package/dist/runtime/tmux/TmuxManager.d.ts +12 -0
- package/dist/runtime/tmux/TmuxManager.d.ts.map +1 -0
- package/dist/runtime/tmux/TmuxManager.js +116 -0
- package/dist/runtime/tmux/TmuxManager.js.map +1 -0
- package/dist/runtime/types.d.ts +1 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js.map +1 -1
- package/dist/terminal/TerminalFocusManager.d.ts +4 -32
- package/dist/terminal/TerminalFocusManager.d.ts.map +1 -1
- package/dist/terminal/TerminalFocusManager.js +17 -267
- package/dist/terminal/TerminalFocusManager.js.map +1 -1
- package/dist/terminal/TtyWriter.d.ts +1 -44
- package/dist/terminal/TtyWriter.d.ts.map +1 -1
- package/dist/terminal/TtyWriter.js +11 -347
- package/dist/terminal/TtyWriter.js.map +1 -1
- package/dist/terminal/backends/index.d.ts +5 -0
- package/dist/terminal/backends/index.d.ts.map +1 -0
- package/dist/terminal/backends/index.js +19 -0
- package/dist/terminal/backends/index.js.map +1 -0
- package/dist/terminal/backends/iterm2.d.ts +3 -0
- package/dist/terminal/backends/iterm2.d.ts.map +1 -0
- package/dist/terminal/backends/iterm2.js +135 -0
- package/dist/terminal/backends/iterm2.js.map +1 -0
- package/dist/terminal/backends/shared.d.ts +7 -0
- package/dist/terminal/backends/shared.d.ts.map +1 -0
- package/dist/terminal/backends/shared.js +35 -0
- package/dist/terminal/backends/shared.js.map +1 -0
- package/dist/terminal/backends/terminal-app.d.ts +3 -0
- package/dist/terminal/backends/terminal-app.d.ts.map +1 -0
- package/dist/terminal/backends/terminal-app.js +129 -0
- package/dist/terminal/backends/terminal-app.js.map +1 -0
- package/dist/terminal/backends/tmux.d.ts +3 -0
- package/dist/terminal/backends/tmux.d.ts.map +1 -0
- package/dist/terminal/backends/tmux.js +76 -0
- package/dist/terminal/backends/tmux.js.map +1 -0
- package/dist/terminal/backends/wezterm.d.ts +3 -0
- package/dist/terminal/backends/wezterm.d.ts.map +1 -0
- package/dist/terminal/backends/wezterm.js +71 -0
- package/dist/terminal/backends/wezterm.js.map +1 -0
- package/dist/terminal/types.d.ts +21 -0
- package/dist/terminal/types.d.ts.map +1 -0
- package/dist/terminal/types.js +10 -0
- package/dist/terminal/types.js.map +1 -0
- package/dist/utils/IncrementalJsonlSummary.d.ts +100 -0
- package/dist/utils/IncrementalJsonlSummary.d.ts.map +1 -0
- package/dist/utils/IncrementalJsonlSummary.js +209 -0
- package/dist/utils/IncrementalJsonlSummary.js.map +1 -0
- package/dist/utils/jsonlTail.d.ts +73 -0
- package/dist/utils/jsonlTail.d.ts.map +1 -0
- package/dist/utils/jsonlTail.js +238 -0
- package/dist/utils/jsonlTail.js.map +1 -0
- package/dist/utils/matching.d.ts +2 -0
- package/dist/utils/matching.d.ts.map +1 -1
- package/dist/utils/matching.js +3 -2
- package/dist/utils/matching.js.map +1 -1
- package/dist/utils/matchingConstants.d.ts +15 -0
- package/dist/utils/matchingConstants.d.ts.map +1 -0
- package/dist/utils/matchingConstants.js +14 -0
- package/dist/utils/matchingConstants.js.map +1 -0
- package/dist/utils/process.d.ts +38 -2
- package/dist/utils/process.d.ts.map +1 -1
- package/dist/utils/process.js +131 -43
- package/dist/utils/process.js.map +1 -1
- package/package.json +2 -1
- package/scripts/benchmark-cold-start.mjs +350 -0
- package/src/AgentManager.ts +27 -6
- package/src/__tests__/AgentManager.test.ts +141 -3
- package/src/__tests__/adapters/IncrementalSessionRefresh.test.ts +437 -0
- package/src/__tests__/adapters/adapterProcessImports.test.ts +58 -0
- package/src/__tests__/adapters/adapterSnapshotCandidates.test.ts +243 -0
- package/src/__tests__/capacity/anthropic.test.ts +105 -0
- package/src/__tests__/capacity/boundaries.test.ts +36 -0
- package/src/__tests__/capacity/claude.test.ts +3 -8
- package/src/__tests__/capacity/codex.test.ts +12 -35
- package/src/__tests__/capacity/fixtures/openai-codex-auth.json +1 -1
- package/src/__tests__/capacity/openai.test.ts +20 -30
- package/src/__tests__/capacity/wham.test.ts +1 -1
- package/src/__tests__/capacity/zai.test.ts +27 -62
- package/src/__tests__/harnesses/BoundedSummarySkip.test.ts +496 -0
- package/src/__tests__/harnesses/SessionSummaryEquivalence.test.ts +726 -0
- package/src/__tests__/harnesses/antigravity/AntigravityCliAdapter.subprocess.test.ts +133 -0
- package/src/__tests__/harnesses/antigravity/AntigravityCliAdapter.test.ts +396 -0
- package/src/__tests__/harnesses/builtinAdapters.test.ts +33 -0
- package/src/__tests__/harnesses/claude/ClaudeAgentMapper.test.ts +84 -0
- package/src/__tests__/harnesses/claude/ClaudeCodeAdapter.test.ts +1793 -0
- package/src/__tests__/harnesses/claude/ClaudeSessionLocator.test.ts +423 -0
- package/src/__tests__/harnesses/claude/ClaudeSessionParser.test.ts +300 -0
- package/src/__tests__/harnesses/claude/durable/ClaudeCliProbe.test.ts +34 -0
- package/src/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.ts +61 -0
- package/src/__tests__/harnesses/claude/durable/ClaudePrintAgentService.test.ts +129 -0
- package/src/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.ts +152 -0
- package/src/__tests__/harnesses/codex/CodexAdapter.test.ts +652 -0
- package/src/__tests__/harnesses/codex/CodexSessionLocator.test.ts +419 -0
- package/src/__tests__/harnesses/codex/CodexSessionMapping.test.ts +63 -0
- package/src/__tests__/harnesses/codex/CodexSessionParser.test.ts +192 -0
- package/src/__tests__/harnesses/codex/durable/CodexCliProbe.test.ts +80 -0
- package/src/__tests__/harnesses/codex/durable/CodexDurableAgentRepository.test.ts +65 -0
- package/src/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.ts +104 -0
- package/src/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.ts +201 -0
- package/src/__tests__/harnesses/codex/durable/CodexPrintRunner.test.ts +299 -0
- package/src/__tests__/harnesses/copilot/CopilotAdapter.test.ts +614 -0
- package/src/__tests__/harnesses/copilot/CopilotRefreshIO.test.ts +270 -0
- package/src/__tests__/harnesses/gemini/GeminiCliAdapter.test.ts +1324 -0
- package/src/__tests__/harnesses/gemini/GeminiSessionJsonl.test.ts +402 -0
- package/src/__tests__/harnesses/gemini/GeminiSessionLocator.test.ts +396 -0
- package/src/__tests__/harnesses/grok/GrokAgentMapper.test.ts +57 -0
- package/src/__tests__/harnesses/grok/GrokCliAdapter.test.ts +376 -0
- package/src/__tests__/harnesses/grok/GrokIncrementalRefresh.test.ts +170 -0
- package/src/__tests__/harnesses/grok/GrokSessionLocator.test.ts +106 -0
- package/src/__tests__/harnesses/grok/GrokSessionParser.test.ts +230 -0
- package/src/__tests__/harnesses/kiro/KiroAdapter.test.ts +552 -0
- package/src/__tests__/harnesses/opencode/OpenCodeAdapter.test.ts +215 -0
- package/src/__tests__/harnesses/opencode/OpenCodeAgentMapper.test.ts +83 -0
- package/src/__tests__/harnesses/opencode/OpenCodeSessionLocator.test.ts +84 -0
- package/src/__tests__/harnesses/opencode/OpenCodeSessionParser.test.ts +148 -0
- package/src/__tests__/harnesses/pi/PiAdapter.test.ts +325 -0
- package/src/__tests__/harnesses/pi/PiDiscoveryIO.test.ts +337 -0
- package/src/__tests__/harnesses/pi/PiSessionParser.test.ts +280 -0
- package/src/__tests__/harnesses/pi/PiSessionTracker.test.ts +79 -0
- package/src/__tests__/harnesses/pi/durable/PiCliProbe.test.ts +50 -0
- package/src/__tests__/harnesses/pi/durable/PiPrintAgentService.test.ts +138 -0
- package/src/__tests__/harnesses/pi/durable/PiPrintProtocol.test.ts +71 -0
- package/src/__tests__/harnesses/pi/durable/PiPrintRunner.test.ts +252 -0
- package/src/__tests__/harnesses/pi/durable/PiStreamParser.test.ts +26 -0
- package/src/__tests__/harnesses/readiness/AgentReadiness.test.ts +285 -0
- package/src/__tests__/harnesses/runtimeProfiles.test.ts +110 -0
- package/src/__tests__/print/DurableAgent.test.ts +4 -13
- package/src/__tests__/print/DurableAgentRepository.test.ts +1 -13
- package/src/__tests__/runtime/ManagedAgentRuntime.test.ts +31 -1
- package/src/__tests__/terminal/TmuxManager.test.ts +1 -1
- package/src/__tests__/utils/IncrementalJsonlSummary.test.ts +414 -0
- package/src/__tests__/utils/conversationTail.bench.test.ts +193 -0
- package/src/__tests__/utils/conversationTailParity.test.ts +365 -0
- package/src/__tests__/utils/jsonlTail.test.ts +317 -0
- package/src/__tests__/utils/matchingConstants.test.ts +40 -0
- package/src/__tests__/utils/process.test.ts +254 -0
- package/src/adapters/AgentAdapter.ts +37 -14
- package/src/capacity/index.ts +29 -23
- package/src/capacity/providers/anthropic.ts +198 -0
- package/src/capacity/providers/openai-platform.ts +150 -0
- package/src/capacity/providers/openai-subscription.ts +162 -0
- package/src/capacity/providers/zai.ts +155 -0
- package/src/capacity/sources/claude.ts +30 -0
- package/src/capacity/sources/codex.ts +262 -0
- package/src/capacity/sources/pi.ts +131 -0
- package/src/capacity/types.ts +3 -0
- package/src/harnesses/antigravity/AntigravityAgentMapper.ts +34 -0
- package/src/harnesses/antigravity/AntigravityCliAdapter.ts +126 -0
- package/src/harnesses/antigravity/AntigravitySessionLocator.ts +75 -0
- package/src/harnesses/antigravity/AntigravitySessionParser.ts +252 -0
- package/src/harnesses/claude/ClaudeAgentMapper.ts +55 -0
- package/src/harnesses/claude/ClaudeCodeAdapter.ts +175 -0
- package/src/harnesses/claude/ClaudeSessionLocator.ts +358 -0
- package/src/harnesses/claude/ClaudeSessionParser.ts +524 -0
- package/src/harnesses/claude/credentials.ts +122 -0
- package/src/harnesses/claude/readiness.ts +69 -0
- package/src/harnesses/codex/CodexAdapter.ts +337 -0
- package/src/harnesses/codex/CodexAgentMapper.ts +26 -0
- package/src/harnesses/codex/CodexSessionLocator.ts +509 -0
- package/src/harnesses/codex/CodexSessionMapping.ts +89 -0
- package/src/harnesses/codex/CodexSessionParser.ts +462 -0
- package/src/harnesses/codex/credentials.ts +81 -0
- package/src/harnesses/codex/readiness.ts +72 -0
- package/src/harnesses/copilot/CopilotAdapter.ts +161 -0
- package/src/harnesses/copilot/CopilotAgentMapper.ts +27 -0
- package/src/harnesses/copilot/CopilotSessionLocator.ts +161 -0
- package/src/harnesses/copilot/CopilotSessionParser.ts +380 -0
- package/src/harnesses/copilot/readiness.ts +33 -0
- package/src/harnesses/gemini/GeminiAgentMapper.ts +27 -0
- package/src/harnesses/gemini/GeminiCliAdapter.ts +272 -0
- package/src/harnesses/gemini/GeminiSessionLocator.ts +394 -0
- package/src/harnesses/gemini/GeminiSessionParser.ts +395 -0
- package/src/harnesses/gemini/fileSignature.ts +10 -0
- package/src/harnesses/grok/GrokAgentMapper.ts +32 -0
- package/src/harnesses/grok/GrokCliAdapter.ts +126 -0
- package/src/harnesses/grok/GrokSessionLocator.ts +179 -0
- package/src/harnesses/grok/GrokSessionParser.ts +251 -0
- package/src/harnesses/index.ts +28 -0
- package/src/harnesses/kiro/KiroAdapter.ts +143 -0
- package/src/harnesses/kiro/KiroAgentMapper.ts +34 -0
- package/src/harnesses/kiro/KiroSessionLocator.ts +143 -0
- package/src/harnesses/kiro/KiroSessionParser.ts +376 -0
- package/src/harnesses/opencode/OpenCodeAdapter.ts +110 -0
- package/src/harnesses/opencode/OpenCodeAgentMapper.ts +51 -0
- package/src/harnesses/opencode/OpenCodeSessionLocator.ts +151 -0
- package/src/harnesses/opencode/OpenCodeSessionParser.ts +146 -0
- package/src/harnesses/opencode/readiness.ts +48 -0
- package/src/harnesses/pi/PiAdapter.ts +197 -0
- package/src/harnesses/pi/PiAgentMapper.ts +27 -0
- package/src/harnesses/pi/PiSessionLocator.ts +288 -0
- package/src/harnesses/pi/PiSessionParser.ts +488 -0
- package/src/harnesses/pi/PiSessionTracker.ts +87 -0
- package/src/harnesses/pi/credentials.ts +129 -0
- package/src/harnesses/pi/readiness.ts +104 -0
- package/src/harnesses/readiness/AgentReadiness.ts +87 -0
- package/src/harnesses/readiness/checks.ts +336 -0
- package/src/harnesses/readiness/types.ts +90 -0
- package/src/harnesses/runtimeProfiles.ts +103 -0
- package/src/harnesses/shared.ts +119 -0
- package/src/index.ts +20 -131
- package/src/runtime/ManagedAgentRuntime.ts +7 -22
- package/src/runtime/herdr/HerdrAgentDiscovery.ts +3 -19
- package/src/runtime/tmux/PidPolling.ts +1 -1
- package/src/runtime/tmux/TmuxAgentRuntime.ts +1 -1
- package/src/runtime/tmux/TmuxManager.ts +102 -0
- package/src/runtime/types.ts +1 -1
- package/src/terminal/TerminalFocusManager.ts +19 -292
- package/src/terminal/TtyWriter.ts +16 -336
- package/src/terminal/backends/index.ts +21 -0
- package/src/terminal/backends/iterm2.ts +126 -0
- package/src/terminal/backends/shared.ts +42 -0
- package/src/terminal/backends/terminal-app.ts +122 -0
- package/src/terminal/backends/tmux.ts +62 -0
- package/src/terminal/backends/wezterm.ts +65 -0
- package/src/terminal/types.ts +22 -0
- package/src/utils/IncrementalJsonlSummary.ts +306 -0
- package/src/utils/jsonlTail.ts +349 -0
- package/src/utils/matching.ts +3 -3
- package/src/utils/matchingConstants.ts +15 -0
- package/src/utils/process.ts +189 -45
- package/dist/__tests__/adapters/AntigravityCliAdapter.test.js +0 -381
- package/dist/__tests__/adapters/AntigravityCliAdapter.test.js.map +0 -1
- package/dist/__tests__/adapters/ClaudeCodeAdapter.test.js +0 -1853
- package/dist/__tests__/adapters/ClaudeCodeAdapter.test.js.map +0 -1
- package/dist/__tests__/adapters/CodexAdapter.test.js +0 -391
- package/dist/__tests__/adapters/CodexAdapter.test.js.map +0 -1
- package/dist/__tests__/adapters/KiroAdapter.test.js +0 -607
- package/dist/__tests__/adapters/KiroAdapter.test.js.map +0 -1
- package/dist/__tests__/durable/CodexCliProbe.test.js +0 -129
- package/dist/__tests__/durable/CodexCliProbe.test.js.map +0 -1
- package/dist/__tests__/durable/CodexDurableAgentRepository.test.js +0 -84
- package/dist/__tests__/durable/CodexDurableAgentRepository.test.js.map +0 -1
- package/dist/__tests__/durable/CodexPrintAgent.integration.test.js +0 -126
- package/dist/__tests__/durable/CodexPrintAgent.integration.test.js.map +0 -1
- package/dist/__tests__/durable/CodexPrintAgentService.test.js +0 -271
- package/dist/__tests__/durable/CodexPrintAgentService.test.js.map +0 -1
- package/dist/__tests__/durable/CodexPrintRunner.test.js +0 -393
- package/dist/__tests__/durable/CodexPrintRunner.test.js.map +0 -1
- package/dist/__tests__/print/ClaudeCliProbe.test.js +0 -49
- package/dist/__tests__/print/ClaudeCliProbe.test.js.map +0 -1
- package/dist/__tests__/print/ClaudePrintAgent.integration.test.js +0 -75
- package/dist/__tests__/print/ClaudePrintAgent.integration.test.js.map +0 -1
- package/dist/__tests__/print/ClaudePrintAgentService.test.js +0 -173
- package/dist/__tests__/print/ClaudePrintAgentService.test.js.map +0 -1
- package/dist/__tests__/print/ClaudePrintRunner.test.js +0 -181
- package/dist/__tests__/print/ClaudePrintRunner.test.js.map +0 -1
- package/dist/__tests__/providers/claude/ClaudeAgentMapper.test.js +0 -79
- package/dist/__tests__/providers/claude/ClaudeAgentMapper.test.js.map +0 -1
- package/dist/__tests__/providers/claude/ClaudeSessionLocator.test.js +0 -436
- package/dist/__tests__/providers/claude/ClaudeSessionLocator.test.js.map +0 -1
- package/dist/__tests__/providers/codex/CodexSessionLocator.test.js +0 -194
- package/dist/__tests__/providers/codex/CodexSessionLocator.test.js.map +0 -1
- package/dist/__tests__/providers/codex/CodexSessionMapping.test.js +0 -86
- package/dist/__tests__/providers/codex/CodexSessionMapping.test.js.map +0 -1
- package/dist/__tests__/providers/codex/CodexSessionParser.test.js +0 -254
- package/dist/__tests__/providers/codex/CodexSessionParser.test.js.map +0 -1
- package/dist/__tests__/providers/copilot/CopilotAdapter.test.js +0 -659
- package/dist/__tests__/providers/copilot/CopilotAdapter.test.js.map +0 -1
- package/dist/__tests__/providers/gemini/GeminiCliAdapter.test.js +0 -1434
- package/dist/__tests__/providers/gemini/GeminiCliAdapter.test.js.map +0 -1
- package/dist/__tests__/providers/grok/GrokAgentMapper.test.js +0 -56
- package/dist/__tests__/providers/grok/GrokAgentMapper.test.js.map +0 -1
- package/dist/__tests__/providers/grok/GrokCliAdapter.test.js +0 -421
- package/dist/__tests__/providers/grok/GrokCliAdapter.test.js.map +0 -1
- package/dist/__tests__/providers/grok/GrokSessionLocator.test.js +0 -133
- package/dist/__tests__/providers/grok/GrokSessionLocator.test.js.map +0 -1
- package/dist/__tests__/providers/opencode/OpenCodeAdapter.test.js +0 -213
- package/dist/__tests__/providers/opencode/OpenCodeAdapter.test.js.map +0 -1
- package/dist/__tests__/providers/opencode/OpenCodeAgentMapper.test.js +0 -89
- package/dist/__tests__/providers/opencode/OpenCodeAgentMapper.test.js.map +0 -1
- package/dist/__tests__/providers/opencode/OpenCodeSessionLocator.test.js +0 -94
- package/dist/__tests__/providers/opencode/OpenCodeSessionLocator.test.js.map +0 -1
- package/dist/__tests__/providers/opencode/OpenCodeSessionParser.test.js +0 -147
- package/dist/__tests__/providers/opencode/OpenCodeSessionParser.test.js.map +0 -1
- package/dist/__tests__/providers/pi/PiAdapter.test.js +0 -367
- package/dist/__tests__/providers/pi/PiAdapter.test.js.map +0 -1
- package/dist/__tests__/providers/pi/PiSessionParser.test.js +0 -246
- package/dist/__tests__/providers/pi/PiSessionParser.test.js.map +0 -1
- package/dist/__tests__/providers/pi/PiSessionTracker.test.js +0 -108
- package/dist/__tests__/providers/pi/PiSessionTracker.test.js.map +0 -1
- package/dist/__tests__/providers/pi/durable/PiCliProbe.test.js +0 -76
- package/dist/__tests__/providers/pi/durable/PiCliProbe.test.js.map +0 -1
- package/dist/__tests__/providers/pi/durable/PiDurableAgentRepository.test.js.map +0 -1
- package/dist/__tests__/providers/pi/durable/PiPrintAgentService.test.js +0 -202
- package/dist/__tests__/providers/pi/durable/PiPrintAgentService.test.js.map +0 -1
- package/dist/__tests__/providers/pi/durable/PiPrintProtocol.test.js +0 -119
- package/dist/__tests__/providers/pi/durable/PiPrintProtocol.test.js.map +0 -1
- package/dist/__tests__/providers/pi/durable/PiPrintRunner.test.js +0 -386
- package/dist/__tests__/providers/pi/durable/PiPrintRunner.test.js.map +0 -1
- package/dist/__tests__/providers/pi/durable/PiStreamParser.test.js +0 -34
- package/dist/__tests__/providers/pi/durable/PiStreamParser.test.js.map +0 -1
- package/dist/__tests__/readiness/AgentReadiness.test.js +0 -301
- package/dist/__tests__/readiness/AgentReadiness.test.js.map +0 -1
- package/dist/__tests__/utils/ClaudeSessionParser.test.js +0 -314
- package/dist/__tests__/utils/ClaudeSessionParser.test.js.map +0 -1
- package/dist/__tests__/utils/agents.test.js +0 -29
- package/dist/__tests__/utils/agents.test.js.map +0 -1
- package/dist/adapters/AntigravityCliAdapter.d.ts +0 -57
- package/dist/adapters/AntigravityCliAdapter.d.ts.map +0 -1
- package/dist/adapters/AntigravityCliAdapter.js +0 -273
- package/dist/adapters/AntigravityCliAdapter.js.map +0 -1
- package/dist/adapters/KiroAdapter.d.ts +0 -46
- package/dist/adapters/KiroAdapter.d.ts.map +0 -1
- package/dist/adapters/KiroAdapter.js +0 -344
- package/dist/adapters/KiroAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -12
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -12
- package/dist/adapters/index.js.map +0 -1
- package/dist/capacity/claude.d.ts +0 -17
- package/dist/capacity/claude.d.ts.map +0 -1
- package/dist/capacity/claude.js +0 -271
- package/dist/capacity/claude.js.map +0 -1
- package/dist/capacity/codex.d.ts +0 -36
- package/dist/capacity/codex.d.ts.map +0 -1
- package/dist/capacity/codex.js +0 -280
- package/dist/capacity/codex.js.map +0 -1
- package/dist/capacity/openai.d.ts +0 -48
- package/dist/capacity/openai.d.ts.map +0 -1
- package/dist/capacity/openai.js +0 -312
- package/dist/capacity/openai.js.map +0 -1
- package/dist/capacity/wham.d.ts +0 -16
- package/dist/capacity/wham.d.ts.map +0 -1
- package/dist/capacity/wham.js +0 -66
- package/dist/capacity/wham.js.map +0 -1
- package/dist/capacity/zai.d.ts +0 -14
- package/dist/capacity/zai.d.ts.map +0 -1
- package/dist/capacity/zai.js +0 -203
- package/dist/capacity/zai.js.map +0 -1
- package/dist/providers/claude/ClaudeAgentMapper.d.ts.map +0 -1
- package/dist/providers/claude/ClaudeAgentMapper.js +0 -42
- package/dist/providers/claude/ClaudeAgentMapper.js.map +0 -1
- package/dist/providers/claude/ClaudeCodeAdapter.d.ts +0 -31
- package/dist/providers/claude/ClaudeCodeAdapter.d.ts.map +0 -1
- package/dist/providers/claude/ClaudeCodeAdapter.js +0 -132
- package/dist/providers/claude/ClaudeCodeAdapter.js.map +0 -1
- package/dist/providers/claude/ClaudeSessionLocator.d.ts.map +0 -1
- package/dist/providers/claude/ClaudeSessionLocator.js +0 -260
- package/dist/providers/claude/ClaudeSessionLocator.js.map +0 -1
- package/dist/providers/claude/ClaudeSessionParser.d.ts +0 -114
- package/dist/providers/claude/ClaudeSessionParser.d.ts.map +0 -1
- package/dist/providers/claude/ClaudeSessionParser.js +0 -309
- package/dist/providers/claude/ClaudeSessionParser.js.map +0 -1
- package/dist/providers/claude/durable/ClaudeCliProbe.d.ts.map +0 -1
- package/dist/providers/claude/durable/ClaudeCliProbe.js.map +0 -1
- package/dist/providers/claude/durable/ClaudePrintAgentService.d.ts.map +0 -1
- package/dist/providers/claude/durable/ClaudePrintAgentService.js.map +0 -1
- package/dist/providers/claude/durable/ClaudePrintRunner.d.ts.map +0 -1
- package/dist/providers/claude/durable/ClaudePrintRunner.js.map +0 -1
- package/dist/providers/claude/durable/ClaudeStreamParser.d.ts.map +0 -1
- package/dist/providers/claude/durable/ClaudeStreamParser.js.map +0 -1
- package/dist/providers/codex/CodexAdapter.d.ts +0 -28
- package/dist/providers/codex/CodexAdapter.d.ts.map +0 -1
- package/dist/providers/codex/CodexAdapter.js +0 -170
- package/dist/providers/codex/CodexAdapter.js.map +0 -1
- package/dist/providers/codex/CodexAgentMapper.d.ts.map +0 -1
- package/dist/providers/codex/CodexAgentMapper.js +0 -35
- package/dist/providers/codex/CodexAgentMapper.js.map +0 -1
- package/dist/providers/codex/CodexSessionLocator.d.ts +0 -44
- package/dist/providers/codex/CodexSessionLocator.d.ts.map +0 -1
- package/dist/providers/codex/CodexSessionLocator.js +0 -207
- package/dist/providers/codex/CodexSessionLocator.js.map +0 -1
- package/dist/providers/codex/CodexSessionMapping.d.ts.map +0 -1
- package/dist/providers/codex/CodexSessionMapping.js +0 -68
- package/dist/providers/codex/CodexSessionMapping.js.map +0 -1
- package/dist/providers/codex/CodexSessionParser.d.ts +0 -58
- package/dist/providers/codex/CodexSessionParser.d.ts.map +0 -1
- package/dist/providers/codex/CodexSessionParser.js +0 -262
- package/dist/providers/codex/CodexSessionParser.js.map +0 -1
- package/dist/providers/codex/durable/CodexCliProbe.d.ts.map +0 -1
- package/dist/providers/codex/durable/CodexCliProbe.js.map +0 -1
- package/dist/providers/codex/durable/CodexPrintAgentService.d.ts.map +0 -1
- package/dist/providers/codex/durable/CodexPrintAgentService.js.map +0 -1
- package/dist/providers/codex/durable/CodexPrintRunner.d.ts.map +0 -1
- package/dist/providers/codex/durable/CodexPrintRunner.js.map +0 -1
- package/dist/providers/codex/durable/CodexStreamParser.d.ts.map +0 -1
- package/dist/providers/codex/durable/CodexStreamParser.js.map +0 -1
- package/dist/providers/copilot/CopilotAdapter.d.ts +0 -35
- package/dist/providers/copilot/CopilotAdapter.d.ts.map +0 -1
- package/dist/providers/copilot/CopilotAdapter.js +0 -123
- package/dist/providers/copilot/CopilotAdapter.js.map +0 -1
- package/dist/providers/copilot/CopilotAgentMapper.d.ts.map +0 -1
- package/dist/providers/copilot/CopilotAgentMapper.js +0 -37
- package/dist/providers/copilot/CopilotAgentMapper.js.map +0 -1
- package/dist/providers/copilot/CopilotSessionLocator.d.ts +0 -20
- package/dist/providers/copilot/CopilotSessionLocator.d.ts.map +0 -1
- package/dist/providers/copilot/CopilotSessionLocator.js +0 -49
- package/dist/providers/copilot/CopilotSessionLocator.js.map +0 -1
- package/dist/providers/copilot/CopilotSessionParser.d.ts +0 -30
- package/dist/providers/copilot/CopilotSessionParser.d.ts.map +0 -1
- package/dist/providers/copilot/CopilotSessionParser.js +0 -181
- package/dist/providers/copilot/CopilotSessionParser.js.map +0 -1
- package/dist/providers/gemini/GeminiAgentMapper.d.ts.map +0 -1
- package/dist/providers/gemini/GeminiAgentMapper.js +0 -37
- package/dist/providers/gemini/GeminiAgentMapper.js.map +0 -1
- package/dist/providers/gemini/GeminiCliAdapter.d.ts +0 -53
- package/dist/providers/gemini/GeminiCliAdapter.d.ts.map +0 -1
- package/dist/providers/gemini/GeminiCliAdapter.js +0 -197
- package/dist/providers/gemini/GeminiCliAdapter.js.map +0 -1
- package/dist/providers/gemini/GeminiSessionLocator.d.ts +0 -30
- package/dist/providers/gemini/GeminiSessionLocator.d.ts.map +0 -1
- package/dist/providers/gemini/GeminiSessionLocator.js +0 -142
- package/dist/providers/gemini/GeminiSessionLocator.js.map +0 -1
- package/dist/providers/gemini/GeminiSessionParser.d.ts +0 -94
- package/dist/providers/gemini/GeminiSessionParser.d.ts.map +0 -1
- package/dist/providers/gemini/GeminiSessionParser.js +0 -166
- package/dist/providers/gemini/GeminiSessionParser.js.map +0 -1
- package/dist/providers/grok/GrokAgentMapper.d.ts.map +0 -1
- package/dist/providers/grok/GrokAgentMapper.js +0 -36
- package/dist/providers/grok/GrokAgentMapper.js.map +0 -1
- package/dist/providers/grok/GrokCliAdapter.d.ts +0 -36
- package/dist/providers/grok/GrokCliAdapter.d.ts.map +0 -1
- package/dist/providers/grok/GrokCliAdapter.js +0 -98
- package/dist/providers/grok/GrokCliAdapter.js.map +0 -1
- package/dist/providers/grok/GrokSessionLocator.d.ts.map +0 -1
- package/dist/providers/grok/GrokSessionLocator.js +0 -140
- package/dist/providers/grok/GrokSessionLocator.js.map +0 -1
- package/dist/providers/grok/GrokSessionParser.d.ts +0 -54
- package/dist/providers/grok/GrokSessionParser.d.ts.map +0 -1
- package/dist/providers/grok/GrokSessionParser.js +0 -122
- package/dist/providers/grok/GrokSessionParser.js.map +0 -1
- package/dist/providers/opencode/OpenCodeAdapter.d.ts +0 -31
- package/dist/providers/opencode/OpenCodeAdapter.d.ts.map +0 -1
- package/dist/providers/opencode/OpenCodeAdapter.js +0 -89
- package/dist/providers/opencode/OpenCodeAdapter.js.map +0 -1
- package/dist/providers/opencode/OpenCodeAgentMapper.d.ts.map +0 -1
- package/dist/providers/opencode/OpenCodeAgentMapper.js +0 -50
- package/dist/providers/opencode/OpenCodeAgentMapper.js.map +0 -1
- package/dist/providers/opencode/OpenCodeSessionLocator.d.ts.map +0 -1
- package/dist/providers/opencode/OpenCodeSessionLocator.js +0 -118
- package/dist/providers/opencode/OpenCodeSessionLocator.js.map +0 -1
- package/dist/providers/opencode/OpenCodeSessionParser.d.ts +0 -18
- package/dist/providers/opencode/OpenCodeSessionParser.d.ts.map +0 -1
- package/dist/providers/opencode/OpenCodeSessionParser.js +0 -104
- package/dist/providers/opencode/OpenCodeSessionParser.js.map +0 -1
- package/dist/providers/pi/PiAdapter.d.ts +0 -29
- package/dist/providers/pi/PiAdapter.d.ts.map +0 -1
- package/dist/providers/pi/PiAdapter.js +0 -163
- package/dist/providers/pi/PiAdapter.js.map +0 -1
- package/dist/providers/pi/PiAgentMapper.d.ts.map +0 -1
- package/dist/providers/pi/PiAgentMapper.js +0 -37
- package/dist/providers/pi/PiAgentMapper.js.map +0 -1
- package/dist/providers/pi/PiSessionLocator.d.ts +0 -24
- package/dist/providers/pi/PiSessionLocator.d.ts.map +0 -1
- package/dist/providers/pi/PiSessionLocator.js +0 -86
- package/dist/providers/pi/PiSessionLocator.js.map +0 -1
- package/dist/providers/pi/PiSessionParser.d.ts +0 -36
- package/dist/providers/pi/PiSessionParser.d.ts.map +0 -1
- package/dist/providers/pi/PiSessionParser.js +0 -191
- package/dist/providers/pi/PiSessionParser.js.map +0 -1
- package/dist/providers/pi/PiSessionTracker.d.ts.map +0 -1
- package/dist/providers/pi/PiSessionTracker.js +0 -69
- package/dist/providers/pi/PiSessionTracker.js.map +0 -1
- package/dist/providers/pi/durable/PiCliProbe.d.ts.map +0 -1
- package/dist/providers/pi/durable/PiCliProbe.js.map +0 -1
- package/dist/providers/pi/durable/PiPrintAgentService.d.ts.map +0 -1
- package/dist/providers/pi/durable/PiPrintAgentService.js.map +0 -1
- package/dist/providers/pi/durable/PiPrintProtocol.d.ts.map +0 -1
- package/dist/providers/pi/durable/PiPrintProtocol.js.map +0 -1
- package/dist/providers/pi/durable/PiPrintRunner.d.ts.map +0 -1
- package/dist/providers/pi/durable/PiPrintRunner.js.map +0 -1
- package/dist/providers/pi/durable/PiStreamParser.d.ts.map +0 -1
- package/dist/providers/pi/durable/PiStreamParser.js.map +0 -1
- package/dist/readiness/AgentReadiness.d.ts +0 -67
- package/dist/readiness/AgentReadiness.d.ts.map +0 -1
- package/dist/readiness/AgentReadiness.js +0 -614
- package/dist/readiness/AgentReadiness.js.map +0 -1
- package/dist/terminal/TmuxManager.d.ts +0 -28
- package/dist/terminal/TmuxManager.d.ts.map +0 -1
- package/dist/terminal/TmuxManager.js +0 -135
- package/dist/terminal/TmuxManager.js.map +0 -1
- package/dist/terminal/index.d.ts +0 -5
- package/dist/terminal/index.d.ts.map +0 -1
- package/dist/terminal/index.js +0 -5
- package/dist/terminal/index.js.map +0 -1
- package/dist/utils/agents.d.ts +0 -15
- package/dist/utils/agents.d.ts.map +0 -1
- package/dist/utils/agents.js +0 -82
- package/dist/utils/agents.js.map +0 -1
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
- package/src/__tests__/adapters/AntigravityCliAdapter.test.ts +0 -324
- package/src/__tests__/adapters/ClaudeCodeAdapter.test.ts +0 -1763
- package/src/__tests__/adapters/CodexAdapter.test.ts +0 -387
- package/src/__tests__/adapters/KiroAdapter.test.ts +0 -534
- package/src/__tests__/durable/CodexCliProbe.test.ts +0 -85
- package/src/__tests__/durable/CodexDurableAgentRepository.test.ts +0 -65
- package/src/__tests__/durable/CodexPrintAgent.integration.test.ts +0 -104
- package/src/__tests__/durable/CodexPrintAgentService.test.ts +0 -217
- package/src/__tests__/durable/CodexPrintRunner.test.ts +0 -309
- package/src/__tests__/fixtures/fake-claude.cjs +0 -31
- package/src/__tests__/fixtures/fake-codex.cjs +0 -56
- package/src/__tests__/print/ClaudeCliProbe.test.ts +0 -34
- package/src/__tests__/print/ClaudePrintAgent.integration.test.ts +0 -61
- package/src/__tests__/print/ClaudePrintAgentService.test.ts +0 -129
- package/src/__tests__/print/ClaudePrintRunner.test.ts +0 -152
- package/src/__tests__/providers/claude/ClaudeAgentMapper.test.ts +0 -84
- package/src/__tests__/providers/claude/ClaudeSessionLocator.test.ts +0 -434
- package/src/__tests__/providers/codex/CodexSessionLocator.test.ts +0 -182
- package/src/__tests__/providers/codex/CodexSessionMapping.test.ts +0 -63
- package/src/__tests__/providers/codex/CodexSessionParser.test.ts +0 -192
- package/src/__tests__/providers/copilot/CopilotAdapter.test.ts +0 -614
- package/src/__tests__/providers/gemini/GeminiCliAdapter.test.ts +0 -1320
- package/src/__tests__/providers/grok/GrokAgentMapper.test.ts +0 -57
- package/src/__tests__/providers/grok/GrokCliAdapter.test.ts +0 -376
- package/src/__tests__/providers/grok/GrokSessionLocator.test.ts +0 -106
- package/src/__tests__/providers/opencode/OpenCodeAdapter.test.ts +0 -215
- package/src/__tests__/providers/opencode/OpenCodeAgentMapper.test.ts +0 -83
- package/src/__tests__/providers/opencode/OpenCodeSessionLocator.test.ts +0 -84
- package/src/__tests__/providers/opencode/OpenCodeSessionParser.test.ts +0 -148
- package/src/__tests__/providers/pi/PiAdapter.test.ts +0 -325
- package/src/__tests__/providers/pi/PiSessionParser.test.ts +0 -190
- package/src/__tests__/providers/pi/PiSessionTracker.test.ts +0 -79
- package/src/__tests__/providers/pi/durable/PiCliProbe.test.ts +0 -54
- package/src/__tests__/providers/pi/durable/PiPrintAgentService.test.ts +0 -141
- package/src/__tests__/providers/pi/durable/PiPrintProtocol.test.ts +0 -71
- package/src/__tests__/providers/pi/durable/PiPrintRunner.test.ts +0 -253
- package/src/__tests__/providers/pi/durable/PiStreamParser.test.ts +0 -26
- package/src/__tests__/readiness/AgentReadiness.test.ts +0 -242
- package/src/__tests__/utils/ClaudeSessionParser.test.ts +0 -300
- package/src/__tests__/utils/agents.test.ts +0 -31
- package/src/adapters/AntigravityCliAdapter.ts +0 -356
- package/src/adapters/KiroAdapter.ts +0 -456
- package/src/adapters/index.ts +0 -17
- package/src/capacity/claude.ts +0 -313
- package/src/capacity/codex.ts +0 -332
- package/src/capacity/openai.ts +0 -361
- package/src/capacity/wham.ts +0 -84
- package/src/capacity/zai.ts +0 -237
- package/src/providers/claude/ClaudeAgentMapper.ts +0 -63
- package/src/providers/claude/ClaudeCodeAdapter.ts +0 -173
- package/src/providers/claude/ClaudeSessionLocator.ts +0 -358
- package/src/providers/claude/ClaudeSessionParser.ts +0 -432
- package/src/providers/codex/CodexAdapter.ts +0 -213
- package/src/providers/codex/CodexAgentMapper.ts +0 -35
- package/src/providers/codex/CodexSessionLocator.ts +0 -279
- package/src/providers/codex/CodexSessionMapping.ts +0 -89
- package/src/providers/codex/CodexSessionParser.ts +0 -385
- package/src/providers/copilot/CopilotAdapter.ts +0 -161
- package/src/providers/copilot/CopilotAgentMapper.ts +0 -36
- package/src/providers/copilot/CopilotSessionLocator.ts +0 -63
- package/src/providers/copilot/CopilotSessionParser.ts +0 -289
- package/src/providers/gemini/GeminiAgentMapper.ts +0 -36
- package/src/providers/gemini/GeminiCliAdapter.ts +0 -274
- package/src/providers/gemini/GeminiSessionLocator.ts +0 -183
- package/src/providers/gemini/GeminiSessionParser.ts +0 -271
- package/src/providers/grok/GrokAgentMapper.ts +0 -41
- package/src/providers/grok/GrokCliAdapter.ts +0 -125
- package/src/providers/grok/GrokSessionLocator.ts +0 -179
- package/src/providers/grok/GrokSessionParser.ts +0 -166
- package/src/providers/opencode/OpenCodeAdapter.ts +0 -116
- package/src/providers/opencode/OpenCodeAgentMapper.ts +0 -61
- package/src/providers/opencode/OpenCodeSessionLocator.ts +0 -151
- package/src/providers/opencode/OpenCodeSessionParser.ts +0 -145
- package/src/providers/pi/PiAdapter.ts +0 -195
- package/src/providers/pi/PiAgentMapper.ts +0 -36
- package/src/providers/pi/PiSessionLocator.ts +0 -110
- package/src/providers/pi/PiSessionParser.ts +0 -284
- package/src/providers/pi/PiSessionTracker.ts +0 -87
- package/src/readiness/AgentReadiness.ts +0 -730
- package/src/terminal/TmuxManager.ts +0 -123
- package/src/terminal/index.ts +0 -4
- package/src/utils/agents.ts +0 -75
- package/src/utils/index.ts +0 -12
- /package/dist/__tests__/{providers → harnesses}/pi/durable/PiDurableAgentRepository.test.js +0 -0
- /package/dist/{providers → harnesses}/claude/ClaudeAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/claude/ClaudeSessionLocator.d.ts +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudeCliProbe.d.ts +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudeCliProbe.js +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudePrintAgentService.d.ts +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudePrintAgentService.js +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudePrintRunner.d.ts +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudePrintRunner.js +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudeStreamParser.d.ts +0 -0
- /package/dist/{providers → harnesses}/claude/durable/ClaudeStreamParser.js +0 -0
- /package/dist/{providers → harnesses}/codex/CodexAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/codex/CodexSessionMapping.d.ts +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexCliProbe.d.ts +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexCliProbe.js +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexPrintAgentService.d.ts +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexPrintAgentService.js +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexPrintRunner.d.ts +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexPrintRunner.js +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexStreamParser.d.ts +0 -0
- /package/dist/{providers → harnesses}/codex/durable/CodexStreamParser.js +0 -0
- /package/dist/{providers → harnesses}/copilot/CopilotAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/gemini/GeminiAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/grok/GrokAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/grok/GrokSessionLocator.d.ts +0 -0
- /package/dist/{providers → harnesses}/opencode/OpenCodeAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/opencode/OpenCodeSessionLocator.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/PiAgentMapper.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/PiSessionTracker.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiCliProbe.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiCliProbe.js +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiPrintAgentService.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiPrintAgentService.js +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiPrintProtocol.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiPrintProtocol.js +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiPrintRunner.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiPrintRunner.js +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiStreamParser.d.ts +0 -0
- /package/dist/{providers → harnesses}/pi/durable/PiStreamParser.js +0 -0
- /package/src/__tests__/{providers → harnesses}/pi/durable/PiDurableAgentRepository.test.ts +0 -0
- /package/src/{providers → harnesses}/claude/durable/ClaudeCliProbe.ts +0 -0
- /package/src/{providers → harnesses}/claude/durable/ClaudePrintAgentService.ts +0 -0
- /package/src/{providers → harnesses}/claude/durable/ClaudePrintRunner.ts +0 -0
- /package/src/{providers → harnesses}/claude/durable/ClaudeStreamParser.ts +0 -0
- /package/src/{providers → harnesses}/codex/durable/CodexCliProbe.ts +0 -0
- /package/src/{providers → harnesses}/codex/durable/CodexPrintAgentService.ts +0 -0
- /package/src/{providers → harnesses}/codex/durable/CodexPrintRunner.ts +0 -0
- /package/src/{providers → harnesses}/codex/durable/CodexStreamParser.ts +0 -0
- /package/src/{providers → harnesses}/pi/durable/PiCliProbe.ts +0 -0
- /package/src/{providers → harnesses}/pi/durable/PiPrintAgentService.ts +0 -0
- /package/src/{providers → harnesses}/pi/durable/PiPrintProtocol.ts +0 -0
- /package/src/{providers → harnesses}/pi/durable/PiPrintRunner.ts +0 -0
- /package/src/{providers → harnesses}/pi/durable/PiStreamParser.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/readiness/AgentReadiness.ts"],"sourcesContent":["import { constants } from \"node:fs\";\nimport { access as fsAccess, readFile as fsReadFile } from \"node:fs/promises\";\nimport { execFile } from \"node:child_process\";\nimport { delimiter, join } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { getCodexCapacityReport } from \"../capacity/index.js\";\nimport { AGENTS, type StartableAgentType } from \"../utils/agents.js\";\n\nconst execFileAsync = promisify(execFile);\nconst READINESS_AGENT_TYPES = [\"claude\", \"codex\", \"copilot\", \"grok_cli\", \"opencode\", \"pi\"] as const;\nconst ANSI_ESCAPE_PATTERN = new RegExp(`${String.fromCharCode(27)}\\\\[[0-?]*[ -/]*[@-~]`, \"g\");\n\nexport type ReadinessStatus = \"pass\" | \"warn\" | \"fail\";\nexport type ReadinessAuthState = \"authenticated\" | \"unauthenticated\" | \"unknown\";\nexport type ReadinessAgentType = Exclude<\n StartableAgentType,\n \"gemini_cli\" | \"kiro\" | \"antigravity_cli\"\n>;\ntype ReadinessInfoStatus = ReadinessStatus | \"info\";\n\ntype CommandResult = { stdout: string; stderr: string };\ntype ReadFile = (target: string) => Promise<string>;\ntype Access = (target: string, mode?: number) => Promise<void>;\ntype RunCommand = (command: string, args: string[]) => Promise<CommandResult>;\n\nexport interface ReadinessCheck<S extends ReadinessInfoStatus = ReadinessStatus> {\n status: S;\n errors: string[];\n}\n\nexport interface ExecutableReadinessCheck extends ReadinessCheck {\n command: string;\n path: string | null;\n}\n\nexport interface DirectoryReadinessCheck extends ReadinessCheck {\n path: string;\n present: boolean;\n readable: boolean;\n}\n\nexport interface BuiltInSkillsReadinessCheck extends ReadinessCheck<\"info\"> {\n path: string | null;\n required: number;\n present: number;\n missing: string[];\n}\n\nexport interface AuthReadinessCheck extends ReadinessCheck {\n state: ReadinessAuthState;\n source: string;\n provider: string | null;\n availableProviders: string[];\n}\n\nexport interface IntegrationReadinessCheck extends ReadinessCheck {\n label: string;\n installed: boolean;\n details?: Record<string, unknown>;\n}\n\nexport interface AgentReadinessReport {\n type: ReadinessAgentType;\n executable: ExecutableReadinessCheck;\n globalConfig: DirectoryReadinessCheck;\n builtInSkills: BuiltInSkillsReadinessCheck;\n auth?: AuthReadinessCheck;\n integration?: IntegrationReadinessCheck;\n status: ReadinessStatus;\n}\n\nexport interface AgentReadinessOptions {\n homeDir?: string;\n path?: string;\n assetRoot?: string;\n builtInSkillNames?: readonly string[];\n skillRoots?: Partial<Record<ReadinessAgentType, string>>;\n readFile?: ReadFile;\n access?: Access;\n runCommand?: RunCommand;\n codexAuth?: () => Promise<boolean | null>;\n}\n\ntype Runtime = Required<\n Omit<AgentReadinessOptions, \"assetRoot\" | \"builtInSkillNames\" | \"skillRoots\">\n> & {\n assetRoot: string | null;\n builtInSkillNames: readonly string[];\n skillRoots: Partial<Record<ReadinessAgentType, string>>;\n};\n\nconst AGENT_HOME_DIRS: Record<ReadinessAgentType, string> = {\n claude: \".claude\",\n codex: \".codex\",\n copilot: \".copilot\",\n grok_cli: \".grok\",\n opencode: \".config/opencode\",\n pi: \".pi\",\n};\n\nfunction runtime(options: AgentReadinessOptions): Runtime {\n return {\n homeDir: options.homeDir ?? process.env.HOME ?? \"\",\n path: options.path ?? process.env.PATH ?? \"\",\n assetRoot: options.assetRoot ?? null,\n builtInSkillNames: options.builtInSkillNames ?? [],\n skillRoots: options.skillRoots ?? {},\n readFile: options.readFile ?? ((target) => fsReadFile(target, \"utf8\")),\n access: options.access ?? ((target, mode = constants.R_OK) => fsAccess(target, mode)),\n runCommand: options.runCommand ?? defaultRunCommand,\n codexAuth: options.codexAuth ?? (async () => (await getCodexCapacityReport()).authenticated),\n };\n}\n\nasync function defaultRunCommand(command: string, args: string[]): Promise<CommandResult> {\n const result = await execFileAsync(command, args, {\n encoding: \"utf8\",\n timeout: 5000,\n maxBuffer: 1024 * 1024,\n });\n return { stdout: result.stdout, stderr: result.stderr };\n}\n\nfunction statusRank(status: ReadinessStatus): number {\n return status === \"fail\" ? 2 : status === \"warn\" ? 1 : 0;\n}\n\nexport function worstReadinessStatus(statuses: ReadinessStatus[]): ReadinessStatus {\n return statuses.reduce<ReadinessStatus>(\n (worst, current) => (statusRank(current) > statusRank(worst) ? current : worst),\n \"pass\",\n );\n}\n\nfunction displayHome(target: string, homeDir: string): string {\n return target === homeDir\n ? \"~\"\n : target.startsWith(`${homeDir}/`)\n ? `~${target.slice(homeDir.length)}`\n : target;\n}\n\nfunction record(value: unknown): Record<string, unknown> | null {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : null;\n}\n\nfunction nonEmpty(value: unknown): boolean {\n return typeof value === \"string\" && value.trim().length > 0;\n}\n\nasync function accessible(target: string, rt: Runtime, mode = constants.R_OK): Promise<boolean> {\n try {\n await rt.access(target, mode);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function resolveExecutable(command: string, rt: Runtime): Promise<string | null> {\n const candidates = rt.path\n .split(delimiter)\n .filter(Boolean)\n .map((directory) => join(directory, command));\n const checks = await Promise.all(\n candidates.map(async (target) => ({\n target,\n available: await accessible(target, rt, constants.X_OK),\n })),\n );\n return checks.find((check) => check.available)?.target ?? null;\n}\n\nasync function executableCheck(\n agent: ReadinessAgentType,\n rt: Runtime,\n): Promise<ExecutableReadinessCheck> {\n const command = AGENTS[agent].command;\n const resolvedPath = await resolveExecutable(command, rt);\n return {\n command,\n path: resolvedPath,\n status: resolvedPath ? \"pass\" : \"fail\",\n errors: resolvedPath ? [] : [`${command} was not found on PATH`],\n };\n}\n\nasync function directoryCheck(\n agent: ReadinessAgentType,\n rt: Runtime,\n): Promise<DirectoryReadinessCheck> {\n const target = join(rt.homeDir, AGENT_HOME_DIRS[agent]);\n const readable = await accessible(target, rt);\n return {\n path: displayHome(target, rt.homeDir),\n present: readable,\n readable,\n status: readable ? \"pass\" : \"fail\",\n errors: readable ? [] : [\"global configuration directory is unavailable\"],\n };\n}\n\nasync function builtInSkillsCheck(\n agent: ReadinessAgentType,\n rt: Runtime,\n): Promise<BuiltInSkillsReadinessCheck> {\n const relativeRoot = rt.skillRoots[agent];\n if (!relativeRoot) {\n return {\n path: null,\n required: rt.builtInSkillNames.length,\n present: 0,\n missing: [...rt.builtInSkillNames],\n status: \"info\",\n errors: [],\n };\n }\n const root = join(rt.homeDir, relativeRoot);\n const checks = await Promise.all(\n rt.builtInSkillNames.map(async (name) => ({\n name,\n present: await accessible(join(root, name, \"SKILL.md\"), rt),\n })),\n );\n const present = checks.filter((check) => check.present).map((check) => check.name);\n const missing = rt.builtInSkillNames.filter((name) => !present.includes(name));\n return {\n path: displayHome(root, rt.homeDir),\n required: rt.builtInSkillNames.length,\n present: present.length,\n missing: [...missing],\n status: \"info\",\n errors: [],\n };\n}\n\nasync function scriptCheck(\n installed: string,\n bundled: string,\n rt: Runtime,\n): Promise<\n ReadinessCheck & {\n path: string;\n present: boolean;\n readable: boolean;\n matchesBundledAsset: boolean;\n }\n> {\n let installedText: string;\n try {\n installedText = await rt.readFile(installed);\n } catch {\n return {\n path: displayHome(installed, rt.homeDir),\n present: false,\n readable: false,\n matchesBundledAsset: false,\n status: \"fail\",\n errors: [\"hook script is unavailable\"],\n };\n }\n try {\n const bundledText = await rt.readFile(bundled);\n const matches = installedText === bundledText;\n return {\n path: displayHome(installed, rt.homeDir),\n present: true,\n readable: true,\n matchesBundledAsset: matches,\n status: matches ? \"pass\" : \"fail\",\n errors: matches ? [] : [\"hook script differs from the bundled AI DevKit asset\"],\n };\n } catch {\n return {\n path: displayHome(installed, rt.homeDir),\n present: true,\n readable: true,\n matchesBundledAsset: false,\n status: \"fail\",\n errors: [\"bundled hook asset is unavailable\"],\n };\n }\n}\n\nfunction containsHook(root: unknown, event: string, command: string): boolean {\n const hooks = record(record(root)?.hooks);\n const entries = hooks?.[event];\n if (!Array.isArray(entries)) return false;\n return entries.some((entry) => {\n const commands = record(entry)?.hooks;\n return (\n Array.isArray(commands) &&\n commands.some((hook) => {\n const item = record(hook);\n return item?.type === \"command\" && item.command === command;\n })\n );\n });\n}\n\nasync function registrationCheck(\n target: string,\n event: string,\n command: string,\n rt: Runtime,\n): Promise<\n ReadinessCheck & {\n path: string;\n event: string;\n command: string;\n present: boolean;\n valid: boolean;\n }\n> {\n try {\n const parsed = JSON.parse(await rt.readFile(target));\n const valid = containsHook(parsed, event, command);\n return {\n path: displayHome(target, rt.homeDir),\n event,\n command,\n present: true,\n valid,\n status: valid ? \"pass\" : \"fail\",\n errors: valid ? [] : [\"required hook registration is missing\"],\n };\n } catch {\n return {\n path: displayHome(target, rt.homeDir),\n event,\n command,\n present: false,\n valid: false,\n status: \"fail\",\n errors: [\"hook configuration is missing or invalid\"],\n };\n }\n}\n\nasync function mappingCheck(\n target: string,\n rt: Runtime,\n): Promise<\n ReadinessCheck & {\n path: string;\n present: boolean;\n valid: boolean;\n invalidEntries: number;\n staleEntries: number;\n }\n> {\n let text: string;\n try {\n text = await rt.readFile(target);\n } catch {\n return {\n path: displayHome(target, rt.homeDir),\n present: false,\n valid: false,\n invalidEntries: 0,\n staleEntries: 0,\n status: \"warn\",\n errors: [\"session mapping has not been created\"],\n };\n }\n let parsed: Record<string, unknown> | null = null;\n try {\n parsed = record(JSON.parse(text));\n } catch {\n // Fixed safe error below.\n }\n if (!parsed) {\n return {\n path: displayHome(target, rt.homeDir),\n present: true,\n valid: false,\n invalidEntries: 0,\n staleEntries: 0,\n status: \"fail\",\n errors: [\"session mapping is invalid\"],\n };\n }\n const entries = await Promise.all(\n Object.entries(parsed).map(async ([pid, sessionPath]) => {\n if (!/^\\d+$/.test(pid) || typeof sessionPath !== \"string\" || !sessionPath) {\n return { valid: false, stale: false };\n }\n return { valid: true, stale: !(await accessible(sessionPath, rt)) };\n }),\n );\n const invalidEntries = entries.filter((entry) => !entry.valid).length;\n const staleEntries = entries.filter((entry) => entry.stale).length;\n const valid = invalidEntries === 0;\n return {\n path: displayHome(target, rt.homeDir),\n present: true,\n valid,\n invalidEntries,\n staleEntries,\n status: !valid ? \"fail\" : staleEntries ? \"warn\" : \"pass\",\n errors: !valid\n ? [\"session mapping contains invalid entries\"]\n : staleEntries\n ? [\"session mapping contains stale entries\"]\n : [],\n };\n}\n\nasync function codexAuthCheck(rt: Runtime): Promise<AuthReadinessCheck> {\n try {\n const value = await rt.codexAuth();\n return {\n state: value === true ? \"authenticated\" : value === false ? \"unauthenticated\" : \"unknown\",\n source: displayHome(join(rt.homeDir, \".codex\", \"auth.json\"), rt.homeDir),\n provider: null,\n availableProviders: [],\n status: value === true ? \"pass\" : value === false ? \"fail\" : \"warn\",\n errors:\n value === true\n ? []\n : [value === false ? \"Codex is not authenticated\" : \"Codex authentication is unknown\"],\n };\n } catch {\n return {\n state: \"unknown\",\n source: \"~/.codex/auth.json\",\n provider: null,\n availableProviders: [],\n status: \"warn\",\n errors: [\"Codex authentication probe failed\"],\n };\n }\n}\n\nasync function claudeAuthCheck(rt: Runtime): Promise<AuthReadinessCheck> {\n try {\n const result = await rt.runCommand(\"claude\", [\"auth\", \"status\", \"--json\"]);\n const parsed = record(JSON.parse(result.stdout));\n const authenticated = parsed?.loggedIn === true || parsed?.authenticated === true;\n const unauthenticated = parsed?.loggedIn === false || parsed?.authenticated === false;\n return {\n state: authenticated ? \"authenticated\" : unauthenticated ? \"unauthenticated\" : \"unknown\",\n source: \"claude auth status --json\",\n provider: null,\n availableProviders: [],\n status: authenticated ? \"pass\" : unauthenticated ? \"fail\" : \"warn\",\n errors: authenticated\n ? []\n : [unauthenticated ? \"Claude is not authenticated\" : \"Claude authentication is unknown\"],\n };\n } catch {\n return {\n state: \"unknown\",\n source: \"claude auth status --json\",\n provider: null,\n availableProviders: [],\n status: \"warn\",\n errors: [\"Claude authentication probe failed\"],\n };\n }\n}\n\nfunction piProviderNames(parsed: Record<string, unknown>): string[] {\n const names = new Set<string>();\n if (nonEmpty(parsed.provider)) names.add((parsed.provider as string).trim());\n const providers = record(parsed.providers);\n if (providers) {\n for (const name of Object.keys(providers)) {\n if (name.trim()) names.add(name);\n }\n }\n for (const [name, value] of Object.entries(parsed)) {\n if (name === \"provider\" || name === \"providers\") continue;\n if (record(value) && name.trim()) names.add(name);\n }\n return [...names].sort();\n}\n\nasync function piAuthCheck(rt: Runtime): Promise<AuthReadinessCheck> {\n const sourcePath = join(rt.homeDir, \".pi\", \"agent\", \"auth.json\");\n try {\n const parsed = record(JSON.parse(await rt.readFile(sourcePath)));\n if (!parsed) throw new Error(\"invalid\");\n const availableProviders = piProviderNames(parsed);\n const provider = nonEmpty(parsed.provider) ? (parsed.provider as string).trim() : null;\n const authenticated = availableProviders.length > 0;\n return {\n state: authenticated ? \"authenticated\" : \"unauthenticated\",\n source: displayHome(sourcePath, rt.homeDir),\n provider,\n availableProviders,\n status: authenticated ? \"pass\" : \"fail\",\n errors: authenticated ? [] : [\"Pi credential file has no configured model provider\"],\n };\n } catch {\n return {\n state: \"unauthenticated\",\n source: displayHome(sourcePath, rt.homeDir),\n provider: null,\n availableProviders: [],\n status: \"fail\",\n errors: [\"Pi credential file is missing or invalid\"],\n };\n }\n}\n\nasync function opencodeAuthCheck(rt: Runtime): Promise<AuthReadinessCheck> {\n try {\n const result = await rt.runCommand(\"opencode\", [\"auth\", \"list\"]);\n const availableProviders = opencodeAuthProviderNames(result.stdout);\n const authenticated = availableProviders.length > 0;\n return {\n state: authenticated ? \"authenticated\" : \"unauthenticated\",\n source: \"opencode auth list\",\n provider: null,\n availableProviders,\n status: authenticated ? \"pass\" : \"fail\",\n errors: authenticated ? [] : [\"OpenCode has no configured credentials\"],\n };\n } catch {\n return {\n state: \"unknown\",\n source: \"opencode auth list\",\n provider: null,\n availableProviders: [],\n status: \"warn\",\n errors: [\"OpenCode authentication probe failed\"],\n };\n }\n}\n\nasync function copilotAuthCheck(rt: Runtime): Promise<AuthReadinessCheck> {\n try {\n await rt.runCommand(\"gh\", [\"auth\", \"status\", \"--hostname\", \"github.com\"]);\n return {\n state: \"authenticated\",\n source: \"gh auth status --hostname github.com\",\n provider: \"github\",\n availableProviders: [\"GitHub\"],\n status: \"pass\",\n errors: [],\n };\n } catch {\n return {\n state: \"unknown\",\n source: \"gh auth status --hostname github.com\",\n provider: null,\n availableProviders: [\"GitHub\"],\n status: \"warn\",\n errors: [\"Copilot authentication could not be verified through GitHub CLI\"],\n };\n }\n}\n\nfunction opencodeAuthProviderNames(output: string): string[] {\n const names = new Set<string>();\n for (const line of stripAnsi(output).split(/\\r?\\n/)) {\n const match = /^\\s*[●*+-]\\s+(.+?)\\s*$/.exec(line);\n if (!match) continue;\n const name = match[1].replace(/\\s+(?:api|oauth|[\\w-]*token|[A-Z][A-Z0-9_]+)$/i, \"\").trim();\n if (name && !/^\\d+\\s+(?:credentials?|environment variables?)$/i.test(name)) names.add(name);\n }\n return [...names].sort();\n}\n\nfunction stripAnsi(value: string): string {\n return value.replace(ANSI_ESCAPE_PATTERN, \"\");\n}\n\nasync function codexIntegrationCheck(rt: Runtime): Promise<IntegrationReadinessCheck> {\n const script = await scriptCheck(\n join(rt.homeDir, \".codex\", \"hooks\", \"codex-session-mapping.cjs\"),\n join(rt.assetRoot ?? \"\", \"codex\", \"codex-session-mapping.cjs\"),\n rt,\n );\n const registration = await registrationCheck(\n join(rt.homeDir, \".codex\", \"hooks.json\"),\n \"SessionStart\",\n \"node ~/.codex/hooks/codex-session-mapping.cjs\",\n rt,\n );\n const mappingFile = await mappingCheck(\n join(rt.homeDir, \".codex\", \"ai-devkit\", \"sessions.json\"),\n rt,\n );\n const installed = script.status === \"pass\" && registration.status === \"pass\";\n return {\n label: \"ai-devkit hook\",\n installed,\n status: worstReadinessStatus([script.status, registration.status, mappingFile.status]),\n errors: [...script.errors, ...registration.errors, ...mappingFile.errors],\n details: { sessionMappingScript: script, registration, mappingFile },\n };\n}\n\nasync function claudeIntegrationCheck(rt: Runtime): Promise<IntegrationReadinessCheck> {\n const script = await scriptCheck(\n join(rt.homeDir, \".claude\", \"hooks\", \"claude-prompt-hook.js\"),\n join(rt.assetRoot ?? \"\", \"claude\", \"claude-prompt-hook.js\"),\n rt,\n );\n const registration = await registrationCheck(\n join(rt.homeDir, \".claude\", \"settings.json\"),\n \"PreToolUse\",\n \"node ~/.claude/hooks/claude-prompt-hook.js\",\n rt,\n );\n const installed = script.status === \"pass\" && registration.status === \"pass\";\n return {\n label: \"ai-devkit hook\",\n installed,\n status: worstReadinessStatus([script.status, registration.status]),\n errors: [...script.errors, ...registration.errors],\n details: { promptScript: script, registration },\n };\n}\n\nasync function piIntegrationCheck(rt: Runtime): Promise<IntegrationReadinessCheck> {\n let installed = false;\n try {\n const result = await rt.runCommand(\"pi\", [\"list\"]);\n installed = isPiSessionTrackerListed(result.stdout);\n } catch {\n // Safe fixed result below.\n }\n const mapping = await mappingCheck(join(rt.homeDir, \".pi\", \"agent\", \"sessions.json\"), rt);\n const mappingStatus: ReadinessStatus = mapping.valid || !mapping.present ? \"pass\" : \"fail\";\n const status = worstReadinessStatus([installed ? \"pass\" : \"fail\", mappingStatus]);\n return {\n label: \"ai-devkit plugin\",\n installed,\n status,\n errors: [\n ...(!installed ? [\"Pi session tracker is not registered\"] : []),\n ...(mappingStatus === \"fail\" ? mapping.errors : []),\n ],\n details: {\n package: \"@ai-devkit/pi-session-tracker\",\n registryPath: mapping.path,\n registryValid: mapping.valid,\n invalidEntries: mapping.invalidEntries,\n staleEntries: mapping.staleEntries,\n },\n };\n}\n\nfunction isPiSessionTrackerListed(output: string): boolean {\n const normalized = output.toLowerCase();\n return (\n normalized.includes(\"@ai-devkit/pi-session-tracker\") ||\n /\\bsession[\\s-]+tracker\\b/.test(normalized)\n );\n}\n\ntype AuthCheck = (rt: Runtime) => Promise<AuthReadinessCheck>;\ntype IntegrationCheck = (rt: Runtime) => Promise<IntegrationReadinessCheck>;\n\nconst AUTH_CHECKS: Partial<Record<ReadinessAgentType, AuthCheck>> = {\n claude: claudeAuthCheck,\n codex: codexAuthCheck,\n copilot: copilotAuthCheck,\n opencode: opencodeAuthCheck,\n pi: piAuthCheck,\n};\n\nconst INTEGRATION_CHECKS: Partial<Record<ReadinessAgentType, IntegrationCheck>> = {\n claude: claudeIntegrationCheck,\n codex: codexIntegrationCheck,\n pi: piIntegrationCheck,\n};\n\nasync function authCheck(\n agent: ReadinessAgentType,\n rt: Runtime,\n): Promise<AuthReadinessCheck | undefined> {\n return AUTH_CHECKS[agent]?.(rt);\n}\n\nasync function integrationCheck(\n agent: ReadinessAgentType,\n rt: Runtime,\n): Promise<IntegrationReadinessCheck | undefined> {\n return INTEGRATION_CHECKS[agent]?.(rt);\n}\n\nexport async function getAgentReadinessReport(\n agent: ReadinessAgentType,\n options: AgentReadinessOptions = {},\n): Promise<AgentReadinessReport> {\n return agentReadiness(agent, runtime(options));\n}\n\nasync function agentReadiness(\n agent: ReadinessAgentType,\n rt: Runtime,\n): Promise<AgentReadinessReport> {\n const [executable, globalConfig, builtInSkills, auth, integration] = await Promise.all([\n executableCheck(agent, rt),\n directoryCheck(agent, rt),\n builtInSkillsCheck(agent, rt),\n authCheck(agent, rt),\n integrationCheck(agent, rt),\n ]);\n return {\n type: agent,\n executable,\n globalConfig,\n builtInSkills,\n auth,\n integration,\n status: worstReadinessStatus([\n executable.status,\n globalConfig.status,\n ...(auth ? [auth.status] : []),\n ...(integration ? [integration.status] : []),\n ]),\n };\n}\n\nexport async function getAgentReadinessReports(\n options: AgentReadinessOptions = {},\n): Promise<Record<ReadinessAgentType, AgentReadinessReport>> {\n const rt = runtime(options);\n const entries = await Promise.all(\n READINESS_AGENT_TYPES.map(async (agent) => [agent, await agentReadiness(agent, rt)] as const),\n );\n return Object.fromEntries(entries) as Record<ReadinessAgentType, AgentReadinessReport>;\n}\n"],"names":["constants","access","fsAccess","readFile","fsReadFile","execFile","delimiter","join","promisify","getCodexCapacityReport","AGENTS","execFileAsync","READINESS_AGENT_TYPES","ANSI_ESCAPE_PATTERN","RegExp","String","fromCharCode","AGENT_HOME_DIRS","claude","codex","copilot","grok_cli","opencode","pi","runtime","options","homeDir","process","env","HOME","path","PATH","assetRoot","builtInSkillNames","skillRoots","target","mode","R_OK","runCommand","defaultRunCommand","codexAuth","authenticated","command","args","result","encoding","timeout","maxBuffer","stdout","stderr","statusRank","status","worstReadinessStatus","statuses","reduce","worst","current","displayHome","startsWith","slice","length","record","value","Array","isArray","nonEmpty","trim","accessible","rt","resolveExecutable","candidates","split","filter","Boolean","map","directory","checks","Promise","all","available","X_OK","find","check","executableCheck","agent","resolvedPath","errors","directoryCheck","readable","present","builtInSkillsCheck","relativeRoot","required","missing","root","name","includes","scriptCheck","installed","bundled","installedText","matchesBundledAsset","bundledText","matches","containsHook","event","hooks","entries","some","entry","commands","hook","item","type","registrationCheck","parsed","JSON","parse","valid","mappingCheck","text","invalidEntries","staleEntries","Object","pid","sessionPath","test","stale","codexAuthCheck","state","source","provider","availableProviders","claudeAuthCheck","loggedIn","unauthenticated","piProviderNames","names","Set","add","providers","keys","sort","piAuthCheck","sourcePath","Error","opencodeAuthCheck","opencodeAuthProviderNames","copilotAuthCheck","output","line","stripAnsi","match","exec","replace","codexIntegrationCheck","script","registration","mappingFile","label","details","sessionMappingScript","claudeIntegrationCheck","promptScript","piIntegrationCheck","isPiSessionTrackerListed","mapping","mappingStatus","package","registryPath","registryValid","normalized","toLowerCase","AUTH_CHECKS","INTEGRATION_CHECKS","authCheck","integrationCheck","getAgentReadinessReport","agentReadiness","executable","globalConfig","builtInSkills","auth","integration","getAgentReadinessReports","fromEntries"],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export declare class TmuxManager {
|
|
2
|
-
isAvailable(): Promise<boolean>;
|
|
3
|
-
sessionExists(name: string): Promise<boolean>;
|
|
4
|
-
createSession(name: string, cwd: string): Promise<void>;
|
|
5
|
-
sendKeys(session: string, keys: string): Promise<void>;
|
|
6
|
-
killSession(name: string): Promise<void>;
|
|
7
|
-
/**
|
|
8
|
-
* Find the actual agent process PID inside a tmux pane.
|
|
9
|
-
*
|
|
10
|
-
* Strategy: BFS the process tree, return the deepest process whose
|
|
11
|
-
* `ps` command line is accepted by `matches`. The caller supplies the
|
|
12
|
-
* matcher so this method has no agent-type knowledge.
|
|
13
|
-
*
|
|
14
|
-
* This handles two real-world process shapes:
|
|
15
|
-
* - Wrapper case: shell → claude-wrapper (matches) → claude (matches, deeper)
|
|
16
|
-
* → returns the deeper one
|
|
17
|
-
* - Subprocess case: shell → claude (matches) → MCP server child (doesn't match)
|
|
18
|
-
* → returns claude, not the subprocess
|
|
19
|
-
*
|
|
20
|
-
* Returns null when no process matches yet (agent still starting); the
|
|
21
|
-
* caller's poll loop retries.
|
|
22
|
-
*/
|
|
23
|
-
findAgentPid(session: string, matches: (psCommand: string) => boolean): Promise<number | null>;
|
|
24
|
-
private getPanePid;
|
|
25
|
-
private pgrepChildren;
|
|
26
|
-
private getProcessCommand;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=TmuxManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TmuxManager.d.ts","sourceRoot":"","sources":["../../src/terminal/TmuxManager.ts"],"names":[],"mappings":"AAKA,qBAAa,WAAW;IAChB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C;;;;;;;;;;;;;;;OAeG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAyBX,UAAU;YAgBV,aAAa;YAab,iBAAiB;CAShC"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { execFile } from "child_process";
|
|
2
|
-
import { promisify } from "util";
|
|
3
|
-
const execFileAsync = promisify(execFile);
|
|
4
|
-
export class TmuxManager {
|
|
5
|
-
async isAvailable() {
|
|
6
|
-
try {
|
|
7
|
-
await execFileAsync("tmux", [
|
|
8
|
-
"-V"
|
|
9
|
-
]);
|
|
10
|
-
return true;
|
|
11
|
-
} catch {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
async sessionExists(name) {
|
|
16
|
-
try {
|
|
17
|
-
await execFileAsync("tmux", [
|
|
18
|
-
"has-session",
|
|
19
|
-
"-t",
|
|
20
|
-
name
|
|
21
|
-
]);
|
|
22
|
-
return true;
|
|
23
|
-
} catch {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
async createSession(name, cwd) {
|
|
28
|
-
await execFileAsync("tmux", [
|
|
29
|
-
"new-session",
|
|
30
|
-
"-d",
|
|
31
|
-
"-s",
|
|
32
|
-
name,
|
|
33
|
-
"-c",
|
|
34
|
-
cwd
|
|
35
|
-
]);
|
|
36
|
-
}
|
|
37
|
-
async sendKeys(session, keys) {
|
|
38
|
-
await execFileAsync("tmux", [
|
|
39
|
-
"send-keys",
|
|
40
|
-
"-t",
|
|
41
|
-
session,
|
|
42
|
-
keys,
|
|
43
|
-
"Enter"
|
|
44
|
-
]);
|
|
45
|
-
}
|
|
46
|
-
async killSession(name) {
|
|
47
|
-
try {
|
|
48
|
-
await execFileAsync("tmux", [
|
|
49
|
-
"kill-session",
|
|
50
|
-
"-t",
|
|
51
|
-
name
|
|
52
|
-
]);
|
|
53
|
-
} catch {
|
|
54
|
-
// Already gone — ignore
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Find the actual agent process PID inside a tmux pane.
|
|
59
|
-
*
|
|
60
|
-
* Strategy: BFS the process tree, return the deepest process whose
|
|
61
|
-
* `ps` command line is accepted by `matches`. The caller supplies the
|
|
62
|
-
* matcher so this method has no agent-type knowledge.
|
|
63
|
-
*
|
|
64
|
-
* This handles two real-world process shapes:
|
|
65
|
-
* - Wrapper case: shell → claude-wrapper (matches) → claude (matches, deeper)
|
|
66
|
-
* → returns the deeper one
|
|
67
|
-
* - Subprocess case: shell → claude (matches) → MCP server child (doesn't match)
|
|
68
|
-
* → returns claude, not the subprocess
|
|
69
|
-
*
|
|
70
|
-
* Returns null when no process matches yet (agent still starting); the
|
|
71
|
-
* caller's poll loop retries.
|
|
72
|
-
*/ async findAgentPid(session, matches) {
|
|
73
|
-
const panePid = await this.getPanePid(session);
|
|
74
|
-
if (panePid === null) return null;
|
|
75
|
-
const visited = new Set();
|
|
76
|
-
const queue = [
|
|
77
|
-
panePid
|
|
78
|
-
];
|
|
79
|
-
let deepestMatch = null;
|
|
80
|
-
while(queue.length > 0){
|
|
81
|
-
const pid = queue.shift();
|
|
82
|
-
if (visited.has(pid)) continue;
|
|
83
|
-
visited.add(pid);
|
|
84
|
-
const command = await this.getProcessCommand(pid);
|
|
85
|
-
if (command && matches(command)) {
|
|
86
|
-
deepestMatch = pid;
|
|
87
|
-
}
|
|
88
|
-
const children = await this.pgrepChildren(pid);
|
|
89
|
-
queue.push(...children);
|
|
90
|
-
}
|
|
91
|
-
return deepestMatch;
|
|
92
|
-
}
|
|
93
|
-
async getPanePid(session) {
|
|
94
|
-
try {
|
|
95
|
-
const { stdout } = await execFileAsync("tmux", [
|
|
96
|
-
"list-panes",
|
|
97
|
-
"-t",
|
|
98
|
-
session,
|
|
99
|
-
"-F",
|
|
100
|
-
"#{pane_pid}"
|
|
101
|
-
]);
|
|
102
|
-
const panePid = parseInt(stdout.trim().split("\n")[0], 10);
|
|
103
|
-
return isNaN(panePid) ? null : panePid;
|
|
104
|
-
} catch {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
async pgrepChildren(pid) {
|
|
109
|
-
try {
|
|
110
|
-
const { stdout } = await execFileAsync("pgrep", [
|
|
111
|
-
"-P",
|
|
112
|
-
String(pid)
|
|
113
|
-
]);
|
|
114
|
-
return stdout.trim().split("\n").map((s)=>parseInt(s, 10)).filter((n)=>!isNaN(n));
|
|
115
|
-
} catch {
|
|
116
|
-
return [];
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
async getProcessCommand(pid) {
|
|
120
|
-
try {
|
|
121
|
-
const { stdout } = await execFileAsync("ps", [
|
|
122
|
-
"-p",
|
|
123
|
-
String(pid),
|
|
124
|
-
"-o",
|
|
125
|
-
"command="
|
|
126
|
-
]);
|
|
127
|
-
const trimmed = stdout.trim();
|
|
128
|
-
return trimmed || null;
|
|
129
|
-
} catch {
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
//# sourceMappingURL=TmuxManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/terminal/TmuxManager.ts"],"sourcesContent":["import { execFile } from \"child_process\";\nimport { promisify } from \"util\";\n\nconst execFileAsync = promisify(execFile);\n\nexport class TmuxManager {\n async isAvailable(): Promise<boolean> {\n try {\n await execFileAsync(\"tmux\", [\"-V\"]);\n return true;\n } catch {\n return false;\n }\n }\n\n async sessionExists(name: string): Promise<boolean> {\n try {\n await execFileAsync(\"tmux\", [\"has-session\", \"-t\", name]);\n return true;\n } catch {\n return false;\n }\n }\n\n async createSession(name: string, cwd: string): Promise<void> {\n await execFileAsync(\"tmux\", [\"new-session\", \"-d\", \"-s\", name, \"-c\", cwd]);\n }\n\n async sendKeys(session: string, keys: string): Promise<void> {\n await execFileAsync(\"tmux\", [\"send-keys\", \"-t\", session, keys, \"Enter\"]);\n }\n\n async killSession(name: string): Promise<void> {\n try {\n await execFileAsync(\"tmux\", [\"kill-session\", \"-t\", name]);\n } catch {\n // Already gone — ignore\n }\n }\n\n /**\n * Find the actual agent process PID inside a tmux pane.\n *\n * Strategy: BFS the process tree, return the deepest process whose\n * `ps` command line is accepted by `matches`. The caller supplies the\n * matcher so this method has no agent-type knowledge.\n *\n * This handles two real-world process shapes:\n * - Wrapper case: shell → claude-wrapper (matches) → claude (matches, deeper)\n * → returns the deeper one\n * - Subprocess case: shell → claude (matches) → MCP server child (doesn't match)\n * → returns claude, not the subprocess\n *\n * Returns null when no process matches yet (agent still starting); the\n * caller's poll loop retries.\n */\n async findAgentPid(\n session: string,\n matches: (psCommand: string) => boolean,\n ): Promise<number | null> {\n const panePid = await this.getPanePid(session);\n if (panePid === null) return null;\n\n const visited = new Set<number>();\n const queue: number[] = [panePid];\n let deepestMatch: number | null = null;\n\n while (queue.length > 0) {\n const pid = queue.shift()!;\n if (visited.has(pid)) continue;\n visited.add(pid);\n\n const command = await this.getProcessCommand(pid);\n if (command && matches(command)) {\n deepestMatch = pid;\n }\n\n const children = await this.pgrepChildren(pid);\n queue.push(...children);\n }\n\n return deepestMatch;\n }\n\n private async getPanePid(session: string): Promise<number | null> {\n try {\n const { stdout } = await execFileAsync(\"tmux\", [\n \"list-panes\",\n \"-t\",\n session,\n \"-F\",\n \"#{pane_pid}\",\n ]);\n const panePid = parseInt(stdout.trim().split(\"\\n\")[0], 10);\n return isNaN(panePid) ? null : panePid;\n } catch {\n return null;\n }\n }\n\n private async pgrepChildren(pid: number): Promise<number[]> {\n try {\n const { stdout } = await execFileAsync(\"pgrep\", [\"-P\", String(pid)]);\n return stdout\n .trim()\n .split(\"\\n\")\n .map((s) => parseInt(s, 10))\n .filter((n) => !isNaN(n));\n } catch {\n return [];\n }\n }\n\n private async getProcessCommand(pid: number): Promise<string | null> {\n try {\n const { stdout } = await execFileAsync(\"ps\", [\"-p\", String(pid), \"-o\", \"command=\"]);\n const trimmed = stdout.trim();\n return trimmed || null;\n } catch {\n return null;\n }\n }\n}\n"],"names":["execFile","promisify","execFileAsync","TmuxManager","isAvailable","sessionExists","name","createSession","cwd","sendKeys","session","keys","killSession","findAgentPid","matches","panePid","getPanePid","visited","Set","queue","deepestMatch","length","pid","shift","has","add","command","getProcessCommand","children","pgrepChildren","push","stdout","parseInt","trim","split","isNaN","String","map","s","filter","n","trimmed"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,SAAS,QAAQ,OAAO;AAEjC,MAAMC,gBAAgBD,UAAUD;AAEhC,OAAO,MAAMG;IACX,MAAMC,cAAgC;QACpC,IAAI;YACF,MAAMF,cAAc,QAAQ;gBAAC;aAAK;YAClC,OAAO;QACT,EAAE,OAAM;YACN,OAAO;QACT;IACF;IAEA,MAAMG,cAAcC,IAAY,EAAoB;QAClD,IAAI;YACF,MAAMJ,cAAc,QAAQ;gBAAC;gBAAe;gBAAMI;aAAK;YACvD,OAAO;QACT,EAAE,OAAM;YACN,OAAO;QACT;IACF;IAEA,MAAMC,cAAcD,IAAY,EAAEE,GAAW,EAAiB;QAC5D,MAAMN,cAAc,QAAQ;YAAC;YAAe;YAAM;YAAMI;YAAM;YAAME;SAAI;IAC1E;IAEA,MAAMC,SAASC,OAAe,EAAEC,IAAY,EAAiB;QAC3D,MAAMT,cAAc,QAAQ;YAAC;YAAa;YAAMQ;YAASC;YAAM;SAAQ;IACzE;IAEA,MAAMC,YAAYN,IAAY,EAAiB;QAC7C,IAAI;YACF,MAAMJ,cAAc,QAAQ;gBAAC;gBAAgB;gBAAMI;aAAK;QAC1D,EAAE,OAAM;QACN,wBAAwB;QAC1B;IACF;IAEA;;;;;;;;;;;;;;;GAeC,GACD,MAAMO,aACJH,OAAe,EACfI,OAAuC,EACf;QACxB,MAAMC,UAAU,MAAM,IAAI,CAACC,UAAU,CAACN;QACtC,IAAIK,YAAY,MAAM,OAAO;QAE7B,MAAME,UAAU,IAAIC;QACpB,MAAMC,QAAkB;YAACJ;SAAQ;QACjC,IAAIK,eAA8B;QAElC,MAAOD,MAAME,MAAM,GAAG,EAAG;YACvB,MAAMC,MAAMH,MAAMI,KAAK;YACvB,IAAIN,QAAQO,GAAG,CAACF,MAAM;YACtBL,QAAQQ,GAAG,CAACH;YAEZ,MAAMI,UAAU,MAAM,IAAI,CAACC,iBAAiB,CAACL;YAC7C,IAAII,WAAWZ,QAAQY,UAAU;gBAC/BN,eAAeE;YACjB;YAEA,MAAMM,WAAW,MAAM,IAAI,CAACC,aAAa,CAACP;YAC1CH,MAAMW,IAAI,IAAIF;QAChB;QAEA,OAAOR;IACT;IAEA,MAAcJ,WAAWN,OAAe,EAA0B;QAChE,IAAI;YACF,MAAM,EAAEqB,MAAM,EAAE,GAAG,MAAM7B,cAAc,QAAQ;gBAC7C;gBACA;gBACAQ;gBACA;gBACA;aACD;YACD,MAAMK,UAAUiB,SAASD,OAAOE,IAAI,GAAGC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YACvD,OAAOC,MAAMpB,WAAW,OAAOA;QACjC,EAAE,OAAM;YACN,OAAO;QACT;IACF;IAEA,MAAcc,cAAcP,GAAW,EAAqB;QAC1D,IAAI;YACF,MAAM,EAAES,MAAM,EAAE,GAAG,MAAM7B,cAAc,SAAS;gBAAC;gBAAMkC,OAAOd;aAAK;YACnE,OAAOS,OACJE,IAAI,GACJC,KAAK,CAAC,MACNG,GAAG,CAAC,CAACC,IAAMN,SAASM,GAAG,KACvBC,MAAM,CAAC,CAACC,IAAM,CAACL,MAAMK;QAC1B,EAAE,OAAM;YACN,OAAO,EAAE;QACX;IACF;IAEA,MAAcb,kBAAkBL,GAAW,EAA0B;QACnE,IAAI;YACF,MAAM,EAAES,MAAM,EAAE,GAAG,MAAM7B,cAAc,MAAM;gBAAC;gBAAMkC,OAAOd;gBAAM;gBAAM;aAAW;YAClF,MAAMmB,UAAUV,OAAOE,IAAI;YAC3B,OAAOQ,WAAW;QACpB,EAAE,OAAM;YACN,OAAO;QACT;IACF;AACF"}
|
package/dist/terminal/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { TerminalFocusManager } from "./TerminalFocusManager.js";
|
|
2
|
-
export { TerminalType } from "./TerminalFocusManager.js";
|
|
3
|
-
export type { TerminalLocation } from "./TerminalFocusManager.js";
|
|
4
|
-
export { TtyWriter } from "./TtyWriter.js";
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/terminal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/terminal/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/terminal/index.ts"],"sourcesContent":["export { TerminalFocusManager } from \"./TerminalFocusManager.js\";\nexport { TerminalType } from \"./TerminalFocusManager.js\";\nexport type { TerminalLocation } from \"./TerminalFocusManager.js\";\nexport { TtyWriter } from \"./TtyWriter.js\";\n"],"names":["TerminalFocusManager","TerminalType","TtyWriter"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,SAAS,QAAQ,iBAAiB"}
|
package/dist/utils/agents.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { AgentType } from "../adapters/AgentAdapter.js";
|
|
2
|
-
export type StartableAgentType = Extract<AgentType, "claude" | "codex" | "copilot" | "gemini_cli" | "grok_cli" | "antigravity_cli" | "opencode" | "pi" | "kiro">;
|
|
3
|
-
export interface AgentConfig {
|
|
4
|
-
/** Shell command to launch the agent (sent to tmux via `send-keys`). */
|
|
5
|
-
command: string;
|
|
6
|
-
/** Returns true if the given `ps` command line belongs to this agent. */
|
|
7
|
-
matches: (psCommand: string) => boolean;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Per-agent configuration: launch command plus a matcher that recognizes the
|
|
11
|
-
* agent's process in `ps` output. Each matcher knows that agent's distribution
|
|
12
|
-
* quirks (e.g. gemini ships as a Node script so its real binary is in argv[1..]).
|
|
13
|
-
*/
|
|
14
|
-
export declare const AGENTS: Record<StartableAgentType, AgentConfig>;
|
|
15
|
-
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/utils/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,SAAS,EACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,IAAI,GACJ,MAAM,CACT,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAU1D,CAAC"}
|
package/dist/utils/agents.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
/**
|
|
3
|
-
* Per-agent configuration: launch command plus a matcher that recognizes the
|
|
4
|
-
* agent's process in `ps` output. Each matcher knows that agent's distribution
|
|
5
|
-
* quirks (e.g. gemini ships as a Node script so its real binary is in argv[1..]).
|
|
6
|
-
*/ export const AGENTS = {
|
|
7
|
-
claude: {
|
|
8
|
-
command: "claude",
|
|
9
|
-
matches: matchArgv0("claude")
|
|
10
|
-
},
|
|
11
|
-
codex: {
|
|
12
|
-
command: "codex",
|
|
13
|
-
matches: matchArgv0("codex")
|
|
14
|
-
},
|
|
15
|
-
copilot: {
|
|
16
|
-
command: "copilot",
|
|
17
|
-
matches: matchArgv0Name("copilot-cli")
|
|
18
|
-
},
|
|
19
|
-
gemini_cli: {
|
|
20
|
-
command: "gemini",
|
|
21
|
-
matches: matchAnyToken("gemini")
|
|
22
|
-
},
|
|
23
|
-
grok_cli: {
|
|
24
|
-
command: "grok",
|
|
25
|
-
matches: matchArgv0("grok")
|
|
26
|
-
},
|
|
27
|
-
antigravity_cli: {
|
|
28
|
-
command: "agy",
|
|
29
|
-
matches: matchArgv0("agy")
|
|
30
|
-
},
|
|
31
|
-
opencode: {
|
|
32
|
-
command: "opencode",
|
|
33
|
-
matches: matchArgv0("opencode")
|
|
34
|
-
},
|
|
35
|
-
pi: {
|
|
36
|
-
command: "pi",
|
|
37
|
-
matches: matchAnyBasename([
|
|
38
|
-
"pi"
|
|
39
|
-
])
|
|
40
|
-
},
|
|
41
|
-
kiro: {
|
|
42
|
-
command: "kiro-cli",
|
|
43
|
-
matches: matchAnyBasename([
|
|
44
|
-
"kiro-cli",
|
|
45
|
-
"kiro"
|
|
46
|
-
])
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
function matchArgv0(name) {
|
|
50
|
-
const lower = name.toLowerCase();
|
|
51
|
-
return (psCommand)=>{
|
|
52
|
-
const token = psCommand.trim().split(/\s+/)[0];
|
|
53
|
-
return token ? path.basename(token).toLowerCase() === lower : false;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function matchArgv0Name(name) {
|
|
57
|
-
const lower = name.toLowerCase();
|
|
58
|
-
return (psCommand)=>{
|
|
59
|
-
const token = psCommand.trim().split(/\s+/)[0];
|
|
60
|
-
return token ? token.toLowerCase().includes(lower) : false;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
function matchAnyToken(name) {
|
|
64
|
-
const lower = name.toLowerCase();
|
|
65
|
-
return (psCommand)=>{
|
|
66
|
-
for (const token of psCommand.trim().split(/\s+/)){
|
|
67
|
-
if (path.basename(token).toLowerCase() === lower) return true;
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
function matchAnyBasename(names) {
|
|
73
|
-
const lowers = new Set(names.map((name)=>name.toLowerCase()));
|
|
74
|
-
return (psCommand)=>{
|
|
75
|
-
for (const token of psCommand.trim().split(/\s+/)){
|
|
76
|
-
if (lowers.has(path.basename(token).toLowerCase())) return true;
|
|
77
|
-
}
|
|
78
|
-
return false;
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
//# sourceMappingURL=agents.js.map
|
package/dist/utils/agents.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/agents.ts"],"sourcesContent":["import path from \"path\";\nimport type { AgentType } from \"../adapters/AgentAdapter.js\";\n\nexport type StartableAgentType = Extract<\n AgentType,\n | \"claude\"\n | \"codex\"\n | \"copilot\"\n | \"gemini_cli\"\n | \"grok_cli\"\n | \"antigravity_cli\"\n | \"opencode\"\n | \"pi\"\n | \"kiro\"\n>;\n\nexport interface AgentConfig {\n /** Shell command to launch the agent (sent to tmux via `send-keys`). */\n command: string;\n /** Returns true if the given `ps` command line belongs to this agent. */\n matches: (psCommand: string) => boolean;\n}\n\n/**\n * Per-agent configuration: launch command plus a matcher that recognizes the\n * agent's process in `ps` output. Each matcher knows that agent's distribution\n * quirks (e.g. gemini ships as a Node script so its real binary is in argv[1..]).\n */\nexport const AGENTS: Record<StartableAgentType, AgentConfig> = {\n claude: { command: \"claude\", matches: matchArgv0(\"claude\") },\n codex: { command: \"codex\", matches: matchArgv0(\"codex\") },\n copilot: { command: \"copilot\", matches: matchArgv0Name(\"copilot-cli\") },\n gemini_cli: { command: \"gemini\", matches: matchAnyToken(\"gemini\") },\n grok_cli: { command: \"grok\", matches: matchArgv0(\"grok\") },\n antigravity_cli: { command: \"agy\", matches: matchArgv0(\"agy\") },\n opencode: { command: \"opencode\", matches: matchArgv0(\"opencode\") },\n pi: { command: \"pi\", matches: matchAnyBasename([\"pi\"]) },\n kiro: { command: \"kiro-cli\", matches: matchAnyBasename([\"kiro-cli\", \"kiro\"]) },\n};\n\nfunction matchArgv0(name: string): (psCommand: string) => boolean {\n const lower = name.toLowerCase();\n return (psCommand) => {\n const token = psCommand.trim().split(/\\s+/)[0];\n return token ? path.basename(token).toLowerCase() === lower : false;\n };\n}\n\nfunction matchArgv0Name(name: string): (psCommand: string) => boolean {\n const lower = name.toLowerCase();\n return (psCommand) => {\n const token = psCommand.trim().split(/\\s+/)[0];\n return token ? token.toLowerCase().includes(lower) : false;\n };\n}\n\nfunction matchAnyToken(name: string): (psCommand: string) => boolean {\n const lower = name.toLowerCase();\n return (psCommand) => {\n for (const token of psCommand.trim().split(/\\s+/)) {\n if (path.basename(token).toLowerCase() === lower) return true;\n }\n return false;\n };\n}\n\nfunction matchAnyBasename(names: string[]): (psCommand: string) => boolean {\n const lowers = new Set(names.map((name) => name.toLowerCase()));\n return (psCommand) => {\n for (const token of psCommand.trim().split(/\\s+/)) {\n if (lowers.has(path.basename(token).toLowerCase())) return true;\n }\n return false;\n };\n}\n"],"names":["path","AGENTS","claude","command","matches","matchArgv0","codex","copilot","matchArgv0Name","gemini_cli","matchAnyToken","grok_cli","antigravity_cli","opencode","pi","matchAnyBasename","kiro","name","lower","toLowerCase","psCommand","token","trim","split","basename","includes","names","lowers","Set","map","has"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAuBxB;;;;CAIC,GACD,OAAO,MAAMC,SAAkD;IAC7DC,QAAQ;QAAEC,SAAS;QAAUC,SAASC,WAAW;IAAU;IAC3DC,OAAO;QAAEH,SAAS;QAASC,SAASC,WAAW;IAAS;IACxDE,SAAS;QAAEJ,SAAS;QAAWC,SAASI,eAAe;IAAe;IACtEC,YAAY;QAAEN,SAAS;QAAUC,SAASM,cAAc;IAAU;IAClEC,UAAU;QAAER,SAAS;QAAQC,SAASC,WAAW;IAAQ;IACzDO,iBAAiB;QAAET,SAAS;QAAOC,SAASC,WAAW;IAAO;IAC9DQ,UAAU;QAAEV,SAAS;QAAYC,SAASC,WAAW;IAAY;IACjES,IAAI;QAAEX,SAAS;QAAMC,SAASW,iBAAiB;YAAC;SAAK;IAAE;IACvDC,MAAM;QAAEb,SAAS;QAAYC,SAASW,iBAAiB;YAAC;YAAY;SAAO;IAAE;AAC/E,EAAE;AAEF,SAASV,WAAWY,IAAY;IAC9B,MAAMC,QAAQD,KAAKE,WAAW;IAC9B,OAAO,CAACC;QACN,MAAMC,QAAQD,UAAUE,IAAI,GAAGC,KAAK,CAAC,MAAM,CAAC,EAAE;QAC9C,OAAOF,QAAQrB,KAAKwB,QAAQ,CAACH,OAAOF,WAAW,OAAOD,QAAQ;IAChE;AACF;AAEA,SAASV,eAAeS,IAAY;IAClC,MAAMC,QAAQD,KAAKE,WAAW;IAC9B,OAAO,CAACC;QACN,MAAMC,QAAQD,UAAUE,IAAI,GAAGC,KAAK,CAAC,MAAM,CAAC,EAAE;QAC9C,OAAOF,QAAQA,MAAMF,WAAW,GAAGM,QAAQ,CAACP,SAAS;IACvD;AACF;AAEA,SAASR,cAAcO,IAAY;IACjC,MAAMC,QAAQD,KAAKE,WAAW;IAC9B,OAAO,CAACC;QACN,KAAK,MAAMC,SAASD,UAAUE,IAAI,GAAGC,KAAK,CAAC,OAAQ;YACjD,IAAIvB,KAAKwB,QAAQ,CAACH,OAAOF,WAAW,OAAOD,OAAO,OAAO;QAC3D;QACA,OAAO;IACT;AACF;AAEA,SAASH,iBAAiBW,KAAe;IACvC,MAAMC,SAAS,IAAIC,IAAIF,MAAMG,GAAG,CAAC,CAACZ,OAASA,KAAKE,WAAW;IAC3D,OAAO,CAACC;QACN,KAAK,MAAMC,SAASD,UAAUE,IAAI,GAAGC,KAAK,CAAC,OAAQ;YACjD,IAAII,OAAOG,GAAG,CAAC9B,KAAKwB,QAAQ,CAACH,OAAOF,WAAW,KAAK,OAAO;QAC7D;QACA,OAAO;IACT;AACF"}
|
package/dist/utils/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { listAgentProcesses, batchGetProcessCwds, batchGetProcessStartTimes, enrichProcesses, captureProcessSnapshot, } from "./process.js";
|
|
2
|
-
export { getProcessTty } from "./process.js";
|
|
3
|
-
export { batchGetSessionFileBirthtimes } from "./session.js";
|
|
4
|
-
export type { SessionFile } from "./session.js";
|
|
5
|
-
export { matchProcessesToSessions, generateAgentName } from "./matching.js";
|
|
6
|
-
export type { MatchResult } from "./matching.js";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/utils/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { listAgentProcesses, batchGetProcessCwds, batchGetProcessStartTimes, enrichProcesses, captureProcessSnapshot } from "./process.js";
|
|
2
|
-
export { getProcessTty } from "./process.js";
|
|
3
|
-
export { batchGetSessionFileBirthtimes } from "./session.js";
|
|
4
|
-
export { matchProcessesToSessions, generateAgentName } from "./matching.js";
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export {\n listAgentProcesses,\n batchGetProcessCwds,\n batchGetProcessStartTimes,\n enrichProcesses,\n captureProcessSnapshot,\n} from \"./process.js\";\nexport { getProcessTty } from \"./process.js\";\nexport { batchGetSessionFileBirthtimes } from \"./session.js\";\nexport type { SessionFile } from \"./session.js\";\nexport { matchProcessesToSessions, generateAgentName } from \"./matching.js\";\nexport type { MatchResult } from \"./matching.js\";\n"],"names":["listAgentProcesses","batchGetProcessCwds","batchGetProcessStartTimes","enrichProcesses","captureProcessSnapshot","getProcessTty","batchGetSessionFileBirthtimes","matchProcessesToSessions","generateAgentName"],"mappings":"AAAA,SACEA,kBAAkB,EAClBC,mBAAmB,EACnBC,yBAAyB,EACzBC,eAAe,EACfC,sBAAsB,QACjB,eAAe;AACtB,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,6BAA6B,QAAQ,eAAe;AAE7D,SAASC,wBAAwB,EAAEC,iBAAiB,QAAQ,gBAAgB"}
|