@moxt-ai/mobius 0.0.9 → 0.0.11
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/acp/session-history.d.ts.map +1 -1
- package/dist/acp/session-history.js +1 -0
- package/dist/acp/session-history.js.map +1 -1
- package/dist/acp/session-manager.d.ts +4 -1
- package/dist/acp/session-manager.d.ts.map +1 -1
- package/dist/acp/session-manager.js +109 -25
- package/dist/acp/session-manager.js.map +1 -1
- package/dist/agent-catalog/acp-readiness-probe.d.ts +4 -0
- package/dist/agent-catalog/acp-readiness-probe.d.ts.map +1 -0
- package/dist/agent-catalog/acp-readiness-probe.js +153 -0
- package/dist/agent-catalog/acp-readiness-probe.js.map +1 -0
- package/dist/agent-catalog/agent-diagnostics.d.ts +1 -1
- package/dist/agent-catalog/agent-diagnostics.d.ts.map +1 -1
- package/dist/agent-catalog/agent-diagnostics.js +7 -3
- package/dist/agent-catalog/agent-diagnostics.js.map +1 -1
- package/dist/agent-catalog/agent-discovery-context.d.ts +8 -0
- package/dist/agent-catalog/agent-discovery-context.d.ts.map +1 -0
- package/dist/agent-catalog/agent-discovery-context.js +2 -0
- package/dist/agent-catalog/agent-discovery-context.js.map +1 -0
- package/dist/agent-catalog/agent-discovery.d.ts +55 -0
- package/dist/agent-catalog/agent-discovery.d.ts.map +1 -0
- package/dist/agent-catalog/agent-discovery.js +89 -0
- package/dist/agent-catalog/agent-discovery.js.map +1 -0
- package/dist/agent-catalog/agent-probe-error.d.ts +5 -0
- package/dist/agent-catalog/agent-probe-error.d.ts.map +1 -0
- package/dist/agent-catalog/agent-probe-error.js +9 -0
- package/dist/agent-catalog/agent-probe-error.js.map +1 -0
- package/dist/agent-catalog/agent-specification.d.ts +45 -0
- package/dist/agent-catalog/agent-specification.d.ts.map +1 -0
- package/dist/agent-catalog/agent-specification.js +59 -0
- package/dist/agent-catalog/agent-specification.js.map +1 -0
- package/dist/agent-catalog/agents/claude-code-agent.d.ts +14 -0
- package/dist/agent-catalog/agents/claude-code-agent.d.ts.map +1 -0
- package/dist/agent-catalog/agents/claude-code-agent.js +30 -0
- package/dist/agent-catalog/agents/claude-code-agent.js.map +1 -0
- package/dist/agent-catalog/agents/codex-agent.d.ts +14 -0
- package/dist/agent-catalog/agents/codex-agent.d.ts.map +1 -0
- package/dist/agent-catalog/agents/codex-agent.js +23 -0
- package/dist/agent-catalog/agents/codex-agent.js.map +1 -0
- package/dist/agent-catalog/agents/deepseek-harness-agent.d.ts +16 -0
- package/dist/agent-catalog/agents/deepseek-harness-agent.d.ts.map +1 -0
- package/dist/agent-catalog/agents/deepseek-harness-agent.js +94 -0
- package/dist/agent-catalog/agents/deepseek-harness-agent.js.map +1 -0
- package/dist/agent-catalog/agents/opencode-agent.d.ts +17 -0
- package/dist/agent-catalog/agents/opencode-agent.d.ts.map +1 -0
- package/dist/agent-catalog/agents/opencode-agent.js +36 -0
- package/dist/agent-catalog/agents/opencode-agent.js.map +1 -0
- package/dist/agent-catalog/agents/pi-agent.d.ts +21 -0
- package/dist/agent-catalog/agents/pi-agent.d.ts.map +1 -0
- package/dist/agent-catalog/agents/pi-agent.js +69 -0
- package/dist/agent-catalog/agents/pi-agent.js.map +1 -0
- package/dist/agent-catalog/agents/supported-agent-specifications.d.ts +3 -0
- package/dist/agent-catalog/agents/supported-agent-specifications.d.ts.map +1 -0
- package/dist/agent-catalog/agents/supported-agent-specifications.js +15 -0
- package/dist/agent-catalog/agents/supported-agent-specifications.js.map +1 -0
- package/dist/agent-catalog/discover-agent.d.ts +5 -0
- package/dist/agent-catalog/discover-agent.d.ts.map +1 -0
- package/dist/agent-catalog/discover-agent.js +100 -0
- package/dist/agent-catalog/discover-agent.js.map +1 -0
- package/dist/agent-catalog/discover-local-agents.d.ts +12 -73
- package/dist/agent-catalog/discover-local-agents.d.ts.map +1 -1
- package/dist/agent-catalog/discover-local-agents.js +11 -453
- package/dist/agent-catalog/discover-local-agents.js.map +1 -1
- package/dist/agent-catalog/executable-discovery.d.ts +16 -0
- package/dist/agent-catalog/executable-discovery.d.ts.map +1 -0
- package/dist/agent-catalog/executable-discovery.js +105 -0
- package/dist/agent-catalog/executable-discovery.js.map +1 -0
- package/dist/agent-catalog/local-agent.d.ts +2 -1
- package/dist/agent-catalog/local-agent.d.ts.map +1 -1
- package/dist/agent-catalog/local-agent.js +7 -1
- package/dist/agent-catalog/local-agent.js.map +1 -1
- package/dist/agent-installation/agent-installation-manager.d.ts +1 -1
- package/dist/agent-installation/agent-installation-manager.d.ts.map +1 -1
- package/dist/agent-installation/automatic-adapter-provisioner.d.ts +2 -1
- package/dist/agent-installation/automatic-adapter-provisioner.d.ts.map +1 -1
- package/dist/agent-installation/automatic-adapter-provisioner.js +11 -2
- package/dist/agent-installation/automatic-adapter-provisioner.js.map +1 -1
- package/dist/agent-installation/deepseek-managed-package.d.ts +9 -0
- package/dist/agent-installation/deepseek-managed-package.d.ts.map +1 -0
- package/dist/agent-installation/deepseek-managed-package.js +10 -0
- package/dist/agent-installation/deepseek-managed-package.js.map +1 -0
- package/dist/agent-installation/fixed-agent-install-recipes.d.ts +19 -0
- package/dist/agent-installation/fixed-agent-install-recipes.d.ts.map +1 -1
- package/dist/agent-installation/fixed-agent-install-recipes.js +145 -0
- package/dist/agent-installation/fixed-agent-install-recipes.js.map +1 -1
- package/dist/agent-installation/fixed-installation-executor.d.ts +1 -1
- package/dist/agent-installation/fixed-installation-executor.d.ts.map +1 -1
- package/dist/agent-installation/fixed-installation-executor.js +19 -3
- package/dist/agent-installation/fixed-installation-executor.js.map +1 -1
- package/dist/agent-installation/managed-adapter-installer.d.ts +7 -6
- package/dist/agent-installation/managed-adapter-installer.d.ts.map +1 -1
- package/dist/agent-installation/managed-adapter-installer.js +25 -126
- package/dist/agent-installation/managed-adapter-installer.js.map +1 -1
- package/dist/agent-installation/managed-agent-archive.d.ts +40 -0
- package/dist/agent-installation/managed-agent-archive.d.ts.map +1 -0
- package/dist/agent-installation/managed-agent-archive.js +274 -0
- package/dist/agent-installation/managed-agent-archive.js.map +1 -0
- package/dist/agent-installation/managed-npm-package.d.ts +27 -0
- package/dist/agent-installation/managed-npm-package.d.ts.map +1 -0
- package/dist/agent-installation/managed-npm-package.js +258 -0
- package/dist/agent-installation/managed-npm-package.js.map +1 -0
- package/dist/agent-installation/opencode-managed-release.d.ts +4 -0
- package/dist/agent-installation/opencode-managed-release.d.ts.map +1 -0
- package/dist/agent-installation/opencode-managed-release.js +25 -0
- package/dist/agent-installation/opencode-managed-release.js.map +1 -0
- package/dist/agent-installation/pi-managed-packages.d.ts +4 -0
- package/dist/agent-installation/pi-managed-packages.d.ts.map +1 -0
- package/dist/agent-installation/pi-managed-packages.js +4 -0
- package/dist/agent-installation/pi-managed-packages.js.map +1 -0
- package/dist/cli.js +2419 -950
- package/dist/cli.js.map +4 -4
- package/dist/index.js +2138 -669
- package/dist/index.js.map +4 -4
- package/dist/native-sessions/codex-history.d.ts.map +1 -1
- package/dist/native-sessions/codex-history.js +1 -0
- package/dist/native-sessions/codex-history.js.map +1 -1
- package/dist/process/executable.d.ts +6 -1
- package/dist/process/executable.d.ts.map +1 -1
- package/dist/process/executable.js +150 -7
- package/dist/process/executable.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,460 +1,18 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { isAbsolute, join } from "node:path";
|
|
3
|
-
import { methods, ndJsonStream, PROTOCOL_VERSION, } from "@agentclientprotocol/sdk";
|
|
4
|
-
import { createAcpClient, } from "../acp/create-client.js";
|
|
5
1
|
import { readGrantedAgents } from "../agent-installation/installation-grants.js";
|
|
6
|
-
import { validateManagedAdapter } from "../agent-installation/managed-adapter-installer.js";
|
|
7
|
-
import { findExecutableOnPath, ProcessExecutionError, resolveExecutablePath, runBoundedProcess, stopProcessTree, } from "../process/executable.js";
|
|
8
2
|
import { readStateDirectory } from "../storage/state-directory.js";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
export
|
|
19
|
-
adapterEnvironmentVariable = "CODEX_PATH";
|
|
20
|
-
adapterExecutable = "codex-acp";
|
|
21
|
-
adapterOverrideVariable = "MOBIUS_CODEX_ACP_PATH";
|
|
22
|
-
adapterPackage = "@agentclientprotocol/codex-acp";
|
|
23
|
-
adapterVersion = "1.8.0";
|
|
24
|
-
agentExecutable = "codex";
|
|
25
|
-
agentOverrideVariable = "MOBIUS_CODEX_PATH";
|
|
26
|
-
id = "codex";
|
|
27
|
-
label = "Codex";
|
|
28
|
-
managedAdapterExecutablePath = [
|
|
29
|
-
"adapters",
|
|
30
|
-
"codex",
|
|
31
|
-
"1.8.0",
|
|
32
|
-
"node_modules",
|
|
33
|
-
"@agentclientprotocol",
|
|
34
|
-
"codex-acp",
|
|
35
|
-
"dist",
|
|
36
|
-
"index.js",
|
|
37
|
-
];
|
|
38
|
-
managedAgentExecutablePath = ["agents", "codex", "bin", "codex"];
|
|
39
|
-
}
|
|
40
|
-
class ClaudeCodeAgentSpecification extends LocalAgentSpecification {
|
|
41
|
-
adapterEnvironmentVariable = "CLAUDE_CODE_EXECUTABLE";
|
|
42
|
-
adapterExecutable = "claude-agent-acp";
|
|
43
|
-
adapterOverrideVariable = "MOBIUS_CLAUDE_ACP_PATH";
|
|
44
|
-
adapterPackage = "@agentclientprotocol/claude-agent-acp";
|
|
45
|
-
adapterVersion = "0.73.0";
|
|
46
|
-
agentExecutable = "claude";
|
|
47
|
-
agentOverrideVariable = "MOBIUS_CLAUDE_PATH";
|
|
48
|
-
id = "claude";
|
|
49
|
-
label = "Claude Code";
|
|
50
|
-
managedAdapterExecutablePath = [
|
|
51
|
-
"adapters",
|
|
52
|
-
"claude",
|
|
53
|
-
"0.73.0",
|
|
54
|
-
"node_modules",
|
|
55
|
-
"@agentclientprotocol",
|
|
56
|
-
"claude-agent-acp",
|
|
57
|
-
"dist",
|
|
58
|
-
"index.js",
|
|
59
|
-
];
|
|
60
|
-
managedAgentExecutablePath = [
|
|
61
|
-
"agents",
|
|
62
|
-
"claude",
|
|
63
|
-
"home",
|
|
64
|
-
".local",
|
|
65
|
-
"bin",
|
|
66
|
-
"claude",
|
|
67
|
-
];
|
|
68
|
-
}
|
|
69
|
-
export function supportedLocalAgentSpecifications() {
|
|
70
|
-
return Object.freeze([
|
|
71
|
-
new CodexAgentSpecification(),
|
|
72
|
-
new ClaudeCodeAgentSpecification(),
|
|
73
|
-
]);
|
|
74
|
-
}
|
|
75
|
-
export class AgentDiscovery {
|
|
76
|
-
specification;
|
|
77
|
-
constructor(specification) {
|
|
78
|
-
this.specification = specification;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
export class AvailableAgent extends AgentDiscovery {
|
|
82
|
-
agent;
|
|
83
|
-
status = "ready";
|
|
84
|
-
constructor(specification, agent) {
|
|
85
|
-
super(specification);
|
|
86
|
-
this.agent = agent;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
export class UnavailableAgent extends AgentDiscovery {
|
|
90
|
-
}
|
|
91
|
-
export class MissingAdapter extends UnavailableAgent {
|
|
92
|
-
code = "adapter_not_found";
|
|
93
|
-
message = "ACP adapter not found";
|
|
94
|
-
status = "missing_adapter";
|
|
95
|
-
constructor(specification) {
|
|
96
|
-
super(specification);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
class MissingAgent extends UnavailableAgent {
|
|
100
|
-
code = "agent_not_found";
|
|
101
|
-
message = "Agent executable not found";
|
|
102
|
-
status = "missing_agent";
|
|
103
|
-
constructor(specification) {
|
|
104
|
-
super(specification);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
class ProbeFailed extends UnavailableAgent {
|
|
108
|
-
code;
|
|
109
|
-
message;
|
|
110
|
-
status = "probe_failed";
|
|
111
|
-
constructor(specification, code, message) {
|
|
112
|
-
super(specification);
|
|
113
|
-
this.code = code;
|
|
114
|
-
this.message = message;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
class IncompatibleAdapter extends UnavailableAgent {
|
|
118
|
-
code = "acp_incompatible";
|
|
119
|
-
message = "ACP adapter is incompatible";
|
|
120
|
-
status = "incompatible_adapter";
|
|
121
|
-
constructor(specification) {
|
|
122
|
-
super(specification);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
export class LocalAgentInventory {
|
|
126
|
-
available;
|
|
127
|
-
discoveries;
|
|
128
|
-
installable;
|
|
129
|
-
unavailable;
|
|
130
|
-
constructor(discoveries, grantedAgents = new Set(), platform = process.platform, architecture = process.arch) {
|
|
131
|
-
const available = [];
|
|
132
|
-
const unavailable = [];
|
|
133
|
-
for (const discovery of discoveries) {
|
|
134
|
-
if (discovery instanceof AvailableAgent) {
|
|
135
|
-
available.push(discovery);
|
|
136
|
-
}
|
|
137
|
-
else if (discovery instanceof UnavailableAgent) {
|
|
138
|
-
unavailable.push(discovery);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
throw new Error("Unsupported Agent discovery outcome");
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
this.available = Object.freeze(available);
|
|
145
|
-
this.discoveries = Object.freeze([...discoveries]);
|
|
146
|
-
this.installable = Object.freeze(unavailable
|
|
147
|
-
.filter((discovery) => discovery.specification.supportsInstallation(platform, architecture))
|
|
148
|
-
.map((discovery) => new InstallableAgentDefinition(discovery.specification.id, discovery.specification.label, !grantedAgents.has(discovery.specification.id))));
|
|
149
|
-
this.unavailable = Object.freeze(unavailable);
|
|
150
|
-
}
|
|
151
|
-
readyAgents = () => this.available.map((discovery) => discovery.agent);
|
|
152
|
-
}
|
|
153
|
-
class AgentProbeError extends Error {
|
|
154
|
-
code;
|
|
155
|
-
constructor(code, message, options = {}) {
|
|
156
|
-
super(message, options);
|
|
157
|
-
this.code = code;
|
|
158
|
-
this.name = "AgentProbeError";
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
class DiscoveryAcpHandler {
|
|
162
|
-
onElicitation = (_request, _signal) => Promise.reject(new Error("ACP probe does not accept elicitations"));
|
|
163
|
-
onElicitationComplete = (_notification) => Promise.resolve();
|
|
164
|
-
onPermission = (_request, _signal) => Promise.reject(new Error("ACP probe does not grant permissions"));
|
|
165
|
-
onUpdate = (_notification) => Promise.resolve();
|
|
166
|
-
}
|
|
167
|
-
async function resolveManagedExecutable(managedExecutablePath, options) {
|
|
168
|
-
return await resolveExecutablePath(join(readStateDirectory(options.environment), ...managedExecutablePath), options.platform);
|
|
169
|
-
}
|
|
170
|
-
async function resolveManagedAdapterExecutable(specification, options) {
|
|
171
|
-
let managed;
|
|
172
|
-
try {
|
|
173
|
-
managed = await validateManagedAdapter(join(readStateDirectory(options.environment), "adapters", specification.id, specification.adapterVersion), specification);
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
return null;
|
|
177
|
-
}
|
|
178
|
-
return managed;
|
|
179
|
-
}
|
|
180
|
-
async function resolveSpecificationExecutables(executableName, overrideVariable, resolveManaged, options) {
|
|
181
|
-
const override = options.environment[overrideVariable];
|
|
182
|
-
if (override !== undefined) {
|
|
183
|
-
if (override.length === 0 || !isAbsolute(override)) {
|
|
184
|
-
return [];
|
|
185
|
-
}
|
|
186
|
-
const executable = await resolveExecutablePath(override, options.platform);
|
|
187
|
-
return executable === null ? [] : [executable];
|
|
188
|
-
}
|
|
189
|
-
const external = await findExecutableOnPath(executableName, options.environment, options.platform);
|
|
190
|
-
const managed = await resolveManaged();
|
|
191
|
-
if (external === null) {
|
|
192
|
-
return managed === null ? [] : [managed];
|
|
193
|
-
}
|
|
194
|
-
if (managed === null || managed.path === external.path) {
|
|
195
|
-
return [external];
|
|
196
|
-
}
|
|
197
|
-
return [external, managed];
|
|
198
|
-
}
|
|
199
|
-
async function resolveAgentExecutables(specification, options) {
|
|
200
|
-
return await resolveSpecificationExecutables(specification.agentExecutable, specification.agentOverrideVariable, async () => await resolveManagedExecutable(specification.managedAgentExecutablePath, options), options);
|
|
201
|
-
}
|
|
202
|
-
async function resolveAdapterExecutables(specification, options) {
|
|
203
|
-
return await resolveSpecificationExecutables(specification.adapterExecutable, specification.adapterOverrideVariable, async () => await resolveManagedAdapterExecutable(specification, options), options);
|
|
204
|
-
}
|
|
205
|
-
export async function resolveAgentExecutable(specification, options) {
|
|
206
|
-
const executables = await resolveAgentExecutables(specification, options);
|
|
207
|
-
return executables[0] ?? null;
|
|
208
|
-
}
|
|
209
|
-
export async function resolveAdapterExecutable(specification, options) {
|
|
210
|
-
const executables = await resolveAdapterExecutables(specification, options);
|
|
211
|
-
return executables[0] ?? null;
|
|
212
|
-
}
|
|
213
|
-
function normalizedVersion(output) {
|
|
214
|
-
return output.trim().split(/\r?\n/, 1)[0]?.trim().slice(0, 128) ?? "";
|
|
215
|
-
}
|
|
216
|
-
async function probeVersion(executable, environment, defaultWorkspace, signal) {
|
|
217
|
-
const result = await runBoundedProcess({
|
|
218
|
-
arguments: ["--version"],
|
|
219
|
-
command: executable.path,
|
|
220
|
-
cwd: defaultWorkspace,
|
|
221
|
-
environment,
|
|
222
|
-
signal,
|
|
223
|
-
timeoutMilliseconds: VERSION_PROBE_TIMEOUT_MILLISECONDS,
|
|
224
|
-
});
|
|
225
|
-
const version = normalizedVersion(result.stdout || result.stderr);
|
|
226
|
-
if (version.length === 0) {
|
|
227
|
-
throw new ProcessExecutionError("process_exit_failed", "The executable did not report a version");
|
|
228
|
-
}
|
|
229
|
-
return version;
|
|
230
|
-
}
|
|
231
|
-
export class VerifiedAgentExecutable {
|
|
232
|
-
executable;
|
|
233
|
-
version;
|
|
234
|
-
constructor(executable, version) {
|
|
235
|
-
this.executable = executable;
|
|
236
|
-
this.version = version;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
export async function findVerifiedAgentExecutable(specification, options) {
|
|
240
|
-
const executables = await resolveAgentExecutables(specification, options);
|
|
241
|
-
for (const executable of executables) {
|
|
242
|
-
try {
|
|
243
|
-
const version = await probeVersion(executable, options.environment, options.defaultWorkspace, options.signal);
|
|
244
|
-
return new VerifiedAgentExecutable(executable, version);
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
if (options.signal.aborted) {
|
|
248
|
-
options.signal.throwIfAborted();
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
return null;
|
|
253
|
-
}
|
|
254
|
-
function readableAcpStream(input) {
|
|
255
|
-
let byteLength = 0;
|
|
256
|
-
let open = true;
|
|
257
|
-
return new ReadableStream({
|
|
258
|
-
start(controller) {
|
|
259
|
-
input.on("data", (chunk) => {
|
|
260
|
-
if (!open) {
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
if (!(chunk instanceof Uint8Array)) {
|
|
264
|
-
open = false;
|
|
265
|
-
controller.error(new Error("ACP adapter produced invalid output"));
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
byteLength += chunk.byteLength;
|
|
269
|
-
if (byteLength > ACP_OUTPUT_LIMIT_BYTES) {
|
|
270
|
-
open = false;
|
|
271
|
-
controller.error(new Error("ACP adapter output limit exceeded"));
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
controller.enqueue(new Uint8Array(chunk));
|
|
275
|
-
});
|
|
276
|
-
input.once("end", () => {
|
|
277
|
-
if (open) {
|
|
278
|
-
open = false;
|
|
279
|
-
controller.close();
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
input.once("error", (error) => {
|
|
283
|
-
if (open) {
|
|
284
|
-
open = false;
|
|
285
|
-
controller.error(error);
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
},
|
|
289
|
-
cancel() {
|
|
290
|
-
open = false;
|
|
291
|
-
},
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
function writableAcpStream(output) {
|
|
295
|
-
return new WritableStream({
|
|
296
|
-
write(chunk) {
|
|
297
|
-
return new Promise((resolveWrite, rejectWrite) => {
|
|
298
|
-
output.write(chunk, (error) => {
|
|
299
|
-
if (error) {
|
|
300
|
-
rejectWrite(error);
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
resolveWrite();
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
},
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
async function probeAcp(agent, environment, defaultWorkspace, signal) {
|
|
310
|
-
signal.throwIfAborted();
|
|
311
|
-
const controller = new AbortController();
|
|
312
|
-
let timedOut = false;
|
|
313
|
-
const timeout = setTimeout(() => {
|
|
314
|
-
timedOut = true;
|
|
315
|
-
controller.abort(new Error("ACP probe timed out"));
|
|
316
|
-
}, ACP_PROBE_TIMEOUT_MILLISECONDS);
|
|
317
|
-
const abort = () => controller.abort(signal.reason);
|
|
318
|
-
signal.addEventListener("abort", abort, { once: true });
|
|
319
|
-
if (signal.aborted) {
|
|
320
|
-
abort();
|
|
321
|
-
}
|
|
322
|
-
const child = spawn(agent.adapterPath, [...agent.arguments], {
|
|
323
|
-
cwd: defaultWorkspace,
|
|
324
|
-
detached: process.platform !== "win32",
|
|
325
|
-
env: { ...environment, ...agent.environment },
|
|
326
|
-
shell: false,
|
|
327
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
328
|
-
});
|
|
329
|
-
const processExit = new Promise((_resolve, reject) => {
|
|
330
|
-
const rejectExit = () => reject(new Error("ACP adapter exited during initialization"));
|
|
331
|
-
child.once("error", reject);
|
|
332
|
-
child.once("exit", rejectExit);
|
|
333
|
-
if (child.exitCode !== null || child.signalCode !== null)
|
|
334
|
-
rejectExit();
|
|
335
|
-
});
|
|
336
|
-
const stdin = child.stdin;
|
|
337
|
-
const stdout = child.stdout;
|
|
338
|
-
const stderr = child.stderr;
|
|
339
|
-
if (stdin === null || stdout === null || stderr === null) {
|
|
340
|
-
await stopProcessTree(child);
|
|
341
|
-
throw new AgentProbeError("acp_incompatible", "ACP adapter streams are unavailable");
|
|
342
|
-
}
|
|
343
|
-
let stderrBytes = 0;
|
|
344
|
-
const consumeStderr = (chunk) => {
|
|
345
|
-
stderrBytes += chunk.byteLength;
|
|
346
|
-
if (stderrBytes > ACP_OUTPUT_LIMIT_BYTES) {
|
|
347
|
-
controller.abort(new Error("ACP adapter output limit exceeded"));
|
|
348
|
-
}
|
|
349
|
-
};
|
|
350
|
-
stderr.on("data", consumeStderr);
|
|
351
|
-
const connection = createAcpClient(new DiscoveryAcpHandler()).connect(ndJsonStream(writableAcpStream(stdin), readableAcpStream(stdout)));
|
|
352
|
-
try {
|
|
353
|
-
const initialized = await Promise.race([
|
|
354
|
-
connection.agent.request(methods.agent.initialize, {
|
|
355
|
-
clientCapabilities: {},
|
|
356
|
-
clientInfo: { name: "mobius", version: "0.0.3" },
|
|
357
|
-
protocolVersion: PROTOCOL_VERSION,
|
|
358
|
-
}, { cancellationSignal: controller.signal }),
|
|
359
|
-
processExit,
|
|
360
|
-
]);
|
|
361
|
-
if (initialized.protocolVersion !== PROTOCOL_VERSION) {
|
|
362
|
-
throw new AgentProbeError("acp_incompatible", "ACP adapter selected an unsupported protocol version");
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
catch (error) {
|
|
366
|
-
if (signal.aborted) {
|
|
367
|
-
signal.throwIfAborted();
|
|
368
|
-
}
|
|
369
|
-
if (timedOut) {
|
|
370
|
-
throw new AgentProbeError("adapter_probe_timeout", "ACP adapter probe timed out", { cause: error });
|
|
371
|
-
}
|
|
372
|
-
if (error instanceof AgentProbeError) {
|
|
373
|
-
throw error;
|
|
374
|
-
}
|
|
375
|
-
throw new AgentProbeError("acp_incompatible", "ACP adapter initialization failed", { cause: error });
|
|
376
|
-
}
|
|
377
|
-
finally {
|
|
378
|
-
clearTimeout(timeout);
|
|
379
|
-
signal.removeEventListener("abort", abort);
|
|
380
|
-
connection.close();
|
|
381
|
-
stdin.end();
|
|
382
|
-
stderr.removeListener("data", consumeStderr);
|
|
383
|
-
await stopProcessTree(child);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
function probeFailure(specification, executableKind, error) {
|
|
387
|
-
if (error instanceof AgentProbeError) {
|
|
388
|
-
return error.code === "acp_incompatible"
|
|
389
|
-
? new IncompatibleAdapter(specification)
|
|
390
|
-
: new ProbeFailed(specification, error.code, error.message);
|
|
391
|
-
}
|
|
392
|
-
if (error instanceof ProcessExecutionError) {
|
|
393
|
-
const code = error.code === "process_timeout"
|
|
394
|
-
? `${executableKind}_probe_timeout`
|
|
395
|
-
: `${executableKind}_probe_failed`;
|
|
396
|
-
return new ProbeFailed(specification, code, `${executableKind === "agent" ? "Agent" : "Adapter"} version probe failed`);
|
|
397
|
-
}
|
|
398
|
-
return new ProbeFailed(specification, `${executableKind}_probe_failed`, `${executableKind === "agent" ? "Agent" : "Adapter"} probe failed`);
|
|
399
|
-
}
|
|
400
|
-
async function discoverSpecification(specification, options) {
|
|
401
|
-
options.signal.throwIfAborted();
|
|
402
|
-
const [adapters, agents] = await Promise.all([
|
|
403
|
-
resolveAdapterExecutables(specification, options),
|
|
404
|
-
resolveAgentExecutables(specification, options),
|
|
405
|
-
]);
|
|
406
|
-
if (adapters.length === 0) {
|
|
407
|
-
return new MissingAdapter(specification);
|
|
408
|
-
}
|
|
409
|
-
if (agents.length === 0) {
|
|
410
|
-
return new MissingAgent(specification);
|
|
411
|
-
}
|
|
412
|
-
let lastFailure = null;
|
|
413
|
-
for (const agent of agents) {
|
|
414
|
-
let agentVersion = "";
|
|
415
|
-
try {
|
|
416
|
-
agentVersion = await probeVersion(agent, options.environment, options.defaultWorkspace, options.signal);
|
|
417
|
-
}
|
|
418
|
-
catch (error) {
|
|
419
|
-
if (options.signal.aborted) {
|
|
420
|
-
options.signal.throwIfAborted();
|
|
421
|
-
}
|
|
422
|
-
lastFailure = probeFailure(specification, "agent", error);
|
|
423
|
-
continue;
|
|
424
|
-
}
|
|
425
|
-
for (const adapter of adapters) {
|
|
426
|
-
let adapterVersion = "";
|
|
427
|
-
try {
|
|
428
|
-
adapterVersion = await probeVersion(adapter, {
|
|
429
|
-
...options.environment,
|
|
430
|
-
[specification.adapterEnvironmentVariable]: agent.path,
|
|
431
|
-
}, options.defaultWorkspace, options.signal);
|
|
432
|
-
}
|
|
433
|
-
catch (error) {
|
|
434
|
-
if (options.signal.aborted) {
|
|
435
|
-
options.signal.throwIfAborted();
|
|
436
|
-
}
|
|
437
|
-
lastFailure = probeFailure(specification, "adapter", error);
|
|
438
|
-
continue;
|
|
439
|
-
}
|
|
440
|
-
const definition = new LocalAgentDefinition(specification.id, specification.label, adapter.path, [], { [specification.adapterEnvironmentVariable]: agent.path }, adapterVersion, agentVersion, adapter.identity, agent.identity);
|
|
441
|
-
try {
|
|
442
|
-
await probeAcp(definition, options.environment, options.defaultWorkspace, options.signal);
|
|
443
|
-
return new AvailableAgent(specification, definition);
|
|
444
|
-
}
|
|
445
|
-
catch (error) {
|
|
446
|
-
if (options.signal.aborted) {
|
|
447
|
-
options.signal.throwIfAborted();
|
|
448
|
-
}
|
|
449
|
-
lastFailure = probeFailure(specification, "adapter", error);
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
return lastFailure ?? new IncompatibleAdapter(specification);
|
|
454
|
-
}
|
|
3
|
+
import { LocalAgentInventory } from "./agent-discovery.js";
|
|
4
|
+
import { supportedLocalAgentSpecifications } from "./agents/supported-agent-specifications.js";
|
|
5
|
+
import { discoverAgent } from "./discover-agent.js";
|
|
6
|
+
export { AvailableAgent, LocalAgentInventory, } from "./agent-discovery.js";
|
|
7
|
+
export { CodexAgentSpecification } from "./agents/codex-agent.js";
|
|
8
|
+
export { DeepSeekHarnessAgentSpecification } from "./agents/deepseek-harness-agent.js";
|
|
9
|
+
export { OpenCodeAgentSpecification } from "./agents/opencode-agent.js";
|
|
10
|
+
export { PiAgentSpecification } from "./agents/pi-agent.js";
|
|
11
|
+
export { supportedLocalAgentSpecifications } from "./agents/supported-agent-specifications.js";
|
|
12
|
+
export { resolveAgentExecutable } from "./executable-discovery.js";
|
|
455
13
|
export async function discoverLocalAgentInventory(options) {
|
|
456
14
|
const specifications = options.specifications ?? supportedLocalAgentSpecifications();
|
|
457
|
-
const discoveries = await Promise.all(specifications.map(async (specification) => await
|
|
15
|
+
const discoveries = await Promise.all(specifications.map(async (specification) => await discoverAgent(specification, options)));
|
|
458
16
|
let grantedAgents = new Set();
|
|
459
17
|
try {
|
|
460
18
|
grantedAgents = await readGrantedAgents(readStateDirectory(options.environment));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-local-agents.js","sourceRoot":"","sources":["../../src/agent-catalog/discover-local-agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discover-local-agents.js","sourceRoot":"","sources":["../../src/agent-catalog/discover-local-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAA2C;IAE3C,MAAM,cAAc,GAClB,OAAO,CAAC,cAAc,IAAI,iCAAiC,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,cAAc,CAAC,GAAG,CAChB,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CACrE,CACF,CAAC;IACF,IAAI,aAAa,GAAwB,IAAI,GAAG,EAAU,CAAC;IAC3D,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,iBAAiB,CACrC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CACxC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;IACD,OAAO,IAAI,mBAAmB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,YAAY,CACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ResolvedExecutable } from "../process/executable.ts";
|
|
2
|
+
import type { LocalAgentDiscoveryContext } from "./agent-discovery-context.ts";
|
|
3
|
+
import { type LocalAgentSpecification } from "./agent-specification.ts";
|
|
4
|
+
export declare function resolveAgentExecutables(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<readonly ResolvedExecutable[]>;
|
|
5
|
+
export declare function resolveAdapterExecutables(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<readonly ResolvedExecutable[]>;
|
|
6
|
+
export declare function resolveAgentExecutable(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<ResolvedExecutable | null>;
|
|
7
|
+
export declare function resolveAdapterExecutable(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<ResolvedExecutable | null>;
|
|
8
|
+
export declare function normalizedVersion(output: string): string;
|
|
9
|
+
export declare function probeVersion(executable: ResolvedExecutable, arguments_: readonly string[], environment: Readonly<NodeJS.ProcessEnv>, defaultWorkspace: string, signal: AbortSignal, timeoutMilliseconds: number): Promise<string>;
|
|
10
|
+
export declare class VerifiedAgentExecutable {
|
|
11
|
+
readonly executable: ResolvedExecutable;
|
|
12
|
+
readonly version: string;
|
|
13
|
+
constructor(executable: ResolvedExecutable, version: string);
|
|
14
|
+
}
|
|
15
|
+
export declare function findVerifiedAgentExecutable(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<VerifiedAgentExecutable | null>;
|
|
16
|
+
//# sourceMappingURL=executable-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-discovery.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/executable-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,kBAAkB,EAGxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,0BAA0B,CAAC;AAoElC,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAOxC;AAED,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAaxC;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EACxC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,WAAW,EACnB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,qBAAa,uBAAuB;IAClC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAG1D;CACF;AAED,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAoBzC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { isAbsolute, join } from "node:path";
|
|
2
|
+
import { validateManagedAdapter } from "../agent-installation/managed-adapter-installer.js";
|
|
3
|
+
import { findExecutableOnPath, ProcessExecutionError, resolveExecutablePath, runBoundedProcess, } from "../process/executable.js";
|
|
4
|
+
import { readStateDirectory } from "../storage/state-directory.js";
|
|
5
|
+
import { BridgedAcpAgentDefinition, DirectAcpAgentDefinition, } from "./agent-specification.js";
|
|
6
|
+
async function resolveManagedExecutable(specification, context) {
|
|
7
|
+
try {
|
|
8
|
+
return await specification.resolveManagedAgent(readStateDirectory(context.environment), context.platform ?? process.platform, context.signal);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
context.signal.throwIfAborted();
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
async function resolveManagedAdapterExecutable(specification, context) {
|
|
16
|
+
let managed;
|
|
17
|
+
try {
|
|
18
|
+
managed = await validateManagedAdapter(join(readStateDirectory(context.environment), "adapters", specification.id, specification.adapterVersion), specification);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return managed;
|
|
24
|
+
}
|
|
25
|
+
async function resolveSpecificationExecutables(executableName, overrideVariable, resolveManaged, context) {
|
|
26
|
+
const override = context.environment[overrideVariable];
|
|
27
|
+
if (override !== undefined) {
|
|
28
|
+
if (override.length === 0 || !isAbsolute(override)) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
const executable = await resolveExecutablePath(override, context.platform);
|
|
32
|
+
return executable === null ? [] : [executable];
|
|
33
|
+
}
|
|
34
|
+
const external = await findExecutableOnPath(executableName, context.environment, context.platform);
|
|
35
|
+
const managed = await resolveManaged();
|
|
36
|
+
if (external === null) {
|
|
37
|
+
return managed === null ? [] : [managed];
|
|
38
|
+
}
|
|
39
|
+
if (managed === null || managed.path === external.path) {
|
|
40
|
+
return [external];
|
|
41
|
+
}
|
|
42
|
+
return [external, managed];
|
|
43
|
+
}
|
|
44
|
+
export async function resolveAgentExecutables(specification, context) {
|
|
45
|
+
return await resolveSpecificationExecutables(specification.agentExecutable, specification.agentOverrideVariable, async () => await resolveManagedExecutable(specification, context), context);
|
|
46
|
+
}
|
|
47
|
+
export async function resolveAdapterExecutables(specification, context) {
|
|
48
|
+
if (specification instanceof DirectAcpAgentDefinition) {
|
|
49
|
+
return await resolveAgentExecutables(specification, context);
|
|
50
|
+
}
|
|
51
|
+
if (!(specification instanceof BridgedAcpAgentDefinition)) {
|
|
52
|
+
throw new Error("Unsupported local Agent execution topology");
|
|
53
|
+
}
|
|
54
|
+
return await resolveSpecificationExecutables(specification.adapterExecutable, specification.adapterOverrideVariable, async () => await resolveManagedAdapterExecutable(specification, context), context);
|
|
55
|
+
}
|
|
56
|
+
export async function resolveAgentExecutable(specification, context) {
|
|
57
|
+
const executables = await resolveAgentExecutables(specification, context);
|
|
58
|
+
return executables[0] ?? null;
|
|
59
|
+
}
|
|
60
|
+
export async function resolveAdapterExecutable(specification, context) {
|
|
61
|
+
const executables = await resolveAdapterExecutables(specification, context);
|
|
62
|
+
return executables[0] ?? null;
|
|
63
|
+
}
|
|
64
|
+
export function normalizedVersion(output) {
|
|
65
|
+
return output.trim().split(/\r?\n/, 1)[0]?.trim().slice(0, 128) ?? "";
|
|
66
|
+
}
|
|
67
|
+
export async function probeVersion(executable, arguments_, environment, defaultWorkspace, signal, timeoutMilliseconds) {
|
|
68
|
+
const result = await runBoundedProcess({
|
|
69
|
+
arguments: arguments_,
|
|
70
|
+
command: executable.path,
|
|
71
|
+
cwd: defaultWorkspace,
|
|
72
|
+
environment,
|
|
73
|
+
signal,
|
|
74
|
+
timeoutMilliseconds,
|
|
75
|
+
});
|
|
76
|
+
const version = normalizedVersion(result.stdout || result.stderr);
|
|
77
|
+
if (version.length === 0) {
|
|
78
|
+
throw new ProcessExecutionError("process_exit_failed", "The executable did not report a version");
|
|
79
|
+
}
|
|
80
|
+
return version;
|
|
81
|
+
}
|
|
82
|
+
export class VerifiedAgentExecutable {
|
|
83
|
+
executable;
|
|
84
|
+
version;
|
|
85
|
+
constructor(executable, version) {
|
|
86
|
+
this.executable = executable;
|
|
87
|
+
this.version = version;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export async function findVerifiedAgentExecutable(specification, context) {
|
|
91
|
+
const executables = await resolveAgentExecutables(specification, context);
|
|
92
|
+
for (const executable of executables) {
|
|
93
|
+
try {
|
|
94
|
+
const version = await probeVersion(executable, specification.agentVersionArguments, context.environment, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds);
|
|
95
|
+
return new VerifiedAgentExecutable(executable, version);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
if (context.signal.aborted) {
|
|
99
|
+
context.signal.throwIfAborted();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=executable-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executable-discovery.js","sourceRoot":"","sources":["../../src/agent-catalog/executable-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,8 @@ export declare class LocalAgentDefinition {
|
|
|
10
10
|
readonly environment: Readonly<Record<string, string>>;
|
|
11
11
|
readonly id: string;
|
|
12
12
|
readonly label: string;
|
|
13
|
-
|
|
13
|
+
readonly promptTimeoutMilliseconds: number;
|
|
14
|
+
constructor(id: string, label: string, command: string, arguments_: readonly string[], environment?: Readonly<Record<string, string>>, adapterVersion?: string, agentVersion?: string, adapterIdentity?: ExecutableIdentity, agentIdentity?: ExecutableIdentity, promptTimeoutMilliseconds?: number);
|
|
14
15
|
}
|
|
15
16
|
export declare class InstallableAgentDefinition {
|
|
16
17
|
readonly id: string;
|