// agents/my-agent.ts
import {
completeEvidenceCoverage,
createNpmCliInstaller,
defineSandboxAgent,
resolveAgentBin,
} from "niceeval/adapter";
const { ensure, installer } = createNpmCliInstaller({
identity: {
agent: "my-agent",
version: "1.0.0",
revision: "1",
},
packageName: "my-agent",
bin: "my-agent",
progress: {
checking: "检查 my-agent CLI 1.0.0",
installing: "安装 my-agent CLI 1.0.0",
ready: "my-agent CLI 1.0.0 已就绪",
},
});
export default defineSandboxAgent({
name: "my-agent",
evidenceCoverage: completeEvidenceCoverage,
ensure,
installers: [installer],
async setup(sandbox) {
await sandbox.writeText(".my-agent/config.json", JSON.stringify({ telemetry: true }));
},
async send(input, ctx) {
const bin = await resolveAgentBin(ctx.sandbox, "my-agent");
const result = await ctx.sandbox.runCommand(bin, ["run", "--json", input.text]);
if (result.exitCode !== 0) {
throw new Error(`my-agent 退出码 ${result.exitCode}: ${result.stderr}`);
}
return parseTurn(result.stdout);
},
});