ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s

This commit is contained in:
2026-08-20 13:12:50 +00:00
commit b119135836
10275 changed files with 3284984 additions and 0 deletions
@@ -0,0 +1,33 @@
{
"schema_version": 1,
"experiment": "6-7",
"run_dir": "exp6-7-anthropic-native-20260803-v2",
"passed": true,
"gates": {
"source_commit": true,
"dockerfile_sha256": true,
"immutable_image_id": true,
"base_image_digest": true,
"model_finished": true,
"action_ceiling": true,
"sequential_action_indexes": true,
"unique_tool_use_ids": true,
"native_tools_retained": true,
"all_actions_executed": true,
"all_provider_calls_succeeded": true,
"provider_model_match": true,
"unique_message_ids": true,
"unique_request_ids": true,
"receipt_count": true,
"screenshots_exist_and_match": true,
"grounded_weather_answer": true,
"no_captcha_interaction": true,
"no_credential_material": true
},
"counts": {
"api_calls": 16,
"actions": 15,
"screenshots": 15,
"files_hashed": 33
}
}
@@ -0,0 +1,38 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3LvjdbJv5jyFhMkjJK",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I'll help you search for San Francisco weather today using Google. Let me start by taking a screenshot to see the current state of the screen."
},
{
"type": "tool_use",
"id": "toolu_01FLYTkvbJokU55ZBzmrtazx",
"name": "computer",
"input": {
"action": "screenshot"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 3,
"cache_creation_input_tokens": 3540,
"cache_read_input_tokens": 0,
"cache_creation": {
"ephemeral_5m_input_tokens": 3540,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 81,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,42 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3MAnUkw7vV2Jtps6by",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I can see a desktop with a dark background. I need to open Firefox to access Google. Let me look for the Firefox icon on the screen."
},
{
"type": "tool_use",
"id": "toolu_01VQkJ7ARzmrUNJVhsJbT9za",
"name": "computer",
"input": {
"action": "left_click",
"coordinate": [
512,
384
]
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1486,
"cache_read_input_tokens": 3193,
"cache_creation": {
"ephemeral_5m_input_tokens": 1486,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 106,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,42 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3NHdWxqnv6szDpoCcj",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Good! I can see the desktop with a taskbar at the bottom. I can see the Firefox icon (the orange/red fox icon) in the taskbar. Let me click on it to open Firefox."
},
{
"type": "tool_use",
"id": "toolu_01WYuDwQFW8QPqeMdYPhuoJZ",
"name": "computer",
"input": {
"action": "left_click",
"coordinate": [
806,
738
]
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1168,
"cache_read_input_tokens": 4679,
"cache_creation": {
"ephemeral_5m_input_tokens": 1168,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 119,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,42 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3Npzui8Bi4yfoQhG1x",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Perfect! Firefox has opened and is showing a welcome wizard. As instructed, I should ignore this wizard and click directly on the address bar to enter my search. Let me click on the address bar that says \"Search or enter address\"."
},
{
"type": "tool_use",
"id": "toolu_01PnXXbejejwibhhHAhRns5t",
"name": "computer",
"input": {
"action": "left_click",
"coordinate": [
298,
100
]
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1181,
"cache_read_input_tokens": 5847,
"cache_creation": {
"ephemeral_5m_input_tokens": 1181,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 124,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3PRtsmSG2qiswjZ7zJ",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Good! The address bar is now active and showing some suggested websites. I need to type my search query for Google. Let me type \"google.com\" first to navigate to Google's homepage."
},
{
"type": "tool_use",
"id": "toolu_012Lsqq4hceW3tXD8DGG4Q8B",
"name": "computer",
"input": {
"action": "type",
"text": "google.com"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1186,
"cache_read_input_tokens": 7028,
"cache_creation": {
"ephemeral_5m_input_tokens": 1186,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 111,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3PovCeeykxRMk55jap",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Perfect! I can see \"google.co\" is typed in the address bar with the Google icon appearing. Now I'll press Enter to navigate to Google."
},
{
"type": "tool_use",
"id": "toolu_01YbkBtQGuuihVeajsC94DbV",
"name": "computer",
"input": {
"action": "key",
"text": "Return"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1173,
"cache_read_input_tokens": 8214,
"cache_creation": {
"ephemeral_5m_input_tokens": 1173,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 101,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3QKDa7Fx8sibDFu599",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I can see the page is loading (the URL shows \"http://google.com\" in the address bar). The page is still loading as indicated by the X button in the address bar. Let me wait a moment for Google to fully load."
},
{
"type": "tool_use",
"id": "toolu_01Y49iWBnkuRpToViCqoeLdj",
"name": "computer",
"input": {
"action": "wait",
"duration": 3
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1163,
"cache_read_input_tokens": 9387,
"cache_creation": {
"ephemeral_5m_input_tokens": 1163,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 119,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,42 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3QzWTYGko7CRpBC9tJ",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Excellent! Google has loaded successfully. I can see the Google homepage with the search box. Now I need to click on the search box and search for \"San Francisco weather today\"."
},
{
"type": "tool_use",
"id": "toolu_01RucxwQMJY4ZkhE9JWskbZS",
"name": "computer",
"input": {
"action": "left_click",
"coordinate": [
512,
325
]
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1181,
"cache_read_input_tokens": 10550,
"cache_creation": {
"ephemeral_5m_input_tokens": 1181,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 113,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3RYnRaRhnwr2W5sTzM",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Good! The search box is now active (I can see the cursor in it) and showing trending searches. Now I'll type my search query for San Francisco weather."
},
{
"type": "tool_use",
"id": "toolu_01B4mVxgothhLx7W74dz8rGS",
"name": "computer",
"input": {
"action": "type",
"text": "San Francisco weather today"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1175,
"cache_read_input_tokens": 11731,
"cache_creation": {
"ephemeral_5m_input_tokens": 1175,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 106,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3Rybv1whrLJhaNPgHK",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Perfect! I can see \"San Francisco weather toda\" has been typed in the search box. Now I'll press Enter to perform the search."
},
{
"type": "tool_use",
"id": "toolu_0188z3Gka7V5jLZ62MihkiPX",
"name": "computer",
"input": {
"action": "key",
"text": "Return"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1168,
"cache_read_input_tokens": 12906,
"cache_creation": {
"ephemeral_5m_input_tokens": 1168,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 98,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,42 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3SYdGh1p61xtLFj2NM",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I see that Google has detected unusual traffic and is showing a verification page. This appears to be a CAPTCHA or human verification challenge. According to the instructions, when I encounter a CAPTCHA or verification page, I should use the alternate Open-Meteo weather API instead. Let me navigate to the Open-Meteo API endpoint for San Francisco weather."
},
{
"type": "tool_use",
"id": "toolu_016hV5fFfQ4kokpQBqsSfYQy",
"name": "computer",
"input": {
"action": "left_click",
"coordinate": [
380,
100
]
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1160,
"cache_read_input_tokens": 14074,
"cache_creation": {
"ephemeral_5m_input_tokens": 1160,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 151,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3TAgCcnn5xJMEg5soF",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I can see the address bar is now active and I can also see the \"I'm not a robot\" checkbox on the page. As instructed, I should not interact with this CAPTCHA. Instead, I'll navigate to the Open-Meteo API endpoint. Let me clear the address bar and enter the Open-Meteo URL."
},
{
"type": "tool_use",
"id": "toolu_01GtaZh1nJ723xBErS8mUqHy",
"name": "computer",
"input": {
"action": "key",
"text": "ctrl+a"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1213,
"cache_read_input_tokens": 15234,
"cache_creation": {
"ephemeral_5m_input_tokens": 1213,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 143,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3TqGB9PX76VN32HUbT",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Good, the text in the address bar is selected. Now I'll type the Open-Meteo API URL for San Francisco weather."
},
{
"type": "tool_use",
"id": "toolu_015HDZP7gLYsxauVKBudENT6",
"name": "computer",
"input": {
"action": "type",
"text": "https://api.open-meteo.com/v1/forecast?latitude=37.7749&longitude=-122.4194&current=temperature_2m,weather_code&temperature_unit=fahrenheit&timezone=America%2FLos_Angeles"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1205,
"cache_read_input_tokens": 16447,
"cache_creation": {
"ephemeral_5m_input_tokens": 1205,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 154,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3UYe5GT13fEviDvgw8",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Perfect! I can see the URL has been typed in the address bar (showing the end portion \"...m,weather_code&temperature_unit=fahrenheit&timezone=America%2FLos_Angel\"). Now I'll press Enter to navigate to the Open-Meteo API."
},
{
"type": "tool_use",
"id": "toolu_011THaRfBaEgKZfw6Q5Rpwmh",
"name": "computer",
"input": {
"action": "key",
"text": "Return"
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1216,
"cache_read_input_tokens": 17652,
"cache_creation": {
"ephemeral_5m_input_tokens": 1216,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 130,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,39 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3VKAyuf4kWSbagesFR",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I can see the URL is loading (showing \"api.open-meteo.com\" in the address bar), but it's still showing the Google CAPTCHA page. Let me wait for the page to load completely."
},
{
"type": "tool_use",
"id": "toolu_01JvSMEGHcuuA3f7Q4daqhSL",
"name": "computer",
"input": {
"action": "wait",
"duration": 3
},
"caller": {
"type": "direct"
}
}
],
"stop_reason": "tool_use",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1192,
"cache_read_input_tokens": 18868,
"cache_creation": {
"ephemeral_5m_input_tokens": 1192,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 115,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,27 @@
{
"model": "claude-sonnet-4-5-20250929",
"id": "msg_011Cdf3W9TrrYKHitrMMmBn6",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Excellent! The Open-Meteo API page has loaded successfully and I can see the JSON data with weather information for San Francisco. Let me read the key information:\n\nFrom the \"current:\" section, I can see:\n- **temperature_2m:** 70.2 (in Fahrenheit, as specified in the request)\n- **weather_code:** 0\n\nNow I need to interpret the WMO weather code. According to WMO weather code standards, code 0 means \"Clear sky\" or clear conditions.\n\nThe current weather data shows:\n- **Temperature:** 70.2°F\n- **Weather Code:** 0 (which indicates Clear sky/Clear conditions)\n- **Time:** 2026-08-02T19:30 (America/Los_Angeles timezone)\n\nBased on the Open-Meteo API data, here is the weather information for San Francisco:\n\n**Temperature:** 70.2°F\n**Conditions:** Clear sky\n\n**Source:** Open-Meteo (alternate source used because Google presented a CAPTCHA verification challenge)"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"stop_details": null,
"usage": {
"input_tokens": 7,
"cache_creation_input_tokens": 1177,
"cache_read_input_tokens": 20060,
"cache_creation": {
"ephemeral_5m_input_tokens": 1177,
"ephemeral_1h_input_tokens": 0
},
"output_tokens": 241,
"service_tier": "standard",
"inference_geo": "not_available"
}
}
@@ -0,0 +1,172 @@
{
"schema_version": 1,
"experiment": "6-7",
"run_dir": "exp6-7-anthropic-native-20260803-v2",
"files": [
{
"path": "api_receipts/response-01.json",
"bytes": 957,
"sha256": "d95dd4602f5f32aa125ce820fabe76e6944d45f2dc381ef5c23f8b6861e3cf8f"
},
{
"path": "api_receipts/response-02.json",
"bytes": 1015,
"sha256": "f3f17003bca254bd1f4fdac4550fe1f3d9f64f6f1917662928f8b8628b5139af"
},
{
"path": "api_receipts/response-03.json",
"bytes": 1045,
"sha256": "9e776f914afaee4770742d8cc1dace7b916ecd2fb7e61dc727131f1e6452e269"
},
{
"path": "api_receipts/response-04.json",
"bytes": 1115,
"sha256": "db3466a007500c92528a0ad1e2027c5345837fde70dcb18fad31775f12b06d4f"
},
{
"path": "api_receipts/response-05.json",
"bytes": 1025,
"sha256": "f9d4d73b0fdea2ff590b07e4a4ca9222226b531ee472a4965fb95a3cbb9311f6"
},
{
"path": "api_receipts/response-06.json",
"bytes": 974,
"sha256": "add34886f15b05a2acddb1105b1a0eacfa4ded873adc7a79f17a7647a6fa8952"
},
{
"path": "api_receipts/response-07.json",
"bytes": 1045,
"sha256": "77372595c966dff6c59f0ec223ef107e63dbccb3cc3694cad673aceba0d80d1f"
},
{
"path": "api_receipts/response-08.json",
"bytes": 1063,
"sha256": "d9566a1b1eab98f7f2602a5aeab5c59c777cab73662d36b0b8ac44d42da96e91"
},
{
"path": "api_receipts/response-09.json",
"bytes": 1012,
"sha256": "90cd9c1831a6306553818315efa1b02c6d8a9024414447150da18e36a2c25cd9"
},
{
"path": "api_receipts/response-10.json",
"bytes": 965,
"sha256": "892b69e7b51330f497b790d697d6f5bfe2dd4ce9e70cb617e415efa445500b48"
},
{
"path": "api_receipts/response-11.json",
"bytes": 1241,
"sha256": "9ae5fb9f08caf736f5ad7e6e6f352134cf02810f94cf0ed570dfe6799aaf87ac"
},
{
"path": "api_receipts/response-12.json",
"bytes": 1113,
"sha256": "e306f850ecb3d9e85486f6e42fa64d71a0c39edbb2eb4c3e56a67eb1bfa57f4a"
},
{
"path": "api_receipts/response-13.json",
"bytes": 1114,
"sha256": "bd75a60ca6883ff54b13cbeb6102854a3247ce2f8fedb8bf13f2b7217aa46b0f"
},
{
"path": "api_receipts/response-14.json",
"bytes": 1061,
"sha256": "a9dd6a6f077e71d1913c4ee3cec105c35883fc48439593c00d46c3da79855a5e"
},
{
"path": "api_receipts/response-15.json",
"bytes": 1011,
"sha256": "8c5cc0e7c440ab6f2885bc64cb8951b4dd7a0f91199ad4bc8d995aa4f0c7fe24"
},
{
"path": "api_receipts/response-16.json",
"bytes": 1486,
"sha256": "c8b828cfeaf110cf84b0c5e688649533bf112b40b649a26391a29ddaf96eb4ef"
},
{
"path": "runner.log",
"bytes": 1003,
"sha256": "dc2bb611848fb3c4ca37fb9b8b454bd215c53c21a8ddf670fad9ecc52e67af53"
},
{
"path": "screenshots/action-01.png",
"bytes": 850,
"sha256": "c00fa866cd423a42c18a5f2875dc2e2445846e5b116a64945086ab704ecc83b8"
},
{
"path": "screenshots/action-02.png",
"bytes": 433950,
"sha256": "ebe510065044344370bd9317df929290df57d5380de297b5c64babedfb4baf92"
},
{
"path": "screenshots/action-03.png",
"bytes": 130667,
"sha256": "62ffce7b7d6f44f69ceddebb65092aec2418c7e0c1c0a1077360303f604e0bff"
},
{
"path": "screenshots/action-04.png",
"bytes": 138212,
"sha256": "c5bd1701ca917457141d8f780f4590d16a5ef848917b9a006f019895f46c5957"
},
{
"path": "screenshots/action-05.png",
"bytes": 137337,
"sha256": "7c3d7220b383443b311151141ce93dac796c98e4fa5dfb7314ed4b2d66c43ac7"
},
{
"path": "screenshots/action-06.png",
"bytes": 130011,
"sha256": "5299f952a9e22ffa765610e2ee77a46b7d2dc12199c7806807bbd7c39f67b3f4"
},
{
"path": "screenshots/action-07.png",
"bytes": 80292,
"sha256": "e98ec993443dfaf41dbd52db3e7ec36d496dbc9ce94a8138942aebfcfaefcc70"
},
{
"path": "screenshots/action-08.png",
"bytes": 94679,
"sha256": "924ea5a98abaacd8a54a0307b43cf6303abc84065274299d63ef9f4d7443ee07"
},
{
"path": "screenshots/action-09.png",
"bytes": 96822,
"sha256": "e61ebc74a66e148f6b1d4bb1bf24cebe8d374a8465b93367cf6fd526743cfb40"
},
{
"path": "screenshots/action-10.png",
"bytes": 147405,
"sha256": "47c29048a3206b18a6e14e57a0482c80af07d76e479dbbee84c2e853a21d974f"
},
{
"path": "screenshots/action-11.png",
"bytes": 161731,
"sha256": "5adedd7a8046fae8b2bafad353640f83546e569c61d05f4c4d499fdd14bfec86"
},
{
"path": "screenshots/action-12.png",
"bytes": 161731,
"sha256": "386fc508045101ca5634dc53e33616f356dfe334eebaeacf41fbcaafc58d848c"
},
{
"path": "screenshots/action-13.png",
"bytes": 158758,
"sha256": "45212a6dea1ceb713f4f26c9fbbfe98af1d14dfcfa05a7e00dc3e2dc7b49e390"
},
{
"path": "screenshots/action-14.png",
"bytes": 149913,
"sha256": "97190f96eae3eba0f9e04e900f43bbd0e6e1ca1561d42ec1200d2daa562dcfac"
},
{
"path": "screenshots/action-15.png",
"bytes": 83265,
"sha256": "a43ff74e263ae22cb64eb2ef87305f778a553d580f5a26548d0ddd7e54f09fcd"
},
{
"path": "trajectory.json",
"bytes": 27828,
"sha256": "e1be3b7c9d072b0fe621e199bd0f43afa808e6d9d4512487c0767744d2c56cb8"
}
]
}