@ai-devkit/agent-manager 0.37.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 +0 -4
- package/dist/AgentManager.d.ts.map +1 -1
- package/dist/AgentManager.js +2 -2
- package/dist/AgentManager.js.map +1 -1
- 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 +21 -12
- 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/claude/durable/ClaudePrintAgent.integration.test.js +2 -1
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.js.map +1 -1
- package/dist/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.js.map +1 -1
- package/dist/__tests__/harnesses/codex/durable/CodexCliProbe.test.js +7 -15
- package/dist/__tests__/harnesses/codex/durable/CodexCliProbe.test.js.map +1 -1
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.js +3 -1
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.js.map +1 -1
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.js +11 -26
- package/dist/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.js.map +1 -1
- package/dist/__tests__/harnesses/codex/durable/CodexPrintRunner.test.js +3 -7
- package/dist/__tests__/harnesses/codex/durable/CodexPrintRunner.test.js.map +1 -1
- package/dist/__tests__/harnesses/pi/durable/PiCliProbe.test.js +5 -11
- package/dist/__tests__/harnesses/pi/durable/PiCliProbe.test.js.map +1 -1
- package/dist/__tests__/harnesses/pi/durable/PiPrintAgentService.test.js +9 -19
- package/dist/__tests__/harnesses/pi/durable/PiPrintAgentService.test.js.map +1 -1
- package/dist/__tests__/harnesses/pi/durable/PiPrintRunner.test.js +3 -7
- package/dist/__tests__/harnesses/pi/durable/PiPrintRunner.test.js.map +1 -1
- package/dist/__tests__/{readiness → harnesses/readiness}/AgentReadiness.test.js +31 -10
- 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.map +1 -1
- package/dist/__tests__/terminal/TmuxManager.test.js +1 -1
- package/dist/__tests__/terminal/TmuxManager.test.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/{claude.js → providers/anthropic.js} +10 -128
- 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/{zai.js → providers/zai.js} +17 -62
- 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/{codex.d.ts → sources/codex.d.ts} +5 -9
- package/dist/capacity/sources/codex.d.ts.map +1 -0
- package/dist/capacity/{codex.js → sources/codex.js} +31 -84
- 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/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/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/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/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/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/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/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/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/{readiness/AgentReadiness.d.ts → harnesses/readiness/types.d.ts} +19 -10
- 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/index.d.ts +16 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -23
- 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/{terminal → runtime/tmux}/TmuxManager.js +9 -28
- 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/package.json +1 -1
- package/src/AgentManager.ts +1 -1
- 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 +15 -15
- package/src/__tests__/capacity/wham.test.ts +1 -1
- package/src/__tests__/capacity/zai.test.ts +27 -62
- package/src/__tests__/harnesses/claude/durable/ClaudePrintAgent.integration.test.ts +2 -2
- package/src/__tests__/harnesses/claude/durable/ClaudePrintRunner.test.ts +1 -1
- package/src/__tests__/harnesses/codex/durable/CodexCliProbe.test.ts +14 -19
- package/src/__tests__/harnesses/codex/durable/CodexPrintAgent.integration.test.ts +3 -3
- package/src/__tests__/harnesses/codex/durable/CodexPrintAgentService.test.ts +24 -30
- package/src/__tests__/harnesses/codex/durable/CodexPrintRunner.test.ts +4 -8
- package/src/__tests__/harnesses/pi/durable/PiCliProbe.test.ts +7 -11
- package/src/__tests__/harnesses/pi/durable/PiPrintAgentService.test.ts +19 -22
- package/src/__tests__/harnesses/pi/durable/PiPrintRunner.test.ts +7 -8
- package/src/__tests__/{readiness → harnesses/readiness}/AgentReadiness.test.ts +36 -9
- 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 +1 -1
- package/src/__tests__/terminal/TmuxManager.test.ts +1 -1
- package/src/capacity/index.ts +29 -23
- package/src/capacity/{claude.ts → providers/anthropic.ts} +16 -131
- package/src/capacity/providers/openai-platform.ts +150 -0
- package/src/capacity/{wham.ts → providers/openai-subscription.ts} +86 -8
- package/src/capacity/{zai.ts → providers/zai.ts} +29 -111
- package/src/capacity/sources/claude.ts +30 -0
- package/src/capacity/{codex.ts → sources/codex.ts} +54 -124
- package/src/capacity/sources/pi.ts +131 -0
- package/src/capacity/types.ts +3 -0
- package/src/harnesses/claude/credentials.ts +122 -0
- package/src/harnesses/claude/readiness.ts +69 -0
- package/src/harnesses/codex/credentials.ts +81 -0
- package/src/harnesses/codex/readiness.ts +72 -0
- package/src/harnesses/copilot/readiness.ts +33 -0
- package/src/harnesses/opencode/readiness.ts +48 -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/{utils/agents.ts → harnesses/runtimeProfiles.ts} +34 -38
- package/src/index.ts +15 -128
- 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/{terminal → runtime/tmux}/TmuxManager.ts +9 -30
- 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/dist/__tests__/readiness/AgentReadiness.test.js.map +0 -1
- package/dist/__tests__/utils/agents.test.js +0 -93
- package/dist/__tests__/utils/agents.test.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.map +0 -1
- package/dist/capacity/codex.d.ts.map +0 -1
- package/dist/capacity/codex.js.map +0 -1
- package/dist/capacity/openai.d.ts +0 -47
- package/dist/capacity/openai.d.ts.map +0 -1
- package/dist/capacity/openai.js +0 -307
- 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.map +0 -1
- 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.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 -16
- package/dist/utils/agents.d.ts.map +0 -1
- package/dist/utils/agents.js +0 -117
- package/dist/utils/agents.js.map +0 -1
- package/dist/utils/index.d.ts +0 -8
- 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__/utils/agents.test.ts +0 -105
- package/src/capacity/openai.ts +0 -355
- package/src/readiness/AgentReadiness.ts +0 -730
- package/src/terminal/index.ts +0 -4
- package/src/utils/index.ts +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/harnesses/readiness/checks.ts"],"sourcesContent":["import { execFile } from \"node:child_process\";\nimport { constants } from \"node:fs\";\nimport { access as fsAccess, readFile as fsReadFile } from \"node:fs/promises\";\nimport { delimiter, join } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { getCodexCapacityReport } from \"../../capacity/index.js\";\nimport { HARNESS_RUNTIME_PROFILES } from \"../runtimeProfiles.js\";\nimport type {\n AgentReadinessOptions,\n BuiltInSkillsReadinessCheck,\n DirectoryReadinessCheck,\n ExecutableReadinessCheck,\n ReadinessAgentType,\n ReadinessCheck,\n ReadinessRuntime,\n ReadinessStatus,\n} from \"./types.js\";\n\nconst execFileAsync = promisify(execFile);\n\nexport function createReadinessRuntime(options: AgentReadinessOptions): ReadinessRuntime {\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[]) {\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\nexport function displayHome(target: string, homeDir: string): string {\n return target === homeDir\n ? \"~\"\n : target.startsWith(`${homeDir}/`)\n ? `~${target.slice(homeDir.length)}`\n : target;\n}\n\nexport function 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\nexport function nonEmpty(value: unknown): boolean {\n return typeof value === \"string\" && value.trim().length > 0;\n}\n\nexport async function accessible(\n target: string,\n runtime: ReadinessRuntime,\n mode = constants.R_OK,\n): Promise<boolean> {\n try {\n await runtime.access(target, mode);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function resolveExecutable(\n command: string,\n runtime: ReadinessRuntime,\n): Promise<string | null> {\n const candidates = runtime.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, runtime, constants.X_OK),\n })),\n );\n return checks.find((check) => check.available)?.target ?? null;\n}\n\nexport async function executableCheck(\n agent: ReadinessAgentType,\n runtime: ReadinessRuntime,\n): Promise<ExecutableReadinessCheck> {\n const command = HARNESS_RUNTIME_PROFILES[agent].command;\n const resolvedPath = await resolveExecutable(command, runtime);\n return {\n command,\n path: resolvedPath,\n status: resolvedPath ? \"pass\" : \"fail\",\n errors: resolvedPath ? [] : [`${command} was not found on PATH`],\n };\n}\n\nexport async function directoryCheck(\n configDir: string,\n runtime: ReadinessRuntime,\n): Promise<DirectoryReadinessCheck> {\n const target = join(runtime.homeDir, configDir);\n const readable = await accessible(target, runtime);\n return {\n path: displayHome(target, runtime.homeDir),\n present: readable,\n readable,\n status: readable ? \"pass\" : \"fail\",\n errors: readable ? [] : [\"global configuration directory is unavailable\"],\n };\n}\n\nexport async function builtInSkillsCheck(\n agent: ReadinessAgentType,\n runtime: ReadinessRuntime,\n): Promise<BuiltInSkillsReadinessCheck> {\n const relativeRoot = runtime.skillRoots[agent];\n if (!relativeRoot) {\n return {\n path: null,\n required: runtime.builtInSkillNames.length,\n present: 0,\n missing: [...runtime.builtInSkillNames],\n status: \"info\",\n errors: [],\n };\n }\n const root = join(runtime.homeDir, relativeRoot);\n const checks = await Promise.all(\n runtime.builtInSkillNames.map(async (name) => ({\n name,\n present: await accessible(join(root, name, \"SKILL.md\"), runtime),\n })),\n );\n const present = checks.filter((check) => check.present).map((check) => check.name);\n const missing = runtime.builtInSkillNames.filter((name) => !present.includes(name));\n return {\n path: displayHome(root, runtime.homeDir),\n required: runtime.builtInSkillNames.length,\n present: present.length,\n missing: [...missing],\n status: \"info\",\n errors: [],\n };\n}\n\nexport async function scriptCheck(\n installed: string,\n bundled: string,\n runtime: ReadinessRuntime,\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 runtime.readFile(installed);\n } catch {\n return {\n path: displayHome(installed, runtime.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 runtime.readFile(bundled);\n const matches = installedText === bundledText;\n return {\n path: displayHome(installed, runtime.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, runtime.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\nexport async function registrationCheck(\n target: string,\n event: string,\n command: string,\n runtime: ReadinessRuntime,\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 runtime.readFile(target));\n const valid = containsHook(parsed, event, command);\n return {\n path: displayHome(target, runtime.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, runtime.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\nexport async function mappingCheck(\n target: string,\n runtime: ReadinessRuntime,\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 runtime.readFile(target);\n } catch {\n return {\n path: displayHome(target, runtime.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, runtime.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, runtime)) };\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, runtime.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"],"names":["execFile","constants","access","fsAccess","readFile","fsReadFile","delimiter","join","promisify","getCodexCapacityReport","HARNESS_RUNTIME_PROFILES","execFileAsync","createReadinessRuntime","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","runtime","resolveExecutable","candidates","split","filter","Boolean","map","directory","checks","Promise","all","available","X_OK","find","check","executableCheck","agent","resolvedPath","errors","directoryCheck","configDir","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"],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
export declare const READINESS_AGENT_TYPES: readonly ["claude", "codex", "gemini_cli", "grok_cli", "kiro", "antigravity_cli", "opencode", "copilot", "pi"];
|
|
2
2
|
export type ReadinessStatus = "pass" | "warn" | "fail";
|
|
3
3
|
export type ReadinessAuthState = "authenticated" | "unauthenticated" | "unknown";
|
|
4
|
-
export type ReadinessAgentType =
|
|
4
|
+
export type ReadinessAgentType = (typeof READINESS_AGENT_TYPES)[number];
|
|
5
5
|
type ReadinessInfoStatus = ReadinessStatus | "info";
|
|
6
|
-
type CommandResult = {
|
|
6
|
+
export type CommandResult = {
|
|
7
7
|
stdout: string;
|
|
8
8
|
stderr: string;
|
|
9
9
|
};
|
|
10
|
-
type ReadFile = (target: string) => Promise<string>;
|
|
11
|
-
type Access = (target: string, mode?: number) => Promise<void>;
|
|
12
|
-
type RunCommand = (command: string, args: string[]) => Promise<CommandResult>;
|
|
10
|
+
export type ReadFile = (target: string) => Promise<string>;
|
|
11
|
+
export type Access = (target: string, mode?: number) => Promise<void>;
|
|
12
|
+
export type RunCommand = (command: string, args: string[]) => Promise<CommandResult>;
|
|
13
13
|
export interface ReadinessCheck<S extends ReadinessInfoStatus = ReadinessStatus> {
|
|
14
14
|
status: S;
|
|
15
15
|
errors: string[];
|
|
@@ -60,8 +60,17 @@ export interface AgentReadinessOptions {
|
|
|
60
60
|
runCommand?: RunCommand;
|
|
61
61
|
codexAuth?: () => Promise<boolean | null>;
|
|
62
62
|
}
|
|
63
|
-
export
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
export type ReadinessRuntime = Required<Omit<AgentReadinessOptions, "assetRoot" | "builtInSkillNames" | "skillRoots">> & {
|
|
64
|
+
assetRoot: string | null;
|
|
65
|
+
builtInSkillNames: readonly string[];
|
|
66
|
+
skillRoots: Partial<Record<ReadinessAgentType, string>>;
|
|
67
|
+
};
|
|
68
|
+
export type AuthReadinessProbe = (runtime: ReadinessRuntime) => Promise<AuthReadinessCheck>;
|
|
69
|
+
export type IntegrationReadinessProbe = (runtime: ReadinessRuntime) => Promise<IntegrationReadinessCheck>;
|
|
70
|
+
export interface HarnessReadinessProfile {
|
|
71
|
+
configDir: string;
|
|
72
|
+
auth?: AuthReadinessProbe;
|
|
73
|
+
integration?: IntegrationReadinessProbe;
|
|
74
|
+
}
|
|
66
75
|
export {};
|
|
67
|
-
//# sourceMappingURL=
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harnesses/readiness/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/harnesses/readiness/types.ts"],"sourcesContent":["import { AGENT_TYPES } from \"../../adapters/AgentAdapter.js\";\n\nexport const READINESS_AGENT_TYPES = AGENT_TYPES;\n\nexport type ReadinessStatus = \"pass\" | \"warn\" | \"fail\";\nexport type ReadinessAuthState = \"authenticated\" | \"unauthenticated\" | \"unknown\";\nexport type ReadinessAgentType = (typeof READINESS_AGENT_TYPES)[number];\ntype ReadinessInfoStatus = ReadinessStatus | \"info\";\n\nexport type CommandResult = { stdout: string; stderr: string };\nexport type ReadFile = (target: string) => Promise<string>;\nexport type Access = (target: string, mode?: number) => Promise<void>;\nexport type 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\nexport type ReadinessRuntime = Required<\n Omit<AgentReadinessOptions, \"assetRoot\" | \"builtInSkillNames\" | \"skillRoots\">\n> & {\n assetRoot: string | null;\n builtInSkillNames: readonly string[];\n skillRoots: Partial<Record<ReadinessAgentType, string>>;\n};\n\nexport type AuthReadinessProbe = (runtime: ReadinessRuntime) => Promise<AuthReadinessCheck>;\nexport type IntegrationReadinessProbe = (\n runtime: ReadinessRuntime,\n) => Promise<IntegrationReadinessCheck>;\n\nexport interface HarnessReadinessProfile {\n configDir: string;\n auth?: AuthReadinessProbe;\n integration?: IntegrationReadinessProbe;\n}\n"],"names":["AGENT_TYPES","READINESS_AGENT_TYPES"],"mappings":"AAAA,SAASA,WAAW,QAAQ,iCAAiC;AAE7D,OAAO,MAAMC,wBAAwBD,YAAY"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AGENT_TYPES, type AgentType } from "../adapters/AgentAdapter.js";
|
|
2
|
+
export type StartableAgentType = (typeof AGENT_TYPES)[number];
|
|
3
|
+
export interface HarnessRuntimeProfile {
|
|
4
|
+
command: string;
|
|
5
|
+
runtimeKind: string;
|
|
6
|
+
discoveryAliases: readonly string[];
|
|
7
|
+
matches: (psCommand: string) => boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const HARNESS_RUNTIME_PROFILES: Record<StartableAgentType, HarnessRuntimeProfile>;
|
|
10
|
+
export declare function runtimeAgentMatchesHarness(runtimeAgent: string, type: AgentType): boolean;
|
|
11
|
+
//# sourceMappingURL=runtimeProfiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeProfiles.d.ts","sourceRoot":"","sources":["../../src/harnesses/runtimeProfiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAUtF,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAGzF"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { executablePath } from "../utils/process.js";
|
|
3
|
+
export const HARNESS_RUNTIME_PROFILES = {
|
|
4
|
+
claude: profile("claude", matchArgv0("claude")),
|
|
5
|
+
codex: profile("codex", matchArgv0("codex")),
|
|
6
|
+
copilot: profile("copilot", matchArgv0Name("copilot-cli")),
|
|
7
|
+
gemini_cli: profile("gemini", matchAnyBasename([
|
|
8
|
+
"gemini"
|
|
9
|
+
]), [
|
|
10
|
+
"gemini_cli"
|
|
11
|
+
]),
|
|
12
|
+
grok_cli: profile("grok", matchArgv0("grok"), [
|
|
13
|
+
"grok_cli"
|
|
14
|
+
]),
|
|
15
|
+
antigravity_cli: profile("agy", matchArgv0("agy"), [
|
|
16
|
+
"antigravity",
|
|
17
|
+
"antigravity_cli"
|
|
18
|
+
]),
|
|
19
|
+
opencode: profile("opencode", matchArgv0("opencode")),
|
|
20
|
+
pi: profile("pi", matchAnyBasename([
|
|
21
|
+
"pi"
|
|
22
|
+
])),
|
|
23
|
+
kiro: profile("kiro", matchAnyBasename([
|
|
24
|
+
"kiro-cli",
|
|
25
|
+
"kiro"
|
|
26
|
+
]), [
|
|
27
|
+
"kiro_cli",
|
|
28
|
+
"kiro-cli"
|
|
29
|
+
])
|
|
30
|
+
};
|
|
31
|
+
export function runtimeAgentMatchesHarness(runtimeAgent, type) {
|
|
32
|
+
if (type === "other") return runtimeAgent.toLowerCase() === "other";
|
|
33
|
+
return HARNESS_RUNTIME_PROFILES[type].discoveryAliases.includes(runtimeAgent.toLowerCase());
|
|
34
|
+
}
|
|
35
|
+
function profile(runtimeKind, matches, extraAliases = []) {
|
|
36
|
+
return {
|
|
37
|
+
command: runtimeKind === "kiro" ? "kiro-cli" : runtimeKind,
|
|
38
|
+
runtimeKind,
|
|
39
|
+
discoveryAliases: [
|
|
40
|
+
runtimeKind,
|
|
41
|
+
...extraAliases
|
|
42
|
+
],
|
|
43
|
+
matches
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const ABSOLUTE_PATH = /^(?:\/|[a-zA-Z]:[\\/])/;
|
|
47
|
+
const PATH_SEPARATOR = /[\\/]/;
|
|
48
|
+
function basenameOf(token) {
|
|
49
|
+
return path.basename(token).toLowerCase();
|
|
50
|
+
}
|
|
51
|
+
function tokensOf(psCommand) {
|
|
52
|
+
return psCommand.trim().split(/\s+/).filter(Boolean);
|
|
53
|
+
}
|
|
54
|
+
function splitArgv0(psCommand) {
|
|
55
|
+
const command = psCommand.trim();
|
|
56
|
+
const argv0 = executablePath(command);
|
|
57
|
+
return {
|
|
58
|
+
argv0,
|
|
59
|
+
args: tokensOf(command.slice(argv0.length))
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function mayContinueArgv0(tokens, test) {
|
|
63
|
+
return ABSOLUTE_PATH.test(tokens[0]) && tokens.slice(1).some((token)=>PATH_SEPARATOR.test(token) && test(token));
|
|
64
|
+
}
|
|
65
|
+
function matchArgv0(name) {
|
|
66
|
+
const lower = name.toLowerCase();
|
|
67
|
+
const test = (token)=>basenameOf(token) === lower;
|
|
68
|
+
return (psCommand)=>{
|
|
69
|
+
const tokens = tokensOf(psCommand);
|
|
70
|
+
if (tokens.length === 0) return false;
|
|
71
|
+
if (test(tokens[0])) return true;
|
|
72
|
+
return mayContinueArgv0(tokens, test) && test(executablePath(psCommand));
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function matchArgv0Name(name) {
|
|
76
|
+
const lower = name.toLowerCase();
|
|
77
|
+
const test = (token)=>token.toLowerCase().includes(lower);
|
|
78
|
+
return (psCommand)=>{
|
|
79
|
+
const tokens = tokensOf(psCommand);
|
|
80
|
+
if (tokens.length === 0) return false;
|
|
81
|
+
if (test(tokens[0])) return true;
|
|
82
|
+
return mayContinueArgv0(tokens, test) && test(executablePath(psCommand));
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function matchAnyBasename(names) {
|
|
86
|
+
const lowers = new Set(names.map((name)=>name.toLowerCase()));
|
|
87
|
+
const test = (token)=>lowers.has(basenameOf(token));
|
|
88
|
+
return (psCommand)=>{
|
|
89
|
+
const tokens = tokensOf(psCommand);
|
|
90
|
+
if (tokens.length === 0) return false;
|
|
91
|
+
if (test(tokens[0])) return true;
|
|
92
|
+
if (!tokens.slice(1).some(test)) return false;
|
|
93
|
+
if (!ABSOLUTE_PATH.test(tokens[0])) return true;
|
|
94
|
+
const { argv0, args } = splitArgv0(psCommand);
|
|
95
|
+
return test(argv0) || args.some(test);
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=runtimeProfiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/harnesses/runtimeProfiles.ts"],"sourcesContent":["import path from \"node:path\";\nimport { AGENT_TYPES, type AgentType } from \"../adapters/AgentAdapter.js\";\nimport { executablePath } from \"../utils/process.js\";\n\nexport type StartableAgentType = (typeof AGENT_TYPES)[number];\n\nexport interface HarnessRuntimeProfile {\n command: string;\n runtimeKind: string;\n discoveryAliases: readonly string[];\n matches: (psCommand: string) => boolean;\n}\n\nexport const HARNESS_RUNTIME_PROFILES: Record<StartableAgentType, HarnessRuntimeProfile> = {\n claude: profile(\"claude\", matchArgv0(\"claude\")),\n codex: profile(\"codex\", matchArgv0(\"codex\")),\n copilot: profile(\"copilot\", matchArgv0Name(\"copilot-cli\")),\n gemini_cli: profile(\"gemini\", matchAnyBasename([\"gemini\"]), [\"gemini_cli\"]),\n grok_cli: profile(\"grok\", matchArgv0(\"grok\"), [\"grok_cli\"]),\n antigravity_cli: profile(\"agy\", matchArgv0(\"agy\"), [\"antigravity\", \"antigravity_cli\"]),\n opencode: profile(\"opencode\", matchArgv0(\"opencode\")),\n pi: profile(\"pi\", matchAnyBasename([\"pi\"])),\n kiro: profile(\"kiro\", matchAnyBasename([\"kiro-cli\", \"kiro\"]), [\"kiro_cli\", \"kiro-cli\"]),\n};\n\nexport function runtimeAgentMatchesHarness(runtimeAgent: string, type: AgentType): boolean {\n if (type === \"other\") return runtimeAgent.toLowerCase() === \"other\";\n return HARNESS_RUNTIME_PROFILES[type].discoveryAliases.includes(runtimeAgent.toLowerCase());\n}\n\nfunction profile(\n runtimeKind: string,\n matches: (psCommand: string) => boolean,\n extraAliases: readonly string[] = [],\n): HarnessRuntimeProfile {\n return {\n command: runtimeKind === \"kiro\" ? \"kiro-cli\" : runtimeKind,\n runtimeKind,\n discoveryAliases: [runtimeKind, ...extraAliases],\n matches,\n };\n}\n\nconst ABSOLUTE_PATH = /^(?:\\/|[a-zA-Z]:[\\\\/])/;\nconst PATH_SEPARATOR = /[\\\\/]/;\n\nfunction basenameOf(token: string): string {\n return path.basename(token).toLowerCase();\n}\n\nfunction tokensOf(psCommand: string): string[] {\n return psCommand.trim().split(/\\s+/).filter(Boolean);\n}\n\nfunction splitArgv0(psCommand: string): { argv0: string; args: string[] } {\n const command = psCommand.trim();\n const argv0 = executablePath(command);\n return { argv0, args: tokensOf(command.slice(argv0.length)) };\n}\n\nfunction mayContinueArgv0(tokens: string[], test: (token: string) => boolean): boolean {\n return (\n ABSOLUTE_PATH.test(tokens[0]) &&\n tokens.slice(1).some((token) => PATH_SEPARATOR.test(token) && test(token))\n );\n}\n\nfunction matchArgv0(name: string): (psCommand: string) => boolean {\n const lower = name.toLowerCase();\n const test = (token: string) => basenameOf(token) === lower;\n return (psCommand) => {\n const tokens = tokensOf(psCommand);\n if (tokens.length === 0) return false;\n if (test(tokens[0])) return true;\n return mayContinueArgv0(tokens, test) && test(executablePath(psCommand));\n };\n}\n\nfunction matchArgv0Name(name: string): (psCommand: string) => boolean {\n const lower = name.toLowerCase();\n const test = (token: string) => token.toLowerCase().includes(lower);\n return (psCommand) => {\n const tokens = tokensOf(psCommand);\n if (tokens.length === 0) return false;\n if (test(tokens[0])) return true;\n return mayContinueArgv0(tokens, test) && test(executablePath(psCommand));\n };\n}\n\nfunction matchAnyBasename(names: string[]): (psCommand: string) => boolean {\n const lowers = new Set(names.map((name) => name.toLowerCase()));\n const test = (token: string) => lowers.has(basenameOf(token));\n return (psCommand) => {\n const tokens = tokensOf(psCommand);\n if (tokens.length === 0) return false;\n if (test(tokens[0])) return true;\n if (!tokens.slice(1).some(test)) return false;\n if (!ABSOLUTE_PATH.test(tokens[0])) return true;\n\n const { argv0, args } = splitArgv0(psCommand);\n return test(argv0) || args.some(test);\n };\n}\n"],"names":["path","executablePath","HARNESS_RUNTIME_PROFILES","claude","profile","matchArgv0","codex","copilot","matchArgv0Name","gemini_cli","matchAnyBasename","grok_cli","antigravity_cli","opencode","pi","kiro","runtimeAgentMatchesHarness","runtimeAgent","type","toLowerCase","discoveryAliases","includes","runtimeKind","matches","extraAliases","command","ABSOLUTE_PATH","PATH_SEPARATOR","basenameOf","token","basename","tokensOf","psCommand","trim","split","filter","Boolean","splitArgv0","argv0","args","slice","length","mayContinueArgv0","tokens","test","some","name","lower","names","lowers","Set","map","has"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,52 +1,26 @@
|
|
|
1
|
-
export { AgentManager
|
|
2
|
-
export { getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport, } from "./capacity/index.js";
|
|
3
|
-
export type {
|
|
4
|
-
export {
|
|
5
|
-
export type { AgentReadinessOptions, AgentReadinessReport,
|
|
6
|
-
export { ClaudeCodeAdapter } from "./harnesses/claude/ClaudeCodeAdapter.js";
|
|
7
|
-
export { CodexAdapter } from "./harnesses/codex/CodexAdapter.js";
|
|
8
|
-
export { CopilotAdapter } from "./harnesses/copilot/CopilotAdapter.js";
|
|
9
|
-
export { GeminiCliAdapter } from "./harnesses/gemini/GeminiCliAdapter.js";
|
|
10
|
-
export { GrokCliAdapter } from "./harnesses/grok/GrokCliAdapter.js";
|
|
11
|
-
export { AntigravityCliAdapter } from "./harnesses/antigravity/AntigravityCliAdapter.js";
|
|
12
|
-
export { KiroAdapter } from "./harnesses/kiro/KiroAdapter.js";
|
|
13
|
-
export { OpenCodeAdapter } from "./harnesses/opencode/OpenCodeAdapter.js";
|
|
14
|
-
export { PiAdapter } from "./harnesses/pi/PiAdapter.js";
|
|
1
|
+
export { AgentManager } from "./AgentManager.js";
|
|
2
|
+
export { getAnthropicCapacityReport, getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport, } from "./capacity/index.js";
|
|
3
|
+
export type { CapacityReport, CapacityWindow } from "./capacity/index.js";
|
|
4
|
+
export { getAgentReadinessReports, worstReadinessStatus, } from "./harnesses/readiness/AgentReadiness.js";
|
|
5
|
+
export type { AgentReadinessOptions, AgentReadinessReport, ReadinessAgentType, ReadinessStatus, } from "./harnesses/readiness/AgentReadiness.js";
|
|
15
6
|
export { createBuiltinAdapters } from "./harnesses/index.js";
|
|
7
|
+
export { HARNESS_RUNTIME_PROFILES, type StartableAgentType } from "./harnesses/runtimeProfiles.js";
|
|
16
8
|
export { AGENT_TYPES, AgentStatus } from "./adapters/AgentAdapter.js";
|
|
17
|
-
export type { AgentAdapter, AgentType, AgentInfo,
|
|
18
|
-
export { TerminalFocusManager
|
|
19
|
-
export
|
|
9
|
+
export type { AgentAdapter, AgentType, AgentInfo, ConversationMessage, SessionSummary, ListSessionsOptions, } from "./adapters/AgentAdapter.js";
|
|
10
|
+
export { TerminalFocusManager } from "./terminal/TerminalFocusManager.js";
|
|
11
|
+
export { TerminalType } from "./terminal/types.js";
|
|
12
|
+
export type { TerminalLocation } from "./terminal/types.js";
|
|
20
13
|
export { TtyWriter } from "./terminal/TtyWriter.js";
|
|
21
|
-
export type { AgentManagerOptions, ListAgentsOptions } from "./AgentManager.js";
|
|
22
|
-
export { extractHerdrAgentPanes, fetchHerdrAgentPanes, findMatchingHerdrPane, herdrPaneToRuntimeRef, } from "./runtime/herdr/HerdrAgentDiscovery.js";
|
|
23
|
-
export type { HerdrAgentPane } from "./runtime/herdr/HerdrAgentDiscovery.js";
|
|
24
14
|
export { AgentRegistry, RenameNotFoundError, RenameConflictError, AGENT_RUNTIME_PROVIDERS, parseTmuxRuntimeRef, } from "./utils/AgentRegistry.js";
|
|
25
|
-
export type {
|
|
26
|
-
export {
|
|
27
|
-
export
|
|
28
|
-
export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS, } from "./runtime/ManagedAgentRuntime.js";
|
|
29
|
-
export type { FocusAgentDeps, StartAgentDeps, StartAgentOptions, StopAgentDeps, StopAgentResult, FocusAgentResult, SendAgentPromptDeps, } from "./runtime/ManagedAgentRuntime.js";
|
|
30
|
-
export { AGENTS } from "./utils/agents.js";
|
|
31
|
-
export type { AgentConfig, StartableAgentType } from "./utils/agents.js";
|
|
15
|
+
export type { AgentRuntimeProvider } from "./utils/AgentRegistry.js";
|
|
16
|
+
export type { InteractiveAgentRuntime } from "./runtime/types.js";
|
|
17
|
+
export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_TIMEOUT_MS, } from "./runtime/ManagedAgentRuntime.js";
|
|
32
18
|
export type { AgentRequest } from "./utils/agent-requests.js";
|
|
33
|
-
export {
|
|
34
|
-
export { AGENT_MODES
|
|
35
|
-
export type {
|
|
19
|
+
export { readLatestAgentRequest, writeAgentRequest } from "./utils/agent-requests.js";
|
|
20
|
+
export { AGENT_MODES } from "./durable/DurableAgent.js";
|
|
21
|
+
export type { DurableProvider } from "./durable/DurableAgent.js";
|
|
36
22
|
export { DurableAgentRepository } from "./durable/DurableAgentRepository.js";
|
|
37
|
-
export type { CreateDurableAgentInput, DurableAgentRepositoryOptions, ProcessInspector, DurableRunCompletion, } from "./durable/DurableAgentRepository.js";
|
|
38
23
|
export { ClaudePrintAgentService } from "./harnesses/claude/durable/ClaudePrintAgentService.js";
|
|
39
|
-
export type { ClaudePrintAgentServiceOptions, ClaudePrintSendResult, } from "./harnesses/claude/durable/ClaudePrintAgentService.js";
|
|
40
|
-
export { CodexCliProbe } from "./harnesses/codex/durable/CodexCliProbe.js";
|
|
41
|
-
export type { CodexCliProbeOptions } from "./harnesses/codex/durable/CodexCliProbe.js";
|
|
42
|
-
export { CodexPrintRunner } from "./harnesses/codex/durable/CodexPrintRunner.js";
|
|
43
|
-
export type { CodexPrintRunnerOptions, CodexPrintRunRequest, CodexPrintRunResult, } from "./harnesses/codex/durable/CodexPrintRunner.js";
|
|
44
24
|
export { CodexPrintAgentService } from "./harnesses/codex/durable/CodexPrintAgentService.js";
|
|
45
|
-
export type { CodexPrintAgentServiceOptions, CodexPrintSendResult, } from "./harnesses/codex/durable/CodexPrintAgentService.js";
|
|
46
|
-
export { PiCliProbe } from "./harnesses/pi/durable/PiCliProbe.js";
|
|
47
|
-
export type { PiCliProbeOptions } from "./harnesses/pi/durable/PiCliProbe.js";
|
|
48
|
-
export { PiPrintRunner } from "./harnesses/pi/durable/PiPrintRunner.js";
|
|
49
|
-
export type { PiPrintRunnerOptions, PiPrintRunRequest, PiPrintRunResult, } from "./harnesses/pi/durable/PiPrintRunner.js";
|
|
50
25
|
export { PiPrintAgentService } from "./harnesses/pi/durable/PiPrintAgentService.js";
|
|
51
|
-
export type { PiPrintAgentServiceOptions, PiPrintSendResult, } from "./harnesses/pi/durable/PiPrintAgentService.js";
|
|
52
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,33 +1,19 @@
|
|
|
1
|
-
export { AgentManager
|
|
2
|
-
export { getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport } from "./capacity/index.js";
|
|
3
|
-
export {
|
|
4
|
-
export { ClaudeCodeAdapter } from "./harnesses/claude/ClaudeCodeAdapter.js";
|
|
5
|
-
export { CodexAdapter } from "./harnesses/codex/CodexAdapter.js";
|
|
6
|
-
export { CopilotAdapter } from "./harnesses/copilot/CopilotAdapter.js";
|
|
7
|
-
export { GeminiCliAdapter } from "./harnesses/gemini/GeminiCliAdapter.js";
|
|
8
|
-
export { GrokCliAdapter } from "./harnesses/grok/GrokCliAdapter.js";
|
|
9
|
-
export { AntigravityCliAdapter } from "./harnesses/antigravity/AntigravityCliAdapter.js";
|
|
10
|
-
export { KiroAdapter } from "./harnesses/kiro/KiroAdapter.js";
|
|
11
|
-
export { OpenCodeAdapter } from "./harnesses/opencode/OpenCodeAdapter.js";
|
|
12
|
-
export { PiAdapter } from "./harnesses/pi/PiAdapter.js";
|
|
1
|
+
export { AgentManager } from "./AgentManager.js";
|
|
2
|
+
export { getAnthropicCapacityReport, getClaudeCapacityReport, getCodexCapacityReport, getOpenAiCapacityReport, getZaiCapacityReport } from "./capacity/index.js";
|
|
3
|
+
export { getAgentReadinessReports, worstReadinessStatus } from "./harnesses/readiness/AgentReadiness.js";
|
|
13
4
|
export { createBuiltinAdapters } from "./harnesses/index.js";
|
|
5
|
+
export { HARNESS_RUNTIME_PROFILES } from "./harnesses/runtimeProfiles.js";
|
|
14
6
|
export { AGENT_TYPES, AgentStatus } from "./adapters/AgentAdapter.js";
|
|
15
|
-
export { TerminalFocusManager
|
|
7
|
+
export { TerminalFocusManager } from "./terminal/TerminalFocusManager.js";
|
|
8
|
+
export { TerminalType } from "./terminal/types.js";
|
|
16
9
|
export { TtyWriter } from "./terminal/TtyWriter.js";
|
|
17
|
-
export { extractHerdrAgentPanes, fetchHerdrAgentPanes, findMatchingHerdrPane, herdrPaneToRuntimeRef } from "./runtime/herdr/HerdrAgentDiscovery.js";
|
|
18
10
|
export { AgentRegistry, RenameNotFoundError, RenameConflictError, AGENT_RUNTIME_PROVIDERS, parseTmuxRuntimeRef } from "./utils/AgentRegistry.js";
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export { getAgentRequestPath, readLatestAgentRequest, writeAgentRequest } from "./utils/agent-requests.js";
|
|
23
|
-
export { AGENT_MODES, DurableAgentError, DurableAgentBusyError, DurableAgentNotFoundError, DurableAgentRepositoryError, DurableAgentNameConflictError, ClaudePrintError, CodexPrintError, PiPrintError } from "./durable/DurableAgent.js";
|
|
11
|
+
export { startAgent, stopAgent, focusAgent, sendAgentPrompt, TmuxUnavailableError, AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, DEFAULT_PID_POLL_TIMEOUT_MS } from "./runtime/ManagedAgentRuntime.js";
|
|
12
|
+
export { readLatestAgentRequest, writeAgentRequest } from "./utils/agent-requests.js";
|
|
13
|
+
export { AGENT_MODES } from "./durable/DurableAgent.js";
|
|
24
14
|
export { DurableAgentRepository } from "./durable/DurableAgentRepository.js";
|
|
25
15
|
export { ClaudePrintAgentService } from "./harnesses/claude/durable/ClaudePrintAgentService.js";
|
|
26
|
-
export { CodexCliProbe } from "./harnesses/codex/durable/CodexCliProbe.js";
|
|
27
|
-
export { CodexPrintRunner } from "./harnesses/codex/durable/CodexPrintRunner.js";
|
|
28
16
|
export { CodexPrintAgentService } from "./harnesses/codex/durable/CodexPrintAgentService.js";
|
|
29
|
-
export { PiCliProbe } from "./harnesses/pi/durable/PiCliProbe.js";
|
|
30
|
-
export { PiPrintRunner } from "./harnesses/pi/durable/PiPrintRunner.js";
|
|
31
17
|
export { PiPrintAgentService } from "./harnesses/pi/durable/PiPrintAgentService.js";
|
|
32
18
|
|
|
33
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { AgentManager
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { AgentManager } from \"./AgentManager.js\";\nexport {\n getAnthropicCapacityReport,\n getClaudeCapacityReport,\n getCodexCapacityReport,\n getOpenAiCapacityReport,\n getZaiCapacityReport,\n} from \"./capacity/index.js\";\nexport type { CapacityReport, CapacityWindow } from \"./capacity/index.js\";\n\nexport {\n getAgentReadinessReports,\n worstReadinessStatus,\n} from \"./harnesses/readiness/AgentReadiness.js\";\nexport type {\n AgentReadinessOptions,\n AgentReadinessReport,\n ReadinessAgentType,\n ReadinessStatus,\n} from \"./harnesses/readiness/AgentReadiness.js\";\n\nexport { createBuiltinAdapters } from \"./harnesses/index.js\";\nexport { HARNESS_RUNTIME_PROFILES, type StartableAgentType } from \"./harnesses/runtimeProfiles.js\";\nexport { AGENT_TYPES, AgentStatus } from \"./adapters/AgentAdapter.js\";\nexport type {\n AgentAdapter,\n AgentType,\n AgentInfo,\n ConversationMessage,\n SessionSummary,\n ListSessionsOptions,\n} from \"./adapters/AgentAdapter.js\";\n\nexport { TerminalFocusManager } from \"./terminal/TerminalFocusManager.js\";\nexport { TerminalType } from \"./terminal/types.js\";\nexport type { TerminalLocation } from \"./terminal/types.js\";\nexport { TtyWriter } from \"./terminal/TtyWriter.js\";\n\nexport {\n AgentRegistry,\n RenameNotFoundError,\n RenameConflictError,\n AGENT_RUNTIME_PROVIDERS,\n parseTmuxRuntimeRef,\n} from \"./utils/AgentRegistry.js\";\nexport type { AgentRuntimeProvider } from \"./utils/AgentRegistry.js\";\nexport type { InteractiveAgentRuntime } from \"./runtime/types.js\";\nexport {\n startAgent,\n stopAgent,\n focusAgent,\n sendAgentPrompt,\n TmuxUnavailableError,\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n DEFAULT_PID_POLL_TIMEOUT_MS,\n} from \"./runtime/ManagedAgentRuntime.js\";\n\nexport type { AgentRequest } from \"./utils/agent-requests.js\";\nexport { readLatestAgentRequest, writeAgentRequest } from \"./utils/agent-requests.js\";\n\nexport { AGENT_MODES } from \"./durable/DurableAgent.js\";\nexport type { DurableProvider } from \"./durable/DurableAgent.js\";\nexport { DurableAgentRepository } from \"./durable/DurableAgentRepository.js\";\nexport { ClaudePrintAgentService } from \"./harnesses/claude/durable/ClaudePrintAgentService.js\";\nexport { CodexPrintAgentService } from \"./harnesses/codex/durable/CodexPrintAgentService.js\";\nexport { PiPrintAgentService } from \"./harnesses/pi/durable/PiPrintAgentService.js\";\n"],"names":["AgentManager","getAnthropicCapacityReport","getClaudeCapacityReport","getCodexCapacityReport","getOpenAiCapacityReport","getZaiCapacityReport","getAgentReadinessReports","worstReadinessStatus","createBuiltinAdapters","HARNESS_RUNTIME_PROFILES","AGENT_TYPES","AgentStatus","TerminalFocusManager","TerminalType","TtyWriter","AgentRegistry","RenameNotFoundError","RenameConflictError","AGENT_RUNTIME_PROVIDERS","parseTmuxRuntimeRef","startAgent","stopAgent","focusAgent","sendAgentPrompt","TmuxUnavailableError","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","DEFAULT_PID_POLL_TIMEOUT_MS","readLatestAgentRequest","writeAgentRequest","AGENT_MODES","DurableAgentRepository","ClaudePrintAgentService","CodexPrintAgentService","PiPrintAgentService"],"mappings":"AAAA,SAASA,YAAY,QAAQ,oBAAoB;AACjD,SACEC,0BAA0B,EAC1BC,uBAAuB,EACvBC,sBAAsB,EACtBC,uBAAuB,EACvBC,oBAAoB,QACf,sBAAsB;AAG7B,SACEC,wBAAwB,EACxBC,oBAAoB,QACf,0CAA0C;AAQjD,SAASC,qBAAqB,QAAQ,uBAAuB;AAC7D,SAASC,wBAAwB,QAAiC,iCAAiC;AACnG,SAASC,WAAW,EAAEC,WAAW,QAAQ,6BAA6B;AAUtE,SAASC,oBAAoB,QAAQ,qCAAqC;AAC1E,SAASC,YAAY,QAAQ,sBAAsB;AAEnD,SAASC,SAAS,QAAQ,0BAA0B;AAEpD,SACEC,aAAa,EACbC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAmB,QACd,2BAA2B;AAGlC,SACEC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,oBAAoB,EACpBC,mBAAmB,EACnBC,wBAAwB,EACxBC,4BAA4B,EAC5BC,0BAA0B,EAC1BC,2BAA2B,QACtB,mCAAmC;AAG1C,SAASC,sBAAsB,EAAEC,iBAAiB,QAAQ,4BAA4B;AAEtF,SAASC,WAAW,QAAQ,4BAA4B;AAExD,SAASC,sBAAsB,QAAQ,sCAAsC;AAC7E,SAASC,uBAAuB,QAAQ,wDAAwD;AAChG,SAASC,sBAAsB,QAAQ,sDAAsD;AAC7F,SAASC,mBAAmB,QAAQ,gDAAgD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { AgentInfo } from "../adapters/AgentAdapter.js";
|
|
2
|
-
import type { TerminalLocation } from "../terminal/
|
|
3
|
-
import { TmuxManager } from "
|
|
2
|
+
import type { TerminalLocation } from "../terminal/types.js";
|
|
3
|
+
import { TmuxManager } from "./tmux/TmuxManager.js";
|
|
4
4
|
import { AgentRegistry, type AgentRuntimeProvider, type RegistryEntry } from "../utils/AgentRegistry.js";
|
|
5
|
-
import { type StartableAgentType } from "../
|
|
5
|
+
import { type StartableAgentType } from "../harnesses/runtimeProfiles.js";
|
|
6
6
|
import { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from "./tmux/PidPolling.js";
|
|
7
7
|
import type { InteractiveAgentRuntime } from "./types.js";
|
|
8
8
|
import { AgentNameInUseError, AgentPidPollTimeoutError, AgentRuntimeUnavailableError, AgentTerminalNotFoundError, TmuxUnavailableError } from "./errors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedAgentRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/ManagedAgentRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ManagedAgentRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/ManagedAgentRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TmuxManager } from "
|
|
1
|
+
import { TmuxManager } from "./tmux/TmuxManager.js";
|
|
2
2
|
import { AgentRegistry } from "../utils/AgentRegistry.js";
|
|
3
|
-
import {
|
|
3
|
+
import { HARNESS_RUNTIME_PROFILES } from "../harnesses/runtimeProfiles.js";
|
|
4
4
|
import { createInteractiveRuntime } from "./RuntimeFactory.js";
|
|
5
5
|
import { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from "./tmux/PidPolling.js";
|
|
6
6
|
import { TmuxAgentRuntime } from "./tmux/TmuxAgentRuntime.js";
|
|
@@ -13,7 +13,7 @@ export { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };
|
|
|
13
13
|
* Callers are responsible for user input validation before invoking this.
|
|
14
14
|
*/ export async function startAgent(opts, deps = {}) {
|
|
15
15
|
const registry = deps.registry ?? AgentRegistry.default();
|
|
16
|
-
const
|
|
16
|
+
const profile = HARNESS_RUNTIME_PROFILES[opts.type];
|
|
17
17
|
const intervalMs = opts.pollIntervalMs ?? DEFAULT_PID_POLL_INTERVAL_MS;
|
|
18
18
|
const timeoutMs = opts.pollTimeoutMs ?? DEFAULT_PID_POLL_TIMEOUT_MS;
|
|
19
19
|
const provider = opts.runtimeProvider ?? deps.runtime?.provider ?? "tmux";
|
|
@@ -38,12 +38,12 @@ export { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };
|
|
|
38
38
|
const result = await runtime.startAgent({
|
|
39
39
|
name: opts.name,
|
|
40
40
|
cwd: opts.cwd,
|
|
41
|
-
kind:
|
|
41
|
+
kind: profile.runtimeKind,
|
|
42
42
|
args: [],
|
|
43
43
|
timeoutMs,
|
|
44
44
|
...provider === "tmux" ? {
|
|
45
|
-
command:
|
|
46
|
-
matches:
|
|
45
|
+
command: profile.command,
|
|
46
|
+
matches: profile.matches,
|
|
47
47
|
pollIntervalMs: intervalMs
|
|
48
48
|
} : {}
|
|
49
49
|
});
|
|
@@ -140,19 +140,5 @@ function resolveRuntimeForEntry(registryEntry, deps) {
|
|
|
140
140
|
function isHerdrRegistryEntry(entry) {
|
|
141
141
|
return typeof entry === "object" && entry !== null && entry.runtime === "herdr" && "runtimeRef" in entry;
|
|
142
142
|
}
|
|
143
|
-
function agentRuntimeKind(type, provider) {
|
|
144
|
-
if (provider === "tmux") return type;
|
|
145
|
-
return ({
|
|
146
|
-
claude: "claude",
|
|
147
|
-
codex: "codex",
|
|
148
|
-
copilot: "copilot",
|
|
149
|
-
gemini_cli: "gemini",
|
|
150
|
-
grok_cli: "grok",
|
|
151
|
-
antigravity_cli: "agy",
|
|
152
|
-
opencode: "opencode",
|
|
153
|
-
pi: "pi",
|
|
154
|
-
kiro: "kiro"
|
|
155
|
-
})[type];
|
|
156
|
-
}
|
|
157
143
|
|
|
158
144
|
//# sourceMappingURL=ManagedAgentRuntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/runtime/ManagedAgentRuntime.ts"],"sourcesContent":["import type { AgentInfo } from \"../adapters/AgentAdapter.js\";\nimport type { TerminalLocation } from \"../terminal/TerminalFocusManager.js\";\nimport { TmuxManager } from \"../terminal/TmuxManager.js\";\nimport {\n AgentRegistry,\n type AgentRuntimeProvider,\n type RegistryEntry,\n} from \"../utils/AgentRegistry.js\";\nimport { AGENTS, type StartableAgentType } from \"../utils/agents.js\";\nimport { createInteractiveRuntime } from \"./RuntimeFactory.js\";\nimport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from \"./tmux/PidPolling.js\";\nimport { TmuxAgentRuntime } from \"./tmux/TmuxAgentRuntime.js\";\nimport type { InteractiveAgentRuntime } from \"./types.js\";\nimport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n} from \"./errors.js\";\n\nexport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n};\nexport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };\n\nexport interface StartAgentOptions {\n type: StartableAgentType;\n name: string;\n cwd: string;\n runtimeProvider?: AgentRuntimeProvider;\n pollIntervalMs?: number;\n pollTimeoutMs?: number;\n}\n\nexport interface StartAgentDeps {\n tmux?: TmuxManager;\n runtime?: InteractiveAgentRuntime;\n registry?: AgentRegistry;\n /** Called for non-fatal events (e.g., replacing an orphan tmux session). */\n onWarning?: (message: string) => void;\n}\n\nexport interface StopAgentDeps {\n tmux?: Pick<TmuxManager, \"killSession\">;\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n killProcess?: (pid: number, signal: NodeJS.Signals) => void;\n}\n\nexport interface StopAgentResult {\n agentName: string;\n pid: number;\n runtime: AgentRuntimeProvider;\n runtimeRef: unknown | null;\n}\n\nexport interface FocusAgentDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n focusTerminal(location: TerminalLocation): Promise<boolean>;\n };\n}\n\nexport type FocusAgentResult =\n | { focused: true }\n | { focused: false; reason: \"terminal-not-found\" | \"focus-failed\" };\n\nexport interface SendAgentPromptDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n };\n writer?: (location: TerminalLocation, text: string) => Promise<void>;\n}\n\n/**\n * Orchestrate `agent start`: ensure the configured runtime is available,\n * create the runtime session, detect the agent PID, and register the entry.\n * Callers are responsible for user input validation before invoking this.\n */\nexport async function startAgent(\n opts: StartAgentOptions,\n deps: StartAgentDeps = {},\n): Promise<RegistryEntry> {\n const registry = deps.registry ?? AgentRegistry.default();\n const agent = AGENTS[opts.type];\n const intervalMs = opts.pollIntervalMs ?? DEFAULT_PID_POLL_INTERVAL_MS;\n const timeoutMs = opts.pollTimeoutMs ?? DEFAULT_PID_POLL_TIMEOUT_MS;\n const provider = opts.runtimeProvider ?? deps.runtime?.provider ?? \"tmux\";\n const tmux = provider === \"tmux\" ? (deps.tmux ?? new TmuxManager()) : undefined;\n const runtime = resolveStartRuntime(provider, { ...deps, tmux });\n\n const availability = await runtime.isAvailable();\n if (!availability.ok) {\n if (provider === \"tmux\") throw new TmuxUnavailableError();\n throw new AgentRuntimeUnavailableError(provider, availability.reason, availability.detail);\n }\n\n registry.prune();\n const existing = registry.lookup(opts.name);\n if (existing) {\n throw new AgentNameInUseError(opts.name, existing.pid);\n }\n\n if (provider === \"tmux\" && tmux && (await tmux.sessionExists(opts.name))) {\n deps.onWarning?.(\n `tmux session \"${opts.name}\" already exists but has no live registry entry — it will be replaced.`,\n );\n }\n\n const result = await runtime.startAgent({\n name: opts.name,\n cwd: opts.cwd,\n kind: agentRuntimeKind(opts.type, provider),\n args: [],\n timeoutMs,\n ...(provider === \"tmux\"\n ? {\n command: agent.command,\n matches: agent.matches,\n pollIntervalMs: intervalMs,\n }\n : {}),\n });\n\n const entry: RegistryEntry = {\n name: opts.name,\n type: opts.type,\n pid: result.pid,\n runtime: runtime.provider,\n runtimeRef: result.runtimeRef,\n cwd: opts.cwd,\n startedAt: new Date().toISOString(),\n sessionId: \"\",\n sessionFilePath: \"\",\n pinned: false,\n };\n registry.register(entry);\n return entry;\n}\n\nexport async function stopAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: StopAgentDeps = {},\n): Promise<StopAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n const runtimeRef = registryEntry?.runtimeRef ?? null;\n\n await runtime.stop({\n agent,\n runtimeRef,\n killProcess: deps.killProcess,\n });\n\n return {\n agentName: agent.name,\n pid: agent.pid,\n runtime: runtime.provider,\n runtimeRef,\n };\n}\n\nexport async function focusAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: FocusAgentDeps,\n): Promise<FocusAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n if (runtime.provider === \"tmux\") {\n const location = await deps.focusManager.findTerminal(agent.pid);\n if (!location) return { focused: false, reason: \"terminal-not-found\" };\n\n const focused = await deps.focusManager.focusTerminal(location);\n return focused ? { focused: true } : { focused: false, reason: \"focus-failed\" };\n }\n\n const focused = await runtime.focus({\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n focusManager: deps.focusManager,\n });\n\n if (focused) return { focused: true };\n return { focused: false, reason: \"focus-failed\" };\n}\n\nexport async function sendAgentPrompt(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n prompt: string,\n deps: SendAgentPromptDeps,\n): Promise<void> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n\n await runtime.send(\n {\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n prompt,\n },\n {\n focusManager: deps.focusManager,\n writer: deps.writer,\n },\n );\n}\n\nfunction resolveStartRuntime(\n provider: AgentRuntimeProvider,\n deps: StartAgentDeps,\n): InteractiveAgentRuntime {\n if (deps.runtime && deps.runtime.provider === provider) {\n return deps.runtime;\n }\n if (provider === \"tmux\") return new TmuxAgentRuntime(deps.tmux);\n return createInteractiveRuntime(provider);\n}\n\nfunction resolveRuntimeForEntry(\n registryEntry: RegistryEntry | null,\n deps: { runtime?: InteractiveAgentRuntime; tmux?: Pick<TmuxManager, \"killSession\"> },\n): InteractiveAgentRuntime {\n if (isHerdrRegistryEntry(registryEntry)) {\n return deps.runtime?.provider === \"herdr\" ? deps.runtime : createInteractiveRuntime(\"herdr\");\n }\n if (deps.runtime?.provider === \"tmux\") return deps.runtime;\n return deps.tmux\n ? new TmuxAgentRuntime(deps.tmux as TmuxManager)\n : createInteractiveRuntime(\"tmux\");\n}\n\nfunction isHerdrRegistryEntry(\n entry: unknown,\n): entry is RegistryEntry & { runtime: \"herdr\"; runtimeRef: unknown } {\n return (\n typeof entry === \"object\" &&\n entry !== null &&\n (entry as { runtime?: unknown }).runtime === \"herdr\" &&\n \"runtimeRef\" in entry\n );\n}\n\nfunction agentRuntimeKind(type: StartableAgentType, provider: AgentRuntimeProvider): string {\n if (provider === \"tmux\") return type;\n return {\n claude: \"claude\",\n codex: \"codex\",\n copilot: \"copilot\",\n gemini_cli: \"gemini\",\n grok_cli: \"grok\",\n antigravity_cli: \"agy\",\n opencode: \"opencode\",\n pi: \"pi\",\n kiro: \"kiro\",\n }[type];\n}\n"],"names":["TmuxManager","AgentRegistry","AGENTS","createInteractiveRuntime","DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","TmuxAgentRuntime","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","TmuxUnavailableError","startAgent","opts","deps","registry","default","agent","type","intervalMs","pollIntervalMs","timeoutMs","pollTimeoutMs","provider","runtimeProvider","runtime","tmux","undefined","resolveStartRuntime","availability","isAvailable","ok","reason","detail","prune","existing","lookup","name","pid","sessionExists","onWarning","result","cwd","kind","agentRuntimeKind","args","command","matches","entry","runtimeRef","startedAt","Date","toISOString","sessionId","sessionFilePath","pinned","register","stopAgent","registryEntry","resolveRuntimeForEntry","stop","killProcess","agentName","focusAgent","location","focusManager","findTerminal","focused","focusTerminal","focus","sendAgentPrompt","prompt","send","writer","isHerdrRegistryEntry","claude","codex","copilot","gemini_cli","grok_cli","antigravity_cli","opencode","pi","kiro"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/runtime/ManagedAgentRuntime.ts"],"sourcesContent":["import type { AgentInfo } from \"../adapters/AgentAdapter.js\";\nimport type { TerminalLocation } from \"../terminal/types.js\";\nimport { TmuxManager } from \"./tmux/TmuxManager.js\";\nimport {\n AgentRegistry,\n type AgentRuntimeProvider,\n type RegistryEntry,\n} from \"../utils/AgentRegistry.js\";\nimport { HARNESS_RUNTIME_PROFILES, type StartableAgentType } from \"../harnesses/runtimeProfiles.js\";\nimport { createInteractiveRuntime } from \"./RuntimeFactory.js\";\nimport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS } from \"./tmux/PidPolling.js\";\nimport { TmuxAgentRuntime } from \"./tmux/TmuxAgentRuntime.js\";\nimport type { InteractiveAgentRuntime } from \"./types.js\";\nimport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n} from \"./errors.js\";\n\nexport {\n AgentNameInUseError,\n AgentPidPollTimeoutError,\n AgentRuntimeUnavailableError,\n AgentTerminalNotFoundError,\n TmuxUnavailableError,\n};\nexport { DEFAULT_PID_POLL_INTERVAL_MS, DEFAULT_PID_POLL_TIMEOUT_MS };\n\nexport interface StartAgentOptions {\n type: StartableAgentType;\n name: string;\n cwd: string;\n runtimeProvider?: AgentRuntimeProvider;\n pollIntervalMs?: number;\n pollTimeoutMs?: number;\n}\n\nexport interface StartAgentDeps {\n tmux?: TmuxManager;\n runtime?: InteractiveAgentRuntime;\n registry?: AgentRegistry;\n /** Called for non-fatal events (e.g., replacing an orphan tmux session). */\n onWarning?: (message: string) => void;\n}\n\nexport interface StopAgentDeps {\n tmux?: Pick<TmuxManager, \"killSession\">;\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n killProcess?: (pid: number, signal: NodeJS.Signals) => void;\n}\n\nexport interface StopAgentResult {\n agentName: string;\n pid: number;\n runtime: AgentRuntimeProvider;\n runtimeRef: unknown | null;\n}\n\nexport interface FocusAgentDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n focusTerminal(location: TerminalLocation): Promise<boolean>;\n };\n}\n\nexport type FocusAgentResult =\n | { focused: true }\n | { focused: false; reason: \"terminal-not-found\" | \"focus-failed\" };\n\nexport interface SendAgentPromptDeps {\n runtime?: InteractiveAgentRuntime;\n registry?: Pick<AgentRegistry, \"lookup\">;\n focusManager: {\n findTerminal(pid: number): Promise<TerminalLocation | null>;\n };\n writer?: (location: TerminalLocation, text: string) => Promise<void>;\n}\n\n/**\n * Orchestrate `agent start`: ensure the configured runtime is available,\n * create the runtime session, detect the agent PID, and register the entry.\n * Callers are responsible for user input validation before invoking this.\n */\nexport async function startAgent(\n opts: StartAgentOptions,\n deps: StartAgentDeps = {},\n): Promise<RegistryEntry> {\n const registry = deps.registry ?? AgentRegistry.default();\n const profile = HARNESS_RUNTIME_PROFILES[opts.type];\n const intervalMs = opts.pollIntervalMs ?? DEFAULT_PID_POLL_INTERVAL_MS;\n const timeoutMs = opts.pollTimeoutMs ?? DEFAULT_PID_POLL_TIMEOUT_MS;\n const provider = opts.runtimeProvider ?? deps.runtime?.provider ?? \"tmux\";\n const tmux = provider === \"tmux\" ? (deps.tmux ?? new TmuxManager()) : undefined;\n const runtime = resolveStartRuntime(provider, { ...deps, tmux });\n\n const availability = await runtime.isAvailable();\n if (!availability.ok) {\n if (provider === \"tmux\") throw new TmuxUnavailableError();\n throw new AgentRuntimeUnavailableError(provider, availability.reason, availability.detail);\n }\n\n registry.prune();\n const existing = registry.lookup(opts.name);\n if (existing) {\n throw new AgentNameInUseError(opts.name, existing.pid);\n }\n\n if (provider === \"tmux\" && tmux && (await tmux.sessionExists(opts.name))) {\n deps.onWarning?.(\n `tmux session \"${opts.name}\" already exists but has no live registry entry — it will be replaced.`,\n );\n }\n\n const result = await runtime.startAgent({\n name: opts.name,\n cwd: opts.cwd,\n kind: profile.runtimeKind,\n args: [],\n timeoutMs,\n ...(provider === \"tmux\"\n ? {\n command: profile.command,\n matches: profile.matches,\n pollIntervalMs: intervalMs,\n }\n : {}),\n });\n\n const entry: RegistryEntry = {\n name: opts.name,\n type: opts.type,\n pid: result.pid,\n runtime: runtime.provider,\n runtimeRef: result.runtimeRef,\n cwd: opts.cwd,\n startedAt: new Date().toISOString(),\n sessionId: \"\",\n sessionFilePath: \"\",\n pinned: false,\n };\n registry.register(entry);\n return entry;\n}\n\nexport async function stopAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: StopAgentDeps = {},\n): Promise<StopAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n const runtimeRef = registryEntry?.runtimeRef ?? null;\n\n await runtime.stop({\n agent,\n runtimeRef,\n killProcess: deps.killProcess,\n });\n\n return {\n agentName: agent.name,\n pid: agent.pid,\n runtime: runtime.provider,\n runtimeRef,\n };\n}\n\nexport async function focusAgent(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n deps: FocusAgentDeps,\n): Promise<FocusAgentResult> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n if (runtime.provider === \"tmux\") {\n const location = await deps.focusManager.findTerminal(agent.pid);\n if (!location) return { focused: false, reason: \"terminal-not-found\" };\n\n const focused = await deps.focusManager.focusTerminal(location);\n return focused ? { focused: true } : { focused: false, reason: \"focus-failed\" };\n }\n\n const focused = await runtime.focus({\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n focusManager: deps.focusManager,\n });\n\n if (focused) return { focused: true };\n return { focused: false, reason: \"focus-failed\" };\n}\n\nexport async function sendAgentPrompt(\n agent: Pick<AgentInfo, \"name\" | \"pid\">,\n prompt: string,\n deps: SendAgentPromptDeps,\n): Promise<void> {\n const registry = deps.registry ?? AgentRegistry.default();\n const registryEntry = registry.lookup(agent.name);\n const runtime = resolveRuntimeForEntry(registryEntry, deps);\n\n await runtime.send(\n {\n agent,\n runtimeRef: registryEntry?.runtimeRef ?? null,\n prompt,\n },\n {\n focusManager: deps.focusManager,\n writer: deps.writer,\n },\n );\n}\n\nfunction resolveStartRuntime(\n provider: AgentRuntimeProvider,\n deps: StartAgentDeps,\n): InteractiveAgentRuntime {\n if (deps.runtime && deps.runtime.provider === provider) {\n return deps.runtime;\n }\n if (provider === \"tmux\") return new TmuxAgentRuntime(deps.tmux);\n return createInteractiveRuntime(provider);\n}\n\nfunction resolveRuntimeForEntry(\n registryEntry: RegistryEntry | null,\n deps: { runtime?: InteractiveAgentRuntime; tmux?: Pick<TmuxManager, \"killSession\"> },\n): InteractiveAgentRuntime {\n if (isHerdrRegistryEntry(registryEntry)) {\n return deps.runtime?.provider === \"herdr\" ? deps.runtime : createInteractiveRuntime(\"herdr\");\n }\n if (deps.runtime?.provider === \"tmux\") return deps.runtime;\n return deps.tmux\n ? new TmuxAgentRuntime(deps.tmux as TmuxManager)\n : createInteractiveRuntime(\"tmux\");\n}\n\nfunction isHerdrRegistryEntry(\n entry: unknown,\n): entry is RegistryEntry & { runtime: \"herdr\"; runtimeRef: unknown } {\n return (\n typeof entry === \"object\" &&\n entry !== null &&\n (entry as { runtime?: unknown }).runtime === \"herdr\" &&\n \"runtimeRef\" in entry\n );\n}\n"],"names":["TmuxManager","AgentRegistry","HARNESS_RUNTIME_PROFILES","createInteractiveRuntime","DEFAULT_PID_POLL_INTERVAL_MS","DEFAULT_PID_POLL_TIMEOUT_MS","TmuxAgentRuntime","AgentNameInUseError","AgentPidPollTimeoutError","AgentRuntimeUnavailableError","AgentTerminalNotFoundError","TmuxUnavailableError","startAgent","opts","deps","registry","default","profile","type","intervalMs","pollIntervalMs","timeoutMs","pollTimeoutMs","provider","runtimeProvider","runtime","tmux","undefined","resolveStartRuntime","availability","isAvailable","ok","reason","detail","prune","existing","lookup","name","pid","sessionExists","onWarning","result","cwd","kind","runtimeKind","args","command","matches","entry","runtimeRef","startedAt","Date","toISOString","sessionId","sessionFilePath","pinned","register","stopAgent","agent","registryEntry","resolveRuntimeForEntry","stop","killProcess","agentName","focusAgent","location","focusManager","findTerminal","focused","focusTerminal","focus","sendAgentPrompt","prompt","send","writer","isHerdrRegistryEntry"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HerdrAgentDiscovery.d.ts","sourceRoot":"","sources":["../../../src/runtime/herdr/HerdrAgentDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"HerdrAgentDiscovery.d.ts","sourceRoot":"","sources":["../../../src/runtime/herdr/HerdrAgentDiscovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIjG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CA8BvE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,GAAG,KAAK,CAAC,EACpE,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,cAAc,GAAG,IAAI,CAmBvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAQ9F"}
|