Product Kit · 1.0.0
Browser-local · inert replay artifacts
Agent Tool-Call Replay Kit
Validate one submitted tool-call trace and package an inert deterministic replay fixture without executing any tool.
Agent developers reproducing tool-definition, call/result linkage, schema, ordering, and expected-outcome regressions in local development or CI.
Live local replay result
Not generated. The build-time sample is not a live user result.
Build-time sample replay
{
"ok": true,
"schema_version": "utilito.product-kit.v1",
"kit": {
"id": "agent-tool-call-replay-kit",
"version": "1.0.0"
},
"result": {
"status": "matched",
"normalized_timeline": [
{
"submitted_index": 0,
"ordinal": 1,
"arguments": {
"city": "Oslo",
"units": "c"
},
"call_id": "call-weather",
"kind": "call",
"sequence": 1,
"tool_name": "weather_lookup"
},
{
"submitted_index": 1,
"ordinal": 2,
"call_id": "call-weather",
"kind": "result",
"outcome": "success",
"result": {
"summary": "Cloudy",
"temperature": 7
},
"sequence": 2
},
{
"submitted_index": 2,
"ordinal": 3,
"arguments": {
"message": "Bring a coat"
},
"call_id": "call-notice",
"kind": "call",
"sequence": 3,
"tool_name": "send_notice"
},
{
"submitted_index": 3,
"ordinal": 4,
"call_id": "call-notice",
"error": {
"code": "DELIVERY_BLOCKED",
"message": "Review destination manually"
},
"kind": "result",
"outcome": "error",
"sequence": 4
}
],
"linkage": {
"policy": {
"result_cardinality": "exactly_one",
"result_to_call": "required_exact",
"unique_call_ids": true
},
"calls": [
{
"call_id": "call-weather",
"tool_name": "weather_lookup",
"submitted_index": 0,
"sequence": 1,
"definition_status": "defined"
},
{
"call_id": "call-notice",
"tool_name": "send_notice",
"submitted_index": 2,
"sequence": 3,
"definition_status": "defined"
}
],
"results": [
{
"call_id": "call-weather",
"submitted_index": 1,
"sequence": 2,
"outcome": "success",
"link_status": "linked_prior_call",
"call_submitted_index": 0
},
{
"call_id": "call-notice",
"submitted_index": 3,
"sequence": 4,
"outcome": "error",
"link_status": "linked_prior_call",
"call_submitted_index": 2
}
],
"orphan_results": [],
"missing_results": [],
"duplicate_results": []
},
"diagnostics": [
{
"code": "ARGUMENT_SCHEMA_MATCH",
"status": "matched",
"path": "transcript[0].arguments",
"message": "Arguments match the submitted executable schema subset.",
"submitted_index": 0
},
{
"code": "RESULT_SCHEMA_MATCH",
"status": "matched",
"path": "transcript[1].result",
"message": "Result matches the submitted executable schema subset.",
"submitted_index": 1
},
{
"code": "ARGUMENT_SCHEMA_MATCH",
"status": "matched",
"path": "transcript[2].arguments",
"message": "Arguments match the submitted executable schema subset.",
"submitted_index": 2
}
],
"fixture": {
"schema_version": "utilito.agent-tool-call-replay-fixture.v1",
"kit_version": "1.0.0",
"inert": true,
"execute_tools": false,
"tool_definitions": [
{
"description": "Return submitted weather facts.",
"input_schema": {
"additionalProperties": false,
"properties": {
"city": {
"type": "string"
},
"units": {
"enum": [
"c",
"f"
]
}
},
"required": [
"city",
"units"
],
"type": "object"
},
"name": "weather_lookup",
"result_schema": {
"additionalProperties": false,
"properties": {
"summary": {
"type": "string"
},
"temperature": {
"type": "number"
}
},
"required": [
"temperature",
"summary"
],
"type": "object"
}
},
{
"description": "Record a submitted notice outcome.",
"input_schema": {
"additionalProperties": false,
"properties": {
"message": {
"type": "string"
}
},
"required": [
"message"
],
"type": "object"
},
"name": "send_notice",
"result_schema": {
"additionalProperties": false,
"properties": {
"accepted": {
"type": "boolean"
}
},
"required": [
"accepted"
],
"type": "object"
}
}
],
"normalized_timeline": [
{
"submitted_index": 0,
"ordinal": 1,
"arguments": {
"city": "Oslo",
"units": "c"
},
"call_id": "call-weather",
"kind": "call",
"sequence": 1,
"tool_name": "weather_lookup"
},
{
"submitted_index": 1,
"ordinal": 2,
"call_id": "call-weather",
"kind": "result",
"outcome": "success",
"result": {
"summary": "Cloudy",
"temperature": 7
},
"sequence": 2
},
{
"submitted_index": 2,
"ordinal": 3,
"arguments": {
"message": "Bring a coat"
},
"call_id": "call-notice",
"kind": "call",
"sequence": 3,
"tool_name": "send_notice"
},
{
"submitted_index": 3,
"ordinal": 4,
"call_id": "call-notice",
"error": {
"code": "DELIVERY_BLOCKED",
"message": "Review destination manually"
},
"kind": "result",
"outcome": "error",
"sequence": 4
}
],
"expectations": {
"call_order": [
"call-weather",
"call-notice"
],
"outcomes": [
{
"call_id": "call-weather",
"outcome": "success"
},
{
"call_id": "call-notice",
"error_code": "DELIVERY_BLOCKED",
"outcome": "error"
}
]
},
"id_link_policy": {
"result_cardinality": "exactly_one",
"result_to_call": "required_exact",
"unique_call_ids": true
},
"recorded_status": "matched",
"recorded_mismatch_count": 0
},
"assertions": {
"inert": true,
"language": "javascript",
"runtime": "node",
"node_source": "const DATA={\"schema_version\":\"utilito.agent-tool-call-replay-fixture.v1\",\"kit_version\":\"1.0.0\",\"inert\":true,\"execute_tools\":false,\"tool_definitions\":[{\"description\":\"Return submitted weather facts.\",\"input_schema\":{\"additionalProperties\":false,\"properties\":{\"city\":{\"type\":\"string\"},\"units\":{\"enum\":[\"c\",\"f\"]}},\"required\":[\"city\",\"units\"],\"type\":\"object\"},\"name\":\"weather_lookup\",\"result_schema\":{\"additionalProperties\":false,\"properties\":{\"summary\":{\"type\":\"string\"},\"temperature\":{\"type\":\"number\"}},\"required\":[\"temperature\",\"summary\"],\"type\":\"object\"}},{\"description\":\"Record a submitted notice outcome.\",\"input_schema\":{\"additionalProperties\":false,\"properties\":{\"message\":{\"type\":\"string\"}},\"required\":[\"message\"],\"type\":\"object\"},\"name\":\"send_notice\",\"result_schema\":{\"additionalProperties\":false,\"properties\":{\"accepted\":{\"type\":\"boolean\"}},\"required\":[\"accepted\"],\"type\":\"object\"}}],\"normalized_timeline\":[{\"submitted_index\":0,\"ordinal\":1,\"arguments\":{\"city\":\"Oslo\",\"units\":\"c\"},\"call_id\":\"call-weather\",\"kind\":\"call\",\"sequence\":1,\"tool_name\":\"weather_lookup\"},{\"submitted_index\":1,\"ordinal\":2,\"call_id\":\"call-weather\",\"kind\":\"result\",\"outcome\":\"success\",\"result\":{\"summary\":\"Cloudy\",\"temperature\":7},\"sequence\":2},{\"submitted_index\":2,\"ordinal\":3,\"arguments\":{\"message\":\"Bring a coat\"},\"call_id\":\"call-notice\",\"kind\":\"call\",\"sequence\":3,\"tool_name\":\"send_notice\"},{\"submitted_index\":3,\"ordinal\":4,\"call_id\":\"call-notice\",\"error\":{\"code\":\"DELIVERY_BLOCKED\",\"message\":\"Review destination manually\"},\"kind\":\"result\",\"outcome\":\"error\",\"sequence\":4}],\"expectations\":{\"call_order\":[\"call-weather\",\"call-notice\"],\"outcomes\":[{\"call_id\":\"call-weather\",\"outcome\":\"success\"},{\"call_id\":\"call-notice\",\"error_code\":\"DELIVERY_BLOCKED\",\"outcome\":\"error\"}]},\"id_link_policy\":{\"result_cardinality\":\"exactly_one\",\"result_to_call\":\"required_exact\",\"unique_call_ids\":true},\"recorded_status\":\"matched\",\"recorded_mismatch_count\":0};\nconst EXPECTED_FIXTURE_HASH=2979528385;\nconst EXPECTED_SEQUENCES=[1,2,3,4];\nconst EXPECTED_MISMATCH_COUNT=0;\nfunction assert(condition,message){if(!condition)throw new Error(message)}\nfunction fixtureHash(value){const text=JSON.stringify(value);let hash=2166136261;for(let i=0;i<text.length;i+=1){hash^=text.charCodeAt(i);hash=Math.imul(hash,16777619)}return hash>>>0}\nfunction assertReplayFixture(data){const t=data.normalized_timeline;assert(fixtureHash(data)===EXPECTED_FIXTURE_HASH,'fixture integrity changed');assert(JSON.stringify(t.map(e=>e.sequence))===JSON.stringify(EXPECTED_SEQUENCES),'submitted sequences changed');assert(data.recorded_mismatch_count===EXPECTED_MISMATCH_COUNT,'recorded mismatch count changed');assert(data.inert===true&&data.execute_tools===false,'fixture must remain inert');assert(t.every((e,i)=>e.ordinal===i+1&&e.submitted_index===i),'submitted order changed');const calls=t.filter(e=>e.kind==='call');const results=t.filter(e=>e.kind==='result');assert(new Set(calls.map(e=>e.call_id)).size===calls.length,'duplicate call linkage');for(const r of results){const c=calls.find(e=>e.call_id===r.call_id);assert(c&&c.submitted_index<r.submitted_index,'result linkage changed')}assert(JSON.stringify(calls.map(e=>e.call_id))===JSON.stringify(data.expectations.call_order),'call order changed');for(const expected of data.expectations.outcomes){const actual=results.find(e=>e.call_id===expected.call_id);assert(actual&&actual.outcome===expected.outcome,'outcome changed');if(expected.outcome==='error')assert(actual.error.code===expected.error_code,'typed error changed')}assert(data.recorded_status==='matched','recorded replay is not matched');return true}\nassertReplayFixture(DATA);\n",
"bytes": 3636,
"executes_tools": false
},
"report": {
"format": "markdown",
"mime_type": "text/markdown",
"mode": "details",
"content": "# Agent Tool-Call Replay Report\n\nStatus: **matched**\n\nCaller-submitted outcomes remain unverified. No tool was executed or replayed.\n\n| Ordinal | Kind | Call ID | Sequence |\n|---:|---|---|---:|\n| 1 | call | call-weather | 1 |\n| 2 | result | call-weather | 2 |\n| 3 | call | call-notice | 3 |\n| 4 | result | call-notice | 4 |\n\n## Diagnostics\n\n- matched: ARGUMENT\\_SCHEMA\\_MATCH at transcript\\[0\\]\\.arguments\n- matched: RESULT\\_SCHEMA\\_MATCH at transcript\\[1\\]\\.result\n- matched: ARGUMENT\\_SCHEMA\\_MATCH at transcript\\[2\\]\\.arguments\n## Sensitivity-cleared details\n\n```json\n[\n {\n \"submitted_index\": 0,\n \"ordinal\": 1,\n \"arguments\": {\n \"city\": \"Oslo\",\n \"units\": \"c\"\n },\n \"call_id\": \"call-weather\",\n \"kind\": \"call\",\n \"sequence\": 1,\n \"tool_name\": \"weather_lookup\"\n },\n {\n \"submitted_index\": 1,\n \"ordinal\": 2,\n \"call_id\": \"call-weather\",\n \"kind\": \"result\",\n \"outcome\": \"success\",\n \"result\": {\n \"summary\": \"Cloudy\",\n \"temperature\": 7\n },\n \"sequence\": 2\n },\n {\n \"submitted_index\": 2,\n \"ordinal\": 3,\n \"arguments\": {\n \"message\": \"Bring a coat\"\n },\n \"call_id\": \"call-notice\",\n \"kind\": \"call\",\n \"sequence\": 3,\n \"tool_name\": \"send_notice\"\n },\n {\n \"submitted_index\": 3,\n \"ordinal\": 4,\n \"call_id\": \"call-notice\",\n \"error\": {\n \"code\": \"DELIVERY_BLOCKED\",\n \"message\": \"Review destination manually\"\n },\n \"kind\": \"result\",\n \"outcome\": \"error\",\n \"sequence\": 4\n }\n]\n```"
},
"mismatch_report": {
"count": 0,
"items": [],
"review_count": 0,
"checklist": []
},
"safety": {
"tools_executed": false,
"tools_replayed": false,
"values_invented": false,
"values_repaired": false,
"results_verified": false,
"submitted_outcomes_verified": false,
"network_used": false,
"model_used": false,
"storage_used": false,
"telemetry_used": false
}
},
"receipt": {
"input_bytes": 1660,
"output_bytes": 10509,
"operations": 4,
"omitted_items": 0,
"warnings": [],
"definitions": 2,
"events": 4,
"mismatches": 0,
"review_items": 0,
"tools_executed": 0,
"fixture_bytes": 1908,
"assertion_bytes": 3636,
"report_bytes": 1485
},
"provenance": {
"deterministic": true,
"model_used": false,
"network_used": false,
"storage_used": false,
"core_versions": {
"agent_tool_call_replay_kit": "1.0.0"
}
},
"error": null
}Free runnable capability
Build and download one bounded browser-local replay fixture and assertion file with no signup.
Builder capability
The existing Builder Pilot can coordinate higher bounded review volume; it does not add tool execution, provider calls, storage, telemetry, monitoring, or pipeline support.
See the existing Builder PilotPrivacy boundary
Browser generation runs locally. API and MCP are response-only; no tool, command, submitted content, provider, model, network, storage, telemetry, history, or pipeline executes.
Replay limits
- The executable schema seam is limited to type, properties, required, boolean additionalProperties, items, enum, and const. Safe extra semantics remain explicit review items; references, combinators, malformed schemas, and non-boolean additionalProperties reject.
- IDs, submitted order, arguments, results, errors, and expectations are preserved. Missing, duplicate, orphaned, reordered, conflicting, or unknown links are reported; no value is synthesized, resolved, repaired, reordered, migrated, or executed.
- Metadata reports omit argument and result payloads. Details reports include only already sensitivity-cleared input. Credential-shaped keys and values reject before reflective output.
- Generated Node assertions contain escaped caller data as inert literals and check linkage, order, and outcomes. They do not verify semantic correctness, execute tools, access files, start subprocesses, import providers, or use a network.