- CapabilityRegistry: descriptor(id/version/schema/scope/risk/idempotent/preview/replay), invoke = scope limit -> input schema -> server-side authorize -> idempotency key -> handler -> output schema -> audit; capability id <-> tool name mapping (download.submit <-> download__submit) - PiAgentRuntime (pi-agent-core AgentHarness 0.87.1): whitelist tools + before_tool re-check, redacted event stream, JSONL session at sessionDir/<runId>.jsonl, resume/abort/compact, tool-call/duration/token/cost budgets -> abort + run_failed(budget) - AgentSettings -> pi-ai createProvider (anthropic / openai-compatible), compaction mapping - FakeModelProvider + createFakeRuntime (scripted, transcript-derived, survives crash/resume) - buildSystemPrompt, redactForModel; 27 tests incl. SIGKILL + resume Co-Authored-By: Claude Fable 5.1 <[email protected]>
19 lines
608 B
TypeScript
19 lines
608 B
TypeScript
import type { FakeScript } from "../../src";
|
|
|
|
export const RUN_ID = "run-crash-1";
|
|
|
|
export const crashScript: FakeScript = {
|
|
match: "Dune",
|
|
steps: [
|
|
{ text: "先查库存。", toolCalls: [{ capability: "inventory.query", input: { title: "Dune" } }] },
|
|
{
|
|
text: "库里没有,提交下载。",
|
|
toolCalls: [{ capability: "download.submit", input: { title: "Dune", quality: "1080p" } }],
|
|
},
|
|
],
|
|
finalText: (results) => {
|
|
const last = results.at(-1);
|
|
return last?.isError ? `下载提交结果未知,需要核对:${last.text.slice(0, 40)}` : "已提交(未入库)";
|
|
},
|
|
};
|