temp
This commit is contained in:
40
dist/tools/agent-api.js
vendored
Normal file
40
dist/tools/agent-api.js
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
// =============================================================================
|
||||
// Pure sub-agent orchestration API. Wraps the vibn-agent-runner HTTP endpoints
|
||||
// so the same logic is usable from the in-process tool and from an MCP server.
|
||||
// =============================================================================
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.spawnAgent = spawnAgent;
|
||||
exports.getJobStatus = getJobStatus;
|
||||
async function spawnAgent(cfg, input) {
|
||||
try {
|
||||
const res = await fetch(`${cfg.runnerUrl}/api/agent/run`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json', 'X-Internal': 'true' },
|
||||
body: JSON.stringify({ agent: input.agent, task: input.task, repo: input.repo }),
|
||||
});
|
||||
const data = (await res.json());
|
||||
return { jobId: data.jobId, agent: input.agent, status: 'dispatched' };
|
||||
}
|
||||
catch (err) {
|
||||
return { error: `Failed to spawn agent: ${err instanceof Error ? err.message : String(err)}` };
|
||||
}
|
||||
}
|
||||
async function getJobStatus(cfg, jobId) {
|
||||
try {
|
||||
const res = await fetch(`${cfg.runnerUrl}/api/jobs/${jobId}`);
|
||||
const job = (await res.json());
|
||||
return {
|
||||
id: job.id,
|
||||
agent: job.agent,
|
||||
status: job.status,
|
||||
progress: job.progress,
|
||||
toolCalls: job.toolCalls?.length,
|
||||
result: job.result,
|
||||
error: job.error,
|
||||
};
|
||||
}
|
||||
catch (err) {
|
||||
return { error: `Failed to get job: ${err instanceof Error ? err.message : String(err)}` };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user