agent-browser 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/bin/agent-browser +0 -0
  2. package/bin/agent-browser-darwin-arm64 +0 -0
  3. package/bin/agent-browser-darwin-x64 +0 -0
  4. package/bin/agent-browser-linux-arm64 +0 -0
  5. package/bin/agent-browser-linux-x64 +0 -0
  6. package/bin/agent-browser.cmd +35 -0
  7. package/dist/cli-light.d.ts +1 -1
  8. package/dist/cli-light.js +1 -1
  9. package/package.json +10 -4
  10. package/scripts/build-all-platforms.sh +68 -0
  11. package/scripts/copy-native.js +35 -0
  12. package/scripts/postinstall.js +113 -15
  13. package/.prettierrc +0 -7
  14. package/AGENTS.md +0 -26
  15. package/benchmark/benchmark.ts +0 -521
  16. package/benchmark/run.ts +0 -322
  17. package/cli/Cargo.lock +0 -114
  18. package/cli/Cargo.toml +0 -17
  19. package/cli/src/main.rs +0 -332
  20. package/cli/target/.rustc_info.json +0 -1
  21. package/cli/target/CACHEDIR.TAG +0 -3
  22. package/cli/target/release/.cargo-lock +0 -0
  23. package/cli/target/release/.fingerprint/agent-browser-5894536b887e2ce7/bin-agent-browser +0 -1
  24. package/cli/target/release/.fingerprint/agent-browser-5894536b887e2ce7/bin-agent-browser.json +0 -1
  25. package/cli/target/release/.fingerprint/agent-browser-5894536b887e2ce7/dep-bin-agent-browser +0 -0
  26. package/cli/target/release/.fingerprint/agent-browser-5894536b887e2ce7/invoked.timestamp +0 -1
  27. package/cli/target/release/.fingerprint/agent-browser-5894536b887e2ce7/output-bin-agent-browser +0 -2
  28. package/cli/target/release/.fingerprint/itoa-653b9192107a1caa/dep-lib-itoa +0 -0
  29. package/cli/target/release/.fingerprint/itoa-653b9192107a1caa/invoked.timestamp +0 -1
  30. package/cli/target/release/.fingerprint/itoa-653b9192107a1caa/lib-itoa +0 -1
  31. package/cli/target/release/.fingerprint/itoa-653b9192107a1caa/lib-itoa.json +0 -1
  32. package/cli/target/release/.fingerprint/libc-0303d277881093f4/build-script-build-script-build +0 -1
  33. package/cli/target/release/.fingerprint/libc-0303d277881093f4/build-script-build-script-build.json +0 -1
  34. package/cli/target/release/.fingerprint/libc-0303d277881093f4/dep-build-script-build-script-build +0 -0
  35. package/cli/target/release/.fingerprint/libc-0303d277881093f4/invoked.timestamp +0 -1
  36. package/cli/target/release/.fingerprint/libc-b8c0d8e35a1980d3/run-build-script-build-script-build +0 -1
  37. package/cli/target/release/.fingerprint/libc-b8c0d8e35a1980d3/run-build-script-build-script-build.json +0 -1
  38. package/cli/target/release/.fingerprint/libc-d843359d3dd4757b/dep-lib-libc +0 -0
  39. package/cli/target/release/.fingerprint/libc-d843359d3dd4757b/invoked.timestamp +0 -1
  40. package/cli/target/release/.fingerprint/libc-d843359d3dd4757b/lib-libc +0 -1
  41. package/cli/target/release/.fingerprint/libc-d843359d3dd4757b/lib-libc.json +0 -1
  42. package/cli/target/release/.fingerprint/memchr-dcaf8011940d18dd/dep-lib-memchr +0 -0
  43. package/cli/target/release/.fingerprint/memchr-dcaf8011940d18dd/invoked.timestamp +0 -1
  44. package/cli/target/release/.fingerprint/memchr-dcaf8011940d18dd/lib-memchr +0 -1
  45. package/cli/target/release/.fingerprint/memchr-dcaf8011940d18dd/lib-memchr.json +0 -1
  46. package/cli/target/release/.fingerprint/proc-macro2-291b57751730d5b3/build-script-build-script-build +0 -1
  47. package/cli/target/release/.fingerprint/proc-macro2-291b57751730d5b3/build-script-build-script-build.json +0 -1
  48. package/cli/target/release/.fingerprint/proc-macro2-291b57751730d5b3/dep-build-script-build-script-build +0 -0
  49. package/cli/target/release/.fingerprint/proc-macro2-291b57751730d5b3/invoked.timestamp +0 -1
  50. package/cli/target/release/.fingerprint/proc-macro2-a753b344a6b4aa98/dep-lib-proc_macro2 +0 -0
  51. package/cli/target/release/.fingerprint/proc-macro2-a753b344a6b4aa98/invoked.timestamp +0 -1
  52. package/cli/target/release/.fingerprint/proc-macro2-a753b344a6b4aa98/lib-proc_macro2 +0 -1
  53. package/cli/target/release/.fingerprint/proc-macro2-a753b344a6b4aa98/lib-proc_macro2.json +0 -1
  54. package/cli/target/release/.fingerprint/proc-macro2-fc2999f6676f03db/run-build-script-build-script-build +0 -1
  55. package/cli/target/release/.fingerprint/proc-macro2-fc2999f6676f03db/run-build-script-build-script-build.json +0 -1
  56. package/cli/target/release/.fingerprint/quote-352ae41707d371c9/run-build-script-build-script-build +0 -1
  57. package/cli/target/release/.fingerprint/quote-352ae41707d371c9/run-build-script-build-script-build.json +0 -1
  58. package/cli/target/release/.fingerprint/quote-7d13be3cbe4f9de4/build-script-build-script-build +0 -1
  59. package/cli/target/release/.fingerprint/quote-7d13be3cbe4f9de4/build-script-build-script-build.json +0 -1
  60. package/cli/target/release/.fingerprint/quote-7d13be3cbe4f9de4/dep-build-script-build-script-build +0 -0
  61. package/cli/target/release/.fingerprint/quote-7d13be3cbe4f9de4/invoked.timestamp +0 -1
  62. package/cli/target/release/.fingerprint/quote-833e6725e0f7d298/dep-lib-quote +0 -0
  63. package/cli/target/release/.fingerprint/quote-833e6725e0f7d298/invoked.timestamp +0 -1
  64. package/cli/target/release/.fingerprint/quote-833e6725e0f7d298/lib-quote +0 -1
  65. package/cli/target/release/.fingerprint/quote-833e6725e0f7d298/lib-quote.json +0 -1
  66. package/cli/target/release/.fingerprint/serde-b8c046c16de48f41/run-build-script-build-script-build +0 -1
  67. package/cli/target/release/.fingerprint/serde-b8c046c16de48f41/run-build-script-build-script-build.json +0 -1
  68. package/cli/target/release/.fingerprint/serde-d35d32ab52b82a81/build-script-build-script-build +0 -1
  69. package/cli/target/release/.fingerprint/serde-d35d32ab52b82a81/build-script-build-script-build.json +0 -1
  70. package/cli/target/release/.fingerprint/serde-d35d32ab52b82a81/dep-build-script-build-script-build +0 -0
  71. package/cli/target/release/.fingerprint/serde-d35d32ab52b82a81/invoked.timestamp +0 -1
  72. package/cli/target/release/.fingerprint/serde-d6fb44202dad3efd/dep-lib-serde +0 -0
  73. package/cli/target/release/.fingerprint/serde-d6fb44202dad3efd/invoked.timestamp +0 -1
  74. package/cli/target/release/.fingerprint/serde-d6fb44202dad3efd/lib-serde +0 -1
  75. package/cli/target/release/.fingerprint/serde-d6fb44202dad3efd/lib-serde.json +0 -1
  76. package/cli/target/release/.fingerprint/serde_core-0f7ba2581c8c0423/dep-lib-serde_core +0 -0
  77. package/cli/target/release/.fingerprint/serde_core-0f7ba2581c8c0423/invoked.timestamp +0 -1
  78. package/cli/target/release/.fingerprint/serde_core-0f7ba2581c8c0423/lib-serde_core +0 -1
  79. package/cli/target/release/.fingerprint/serde_core-0f7ba2581c8c0423/lib-serde_core.json +0 -1
  80. package/cli/target/release/.fingerprint/serde_core-74db491143173930/run-build-script-build-script-build +0 -1
  81. package/cli/target/release/.fingerprint/serde_core-74db491143173930/run-build-script-build-script-build.json +0 -1
  82. package/cli/target/release/.fingerprint/serde_core-f043ae3f4b601577/build-script-build-script-build +0 -1
  83. package/cli/target/release/.fingerprint/serde_core-f043ae3f4b601577/build-script-build-script-build.json +0 -1
  84. package/cli/target/release/.fingerprint/serde_core-f043ae3f4b601577/dep-build-script-build-script-build +0 -0
  85. package/cli/target/release/.fingerprint/serde_core-f043ae3f4b601577/invoked.timestamp +0 -1
  86. package/cli/target/release/.fingerprint/serde_derive-a5d13e0e658ceae3/dep-lib-serde_derive +0 -0
  87. package/cli/target/release/.fingerprint/serde_derive-a5d13e0e658ceae3/invoked.timestamp +0 -1
  88. package/cli/target/release/.fingerprint/serde_derive-a5d13e0e658ceae3/lib-serde_derive +0 -1
  89. package/cli/target/release/.fingerprint/serde_derive-a5d13e0e658ceae3/lib-serde_derive.json +0 -1
  90. package/cli/target/release/.fingerprint/serde_json-a8467019a959068f/run-build-script-build-script-build +0 -1
  91. package/cli/target/release/.fingerprint/serde_json-a8467019a959068f/run-build-script-build-script-build.json +0 -1
  92. package/cli/target/release/.fingerprint/serde_json-bfa3f43b57842d41/build-script-build-script-build +0 -1
  93. package/cli/target/release/.fingerprint/serde_json-bfa3f43b57842d41/build-script-build-script-build.json +0 -1
  94. package/cli/target/release/.fingerprint/serde_json-bfa3f43b57842d41/dep-build-script-build-script-build +0 -0
  95. package/cli/target/release/.fingerprint/serde_json-bfa3f43b57842d41/invoked.timestamp +0 -1
  96. package/cli/target/release/.fingerprint/serde_json-f61651a65bf0eb31/dep-lib-serde_json +0 -0
  97. package/cli/target/release/.fingerprint/serde_json-f61651a65bf0eb31/invoked.timestamp +0 -1
  98. package/cli/target/release/.fingerprint/serde_json-f61651a65bf0eb31/lib-serde_json +0 -1
  99. package/cli/target/release/.fingerprint/serde_json-f61651a65bf0eb31/lib-serde_json.json +0 -1
  100. package/cli/target/release/.fingerprint/syn-6f9a22f8c7f909b0/dep-lib-syn +0 -0
  101. package/cli/target/release/.fingerprint/syn-6f9a22f8c7f909b0/invoked.timestamp +0 -1
  102. package/cli/target/release/.fingerprint/syn-6f9a22f8c7f909b0/lib-syn +0 -1
  103. package/cli/target/release/.fingerprint/syn-6f9a22f8c7f909b0/lib-syn.json +0 -1
  104. package/cli/target/release/.fingerprint/unicode-ident-60c57228d30a23d0/dep-lib-unicode_ident +0 -0
  105. package/cli/target/release/.fingerprint/unicode-ident-60c57228d30a23d0/invoked.timestamp +0 -1
  106. package/cli/target/release/.fingerprint/unicode-ident-60c57228d30a23d0/lib-unicode_ident +0 -1
  107. package/cli/target/release/.fingerprint/unicode-ident-60c57228d30a23d0/lib-unicode_ident.json +0 -1
  108. package/cli/target/release/.fingerprint/zmij-60b0e0e9d7c08f71/run-build-script-build-script-build +0 -1
  109. package/cli/target/release/.fingerprint/zmij-60b0e0e9d7c08f71/run-build-script-build-script-build.json +0 -1
  110. package/cli/target/release/.fingerprint/zmij-9501bcbd6d8b933c/dep-lib-zmij +0 -0
  111. package/cli/target/release/.fingerprint/zmij-9501bcbd6d8b933c/invoked.timestamp +0 -1
  112. package/cli/target/release/.fingerprint/zmij-9501bcbd6d8b933c/lib-zmij +0 -1
  113. package/cli/target/release/.fingerprint/zmij-9501bcbd6d8b933c/lib-zmij.json +0 -1
  114. package/cli/target/release/.fingerprint/zmij-aa602f885104061e/build-script-build-script-build +0 -1
  115. package/cli/target/release/.fingerprint/zmij-aa602f885104061e/build-script-build-script-build.json +0 -1
  116. package/cli/target/release/.fingerprint/zmij-aa602f885104061e/dep-build-script-build-script-build +0 -0
  117. package/cli/target/release/.fingerprint/zmij-aa602f885104061e/invoked.timestamp +0 -1
  118. package/cli/target/release/agent-browser +0 -0
  119. package/cli/target/release/agent-browser.d +0 -1
  120. package/cli/target/release/build/libc-0303d277881093f4/build-script-build +0 -0
  121. package/cli/target/release/build/libc-0303d277881093f4/build_script_build-0303d277881093f4 +0 -0
  122. package/cli/target/release/build/libc-0303d277881093f4/build_script_build-0303d277881093f4.d +0 -5
  123. package/cli/target/release/build/libc-b8c0d8e35a1980d3/invoked.timestamp +0 -1
  124. package/cli/target/release/build/libc-b8c0d8e35a1980d3/output +0 -25
  125. package/cli/target/release/build/libc-b8c0d8e35a1980d3/root-output +0 -1
  126. package/cli/target/release/build/libc-b8c0d8e35a1980d3/stderr +0 -0
  127. package/cli/target/release/build/proc-macro2-291b57751730d5b3/build-script-build +0 -0
  128. package/cli/target/release/build/proc-macro2-291b57751730d5b3/build_script_build-291b57751730d5b3 +0 -0
  129. package/cli/target/release/build/proc-macro2-291b57751730d5b3/build_script_build-291b57751730d5b3.d +0 -5
  130. package/cli/target/release/build/proc-macro2-fc2999f6676f03db/invoked.timestamp +0 -1
  131. package/cli/target/release/build/proc-macro2-fc2999f6676f03db/output +0 -23
  132. package/cli/target/release/build/proc-macro2-fc2999f6676f03db/root-output +0 -1
  133. package/cli/target/release/build/proc-macro2-fc2999f6676f03db/stderr +0 -0
  134. package/cli/target/release/build/quote-352ae41707d371c9/invoked.timestamp +0 -1
  135. package/cli/target/release/build/quote-352ae41707d371c9/output +0 -2
  136. package/cli/target/release/build/quote-352ae41707d371c9/root-output +0 -1
  137. package/cli/target/release/build/quote-352ae41707d371c9/stderr +0 -0
  138. package/cli/target/release/build/quote-7d13be3cbe4f9de4/build-script-build +0 -0
  139. package/cli/target/release/build/quote-7d13be3cbe4f9de4/build_script_build-7d13be3cbe4f9de4 +0 -0
  140. package/cli/target/release/build/quote-7d13be3cbe4f9de4/build_script_build-7d13be3cbe4f9de4.d +0 -5
  141. package/cli/target/release/build/serde-b8c046c16de48f41/invoked.timestamp +0 -1
  142. package/cli/target/release/build/serde-b8c046c16de48f41/out/private.rs +0 -6
  143. package/cli/target/release/build/serde-b8c046c16de48f41/output +0 -13
  144. package/cli/target/release/build/serde-b8c046c16de48f41/root-output +0 -1
  145. package/cli/target/release/build/serde-b8c046c16de48f41/stderr +0 -0
  146. package/cli/target/release/build/serde-d35d32ab52b82a81/build-script-build +0 -0
  147. package/cli/target/release/build/serde-d35d32ab52b82a81/build_script_build-d35d32ab52b82a81 +0 -0
  148. package/cli/target/release/build/serde-d35d32ab52b82a81/build_script_build-d35d32ab52b82a81.d +0 -5
  149. package/cli/target/release/build/serde_core-74db491143173930/invoked.timestamp +0 -1
  150. package/cli/target/release/build/serde_core-74db491143173930/out/private.rs +0 -5
  151. package/cli/target/release/build/serde_core-74db491143173930/output +0 -11
  152. package/cli/target/release/build/serde_core-74db491143173930/root-output +0 -1
  153. package/cli/target/release/build/serde_core-74db491143173930/stderr +0 -0
  154. package/cli/target/release/build/serde_core-f043ae3f4b601577/build-script-build +0 -0
  155. package/cli/target/release/build/serde_core-f043ae3f4b601577/build_script_build-f043ae3f4b601577 +0 -0
  156. package/cli/target/release/build/serde_core-f043ae3f4b601577/build_script_build-f043ae3f4b601577.d +0 -5
  157. package/cli/target/release/build/serde_json-a8467019a959068f/invoked.timestamp +0 -1
  158. package/cli/target/release/build/serde_json-a8467019a959068f/output +0 -3
  159. package/cli/target/release/build/serde_json-a8467019a959068f/root-output +0 -1
  160. package/cli/target/release/build/serde_json-a8467019a959068f/stderr +0 -0
  161. package/cli/target/release/build/serde_json-bfa3f43b57842d41/build-script-build +0 -0
  162. package/cli/target/release/build/serde_json-bfa3f43b57842d41/build_script_build-bfa3f43b57842d41 +0 -0
  163. package/cli/target/release/build/serde_json-bfa3f43b57842d41/build_script_build-bfa3f43b57842d41.d +0 -5
  164. package/cli/target/release/build/zmij-60b0e0e9d7c08f71/invoked.timestamp +0 -1
  165. package/cli/target/release/build/zmij-60b0e0e9d7c08f71/output +0 -3
  166. package/cli/target/release/build/zmij-60b0e0e9d7c08f71/root-output +0 -1
  167. package/cli/target/release/build/zmij-60b0e0e9d7c08f71/stderr +0 -0
  168. package/cli/target/release/build/zmij-aa602f885104061e/build-script-build +0 -0
  169. package/cli/target/release/build/zmij-aa602f885104061e/build_script_build-aa602f885104061e +0 -0
  170. package/cli/target/release/build/zmij-aa602f885104061e/build_script_build-aa602f885104061e.d +0 -5
  171. package/cli/target/release/deps/agent_browser-5894536b887e2ce7 +0 -0
  172. package/cli/target/release/deps/agent_browser-5894536b887e2ce7.d +0 -5
  173. package/cli/target/release/deps/itoa-653b9192107a1caa.d +0 -8
  174. package/cli/target/release/deps/libc-d843359d3dd4757b.d +0 -45
  175. package/cli/target/release/deps/libitoa-653b9192107a1caa.rlib +0 -0
  176. package/cli/target/release/deps/libitoa-653b9192107a1caa.rmeta +0 -0
  177. package/cli/target/release/deps/liblibc-d843359d3dd4757b.rlib +0 -0
  178. package/cli/target/release/deps/liblibc-d843359d3dd4757b.rmeta +0 -0
  179. package/cli/target/release/deps/libmemchr-dcaf8011940d18dd.rlib +0 -0
  180. package/cli/target/release/deps/libmemchr-dcaf8011940d18dd.rmeta +0 -0
  181. package/cli/target/release/deps/libproc_macro2-a753b344a6b4aa98.rlib +0 -0
  182. package/cli/target/release/deps/libproc_macro2-a753b344a6b4aa98.rmeta +0 -0
  183. package/cli/target/release/deps/libquote-833e6725e0f7d298.rlib +0 -0
  184. package/cli/target/release/deps/libquote-833e6725e0f7d298.rmeta +0 -0
  185. package/cli/target/release/deps/libserde-d6fb44202dad3efd.rlib +0 -0
  186. package/cli/target/release/deps/libserde-d6fb44202dad3efd.rmeta +0 -0
  187. package/cli/target/release/deps/libserde_core-0f7ba2581c8c0423.rlib +0 -0
  188. package/cli/target/release/deps/libserde_core-0f7ba2581c8c0423.rmeta +0 -0
  189. package/cli/target/release/deps/libserde_derive-a5d13e0e658ceae3.dylib +0 -0
  190. package/cli/target/release/deps/libserde_json-f61651a65bf0eb31.rlib +0 -0
  191. package/cli/target/release/deps/libserde_json-f61651a65bf0eb31.rmeta +0 -0
  192. package/cli/target/release/deps/libsyn-6f9a22f8c7f909b0.rlib +0 -0
  193. package/cli/target/release/deps/libsyn-6f9a22f8c7f909b0.rmeta +0 -0
  194. package/cli/target/release/deps/libunicode_ident-60c57228d30a23d0.rlib +0 -0
  195. package/cli/target/release/deps/libunicode_ident-60c57228d30a23d0.rmeta +0 -0
  196. package/cli/target/release/deps/libzmij-9501bcbd6d8b933c.rlib +0 -0
  197. package/cli/target/release/deps/libzmij-9501bcbd6d8b933c.rmeta +0 -0
  198. package/cli/target/release/deps/memchr-dcaf8011940d18dd.d +0 -30
  199. package/cli/target/release/deps/proc_macro2-a753b344a6b4aa98.d +0 -17
  200. package/cli/target/release/deps/quote-833e6725e0f7d298.d +0 -13
  201. package/cli/target/release/deps/serde-d6fb44202dad3efd.d +0 -14
  202. package/cli/target/release/deps/serde_core-0f7ba2581c8c0423.d +0 -27
  203. package/cli/target/release/deps/serde_derive-a5d13e0e658ceae3.d +0 -34
  204. package/cli/target/release/deps/serde_json-f61651a65bf0eb31.d +0 -22
  205. package/cli/target/release/deps/syn-6f9a22f8c7f909b0.d +0 -49
  206. package/cli/target/release/deps/unicode_ident-60c57228d30a23d0.d +0 -8
  207. package/cli/target/release/deps/zmij-9501bcbd6d8b933c.d +0 -8
  208. package/src/actions.ts +0 -1670
  209. package/src/browser.test.ts +0 -157
  210. package/src/browser.ts +0 -686
  211. package/src/cli-light.ts +0 -457
  212. package/src/client.ts +0 -150
  213. package/src/daemon.ts +0 -187
  214. package/src/index.ts +0 -1185
  215. package/src/protocol.test.ts +0 -216
  216. package/src/protocol.ts +0 -852
  217. package/src/snapshot.ts +0 -380
  218. package/src/types.ts +0 -913
  219. package/tsconfig.json +0 -28
  220. package/vitest.config.ts +0 -9
package/cli/src/main.rs DELETED
@@ -1,332 +0,0 @@
1
- use serde::{Deserialize, Serialize};
2
- use serde_json::{json, Value};
3
- use std::env;
4
- use std::fs;
5
- use std::io::{BufRead, BufReader, Write};
6
- use std::os::unix::net::UnixStream;
7
- use std::path::PathBuf;
8
- use std::process::{exit, Command, Stdio};
9
- use std::thread;
10
- use std::time::Duration;
11
-
12
- #[derive(Serialize)]
13
- struct Request {
14
- id: String,
15
- action: String,
16
- #[serde(flatten)]
17
- extra: Value,
18
- }
19
-
20
- #[derive(Deserialize, Serialize)]
21
- struct Response {
22
- success: bool,
23
- data: Option<Value>,
24
- error: Option<String>,
25
- }
26
-
27
- fn get_socket_path() -> PathBuf {
28
- let session = env::var("AGENT_BROWSER_SESSION").unwrap_or_else(|_| "default".to_string());
29
- let tmp = env::temp_dir();
30
- tmp.join(format!("agent-browser-{}.sock", session))
31
- }
32
-
33
- fn get_pid_path() -> PathBuf {
34
- let session = env::var("AGENT_BROWSER_SESSION").unwrap_or_else(|_| "default".to_string());
35
- let tmp = env::temp_dir();
36
- tmp.join(format!("agent-browser-{}.pid", session))
37
- }
38
-
39
- fn is_daemon_running() -> bool {
40
- let pid_path = get_pid_path();
41
- if !pid_path.exists() {
42
- return false;
43
- }
44
- if let Ok(pid_str) = fs::read_to_string(&pid_path) {
45
- if let Ok(pid) = pid_str.trim().parse::<i32>() {
46
- // Check if process exists
47
- unsafe {
48
- return libc::kill(pid, 0) == 0;
49
- }
50
- }
51
- }
52
- false
53
- }
54
-
55
- fn ensure_daemon() -> Result<(), String> {
56
- let socket_path = get_socket_path();
57
-
58
- if is_daemon_running() && socket_path.exists() {
59
- return Ok(());
60
- }
61
-
62
- // Find daemon.js
63
- let exe_path = env::current_exe().map_err(|e| e.to_string())?;
64
- let exe_dir = exe_path.parent().unwrap();
65
-
66
- let daemon_paths = [
67
- exe_dir.join("daemon.js"),
68
- exe_dir.join("../dist/daemon.js"),
69
- PathBuf::from("dist/daemon.js"),
70
- ];
71
-
72
- let daemon_path = daemon_paths
73
- .iter()
74
- .find(|p| p.exists())
75
- .ok_or("Daemon not found. Run from project directory or ensure daemon.js is alongside binary.")?;
76
-
77
- // Start daemon
78
- let session = env::var("AGENT_BROWSER_SESSION").unwrap_or_else(|_| "default".to_string());
79
- Command::new("node")
80
- .arg(daemon_path)
81
- .env("AGENT_BROWSER_DAEMON", "1")
82
- .env("AGENT_BROWSER_SESSION", &session)
83
- .stdin(Stdio::null())
84
- .stdout(Stdio::null())
85
- .stderr(Stdio::null())
86
- .spawn()
87
- .map_err(|e| format!("Failed to start daemon: {}", e))?;
88
-
89
- // Wait for socket
90
- for _ in 0..50 {
91
- if socket_path.exists() {
92
- return Ok(());
93
- }
94
- thread::sleep(Duration::from_millis(100));
95
- }
96
-
97
- Err("Daemon failed to start".to_string())
98
- }
99
-
100
- fn send_command(cmd: Value) -> Result<Response, String> {
101
- let socket_path = get_socket_path();
102
- let mut stream = UnixStream::connect(&socket_path)
103
- .map_err(|e| format!("Failed to connect: {}", e))?;
104
-
105
- stream.set_read_timeout(Some(Duration::from_secs(30))).ok();
106
- stream.set_write_timeout(Some(Duration::from_secs(5))).ok();
107
-
108
- let mut json_str = serde_json::to_string(&cmd).map_err(|e| e.to_string())?;
109
- json_str.push('\n');
110
-
111
- stream.write_all(json_str.as_bytes())
112
- .map_err(|e| format!("Failed to send: {}", e))?;
113
-
114
- let mut reader = BufReader::new(stream);
115
- let mut response_line = String::new();
116
- reader.read_line(&mut response_line)
117
- .map_err(|e| format!("Failed to read: {}", e))?;
118
-
119
- serde_json::from_str(&response_line)
120
- .map_err(|e| format!("Invalid response: {}", e))
121
- }
122
-
123
- fn gen_id() -> String {
124
- format!("r{}", std::time::SystemTime::now()
125
- .duration_since(std::time::UNIX_EPOCH)
126
- .unwrap()
127
- .as_micros() % 1000000)
128
- }
129
-
130
- fn parse_command(args: &[String]) -> Option<Value> {
131
- if args.is_empty() {
132
- return None;
133
- }
134
-
135
- let cmd = args[0].as_str();
136
- let rest: Vec<&str> = args[1..].iter().map(|s| s.as_str()).collect();
137
- let id = gen_id();
138
-
139
- match cmd {
140
- "open" | "goto" | "navigate" => {
141
- let url = rest.get(0)?;
142
- let url = if url.starts_with("http") {
143
- url.to_string()
144
- } else {
145
- format!("https://{}", url)
146
- };
147
- Some(json!({ "id": id, "action": "navigate", "url": url }))
148
- }
149
- "click" => Some(json!({ "id": id, "action": "click", "selector": rest.get(0)? })),
150
- "fill" => Some(json!({ "id": id, "action": "fill", "selector": rest.get(0)?, "value": rest[1..].join(" ") })),
151
- "type" => Some(json!({ "id": id, "action": "type", "selector": rest.get(0)?, "text": rest[1..].join(" ") })),
152
- "hover" => Some(json!({ "id": id, "action": "hover", "selector": rest.get(0)? })),
153
- "snapshot" => {
154
- let mut cmd = json!({ "id": id, "action": "snapshot" });
155
- let obj = cmd.as_object_mut().unwrap();
156
- for (i, arg) in rest.iter().enumerate() {
157
- match *arg {
158
- "-i" | "--interactive" => { obj.insert("interactive".to_string(), json!(true)); }
159
- "-c" | "--compact" => { obj.insert("compact".to_string(), json!(true)); }
160
- "-d" | "--depth" => {
161
- if let Some(d) = rest.get(i + 1) {
162
- if let Ok(n) = d.parse::<i32>() {
163
- obj.insert("maxDepth".to_string(), json!(n));
164
- }
165
- }
166
- }
167
- "-s" | "--selector" => {
168
- if let Some(s) = rest.get(i + 1) {
169
- obj.insert("selector".to_string(), json!(s));
170
- }
171
- }
172
- _ => {}
173
- }
174
- }
175
- Some(cmd)
176
- }
177
- "screenshot" => Some(json!({ "id": id, "action": "screenshot", "path": rest.get(0) })),
178
- "close" | "quit" | "exit" => Some(json!({ "id": id, "action": "close" })),
179
- "get" => match rest.get(0).map(|s| *s) {
180
- Some("text") => Some(json!({ "id": id, "action": "gettext", "selector": rest.get(1)? })),
181
- Some("url") => Some(json!({ "id": id, "action": "url" })),
182
- Some("title") => Some(json!({ "id": id, "action": "title" })),
183
- _ => None,
184
- },
185
- "press" => Some(json!({ "id": id, "action": "press", "key": rest.get(0)? })),
186
- "wait" => {
187
- if let Some(arg) = rest.get(0) {
188
- if arg.parse::<u64>().is_ok() {
189
- Some(json!({ "id": id, "action": "wait", "timeout": arg.parse::<u64>().unwrap() }))
190
- } else {
191
- Some(json!({ "id": id, "action": "wait", "selector": arg }))
192
- }
193
- } else {
194
- None
195
- }
196
- }
197
- "back" => Some(json!({ "id": id, "action": "back" })),
198
- "forward" => Some(json!({ "id": id, "action": "forward" })),
199
- "reload" => Some(json!({ "id": id, "action": "reload" })),
200
- "eval" => Some(json!({ "id": id, "action": "evaluate", "script": rest.join(" ") })),
201
- _ => None,
202
- }
203
- }
204
-
205
- fn print_response(resp: &Response, json_mode: bool) {
206
- if json_mode {
207
- println!("{}", serde_json::to_string(resp).unwrap_or_default());
208
- return;
209
- }
210
-
211
- if !resp.success {
212
- eprintln!("\x1b[31m✗ Error:\x1b[0m {}", resp.error.as_deref().unwrap_or("Unknown error"));
213
- exit(1);
214
- }
215
-
216
- if let Some(data) = &resp.data {
217
- if let Some(url) = data.get("url").and_then(|v| v.as_str()) {
218
- if let Some(title) = data.get("title").and_then(|v| v.as_str()) {
219
- println!("\x1b[32m✓\x1b[0m \x1b[1m{}\x1b[0m", title);
220
- println!("\x1b[2m {}\x1b[0m", url);
221
- return;
222
- }
223
- println!("{}", url);
224
- return;
225
- }
226
- if let Some(snapshot) = data.get("snapshot").and_then(|v| v.as_str()) {
227
- println!("{}", snapshot);
228
- return;
229
- }
230
- if let Some(title) = data.get("title").and_then(|v| v.as_str()) {
231
- println!("{}", title);
232
- return;
233
- }
234
- if let Some(text) = data.get("text").and_then(|v| v.as_str()) {
235
- println!("{}", text);
236
- return;
237
- }
238
- if let Some(result) = data.get("result") {
239
- println!("{}", serde_json::to_string_pretty(result).unwrap_or_default());
240
- return;
241
- }
242
- if data.get("closed").is_some() {
243
- println!("\x1b[32m✓\x1b[0m Browser closed");
244
- return;
245
- }
246
- println!("\x1b[32m✓\x1b[0m Done");
247
- }
248
- }
249
-
250
- fn print_help() {
251
- println!(r#"
252
- agent-browser - fast browser automation CLI (Rust)
253
-
254
- Usage: agent-browser <command> [args] [--json]
255
-
256
- Commands:
257
- open <url> Navigate to URL
258
- click <sel> Click element (@ref from snapshot)
259
- fill <sel> <text> Fill input
260
- type <sel> <text> Type text
261
- hover <sel> Hover element
262
- snapshot [opts] Get accessibility tree with refs
263
- screenshot [path] Take screenshot
264
- get text <sel> Get text content
265
- get url Get current URL
266
- get title Get page title
267
- press <key> Press keyboard key
268
- wait <ms|sel> Wait for time or element
269
- eval <js> Evaluate JavaScript
270
- close Close browser
271
-
272
- Snapshot Options:
273
- -i, --interactive Only interactive elements
274
- -c, --compact Remove empty structural elements
275
- -d, --depth <n> Limit tree depth
276
- -s, --selector <sel> Scope to CSS selector
277
-
278
- Options:
279
- --json Output JSON
280
-
281
- Examples:
282
- agent-browser open example.com
283
- agent-browser snapshot -i
284
- agent-browser click @e2
285
- "#);
286
- }
287
-
288
- fn main() {
289
- let args: Vec<String> = env::args().skip(1).collect();
290
- let json_mode = args.iter().any(|a| a == "--json");
291
- let clean_args: Vec<String> = args.iter().filter(|a| !a.starts_with("--")).cloned().collect();
292
-
293
- if clean_args.is_empty() || args.iter().any(|a| a == "--help" || a == "-h") {
294
- print_help();
295
- return;
296
- }
297
-
298
- let cmd = match parse_command(&clean_args) {
299
- Some(c) => c,
300
- None => {
301
- eprintln!("\x1b[31mUnknown command:\x1b[0m {}", clean_args.get(0).unwrap_or(&String::new()));
302
- exit(1);
303
- }
304
- };
305
-
306
- if let Err(e) = ensure_daemon() {
307
- if json_mode {
308
- println!(r#"{{"success":false,"error":"{}"}}"#, e);
309
- } else {
310
- eprintln!("\x1b[31m✗ Error:\x1b[0m {}", e);
311
- }
312
- exit(1);
313
- }
314
-
315
- match send_command(cmd) {
316
- Ok(resp) => {
317
- let success = resp.success;
318
- print_response(&resp, json_mode);
319
- if !success {
320
- exit(1);
321
- }
322
- }
323
- Err(e) => {
324
- if json_mode {
325
- println!(r#"{{"success":false,"error":"{}"}}"#, e);
326
- } else {
327
- eprintln!("\x1b[31m✗ Error:\x1b[0m {}", e);
328
- }
329
- exit(1);
330
- }
331
- }
332
- }
@@ -1 +0,0 @@
1
- {"rustc_fingerprint":6311965348799869086,"outputs":{"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.92.0 (ded5c06cf 2025-12-08)\nbinary: rustc\ncommit-hash: ded5c06cf21d2b93bffd5d884aa6e96934ee4234\ncommit-date: 2025-12-08\nhost: aarch64-apple-darwin\nrelease: 1.92.0\nLLVM version: 21.1.3\n","stderr":""},"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/ctate/.rustup/toolchains/stable-aarch64-apple-darwin\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n","stderr":""}},"successes":{}}
@@ -1,3 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
2
- # This file is a cache directory tag created by cargo.
3
- # For information about cache directory tags see https://bford.info/cachedir/
File without changes
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[]","declared_features":"[]","target":337689355490728565,"profile":5200837052885743122,"path":4942398508502643691,"deps":[[203594543813181569,"libc",false,3626953805464230438],[13548984313718623784,"serde",false,10771651742739107466],[13795362694956882968,"serde_json",false,12645139653150135295]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/agent-browser-5894536b887e2ce7/dep-bin-agent-browser","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1,2 +0,0 @@
1
- {"$message_type":"diagnostic","message":"struct `Request` is never constructed","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":310,"byte_end":317,"line_start":13,"line_end":13,"column_start":8,"column_end":15,"is_primary":true,"text":[{"text":"struct Request {","highlight_start":8,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: struct `Request` is never constructed\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/main.rs:13:8\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m13\u001b[0m \u001b[1m\u001b[94m|\u001b[0m struct Request {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n"}
2
- {"$message_type":"diagnostic","message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- 679159d09a3e2352
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[]","declared_features":"[\"no-panic\"]","target":18426369533666673425,"profile":17665183640080672258,"path":4924545206005113226,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/itoa-653b9192107a1caa/dep-lib-itoa","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"default\", \"std\"]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":5408242616063297496,"profile":4104031327198523981,"path":717295242675257595,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/libc-0303d277881093f4/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[203594543813181569,"build_script_build",false,1172810184192965915]],"local":[{"RerunIfChanged":{"output":"release/build/libc-b8c0d8e35a1980d3/output","paths":["build.rs"]}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_FREEBSD_VERSION","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_MUSL_V1_2_3","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_TIME_BITS","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- 265a720745875532
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"default\", \"std\"]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":17682796336736096309,"profile":9570665444227806274,"path":17393447057695460638,"deps":[[203594543813181569,"build_script_build",false,17217064405012471350]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/libc-d843359d3dd4757b/dep-lib-libc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"alloc\", \"std\"]","declared_features":"[\"alloc\", \"core\", \"default\", \"libc\", \"logging\", \"rustc-dep-of-std\", \"std\", \"use_std\"]","target":11745930252914242013,"profile":17665183640080672258,"path":10929854033688823645,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/memchr-dcaf8011940d18dd/dep-lib-memchr","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":5408242616063297496,"profile":17984201634715228204,"path":12997304344925603386,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/proc-macro2-291b57751730d5b3/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":369203346396300798,"profile":17984201634715228204,"path":13410823482762623739,"deps":[[1548027836057496652,"unicode_ident",false,17464007849574802152],[8265977775676642988,"build_script_build",false,12473910748324930327]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/proc-macro2-a753b344a6b4aa98/dep-lib-proc_macro2","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[8265977775676642988,"build_script_build",false,1796519922882430918]],"local":[{"RerunIfChanged":{"output":"release/build/proc-macro2-fc2999f6676f03db/output","paths":["src/probe/proc_macro_span.rs","src/probe/proc_macro_span_location.rs","src/probe/proc_macro_span_file.rs"]}},{"RerunIfEnvChanged":{"var":"RUSTC_BOOTSTRAP","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[8518574257822997924,"build_script_build",false,9121970376368641160]],"local":[{"RerunIfChanged":{"output":"release/build/quote-352ae41707d371c9/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":5408242616063297496,"profile":17984201634715228204,"path":13790671566178113312,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/quote-7d13be3cbe4f9de4/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":8313845041260779044,"profile":17984201634715228204,"path":7396022234697991165,"deps":[[8265977775676642988,"proc_macro2",false,5976690491564837273],[8518574257822997924,"build_script_build",false,1140729304499543147]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/quote-833e6725e0f7d298/dep-lib-quote","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13548984313718623784,"build_script_build",false,17697649354543484049]],"local":[{"RerunIfChanged":{"output":"release/build/serde-b8c046c16de48f41/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"default\", \"derive\", \"serde_derive\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"derive\", \"rc\", \"serde_derive\", \"std\", \"unstable\"]","target":5408242616063297496,"profile":17984201634715228204,"path":249724589192208054,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/serde-d35d32ab52b82a81/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"default\", \"derive\", \"serde_derive\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"derive\", \"rc\", \"serde_derive\", \"std\", \"unstable\"]","target":11327258112168116673,"profile":17665183640080672258,"path":12941406846979671253,"deps":[[3051629642231505422,"serde_derive",false,5641576809312684934],[11899261697793765154,"serde_core",false,9364995471257265378],[13548984313718623784,"build_script_build",false,16491525875660058229]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/serde-d6fb44202dad3efd/dep-lib-serde","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":6810695588070812737,"profile":17665183640080672258,"path":2036747530678116908,"deps":[[11899261697793765154,"build_script_build",false,585977647959528904]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/serde_core-0f7ba2581c8c0423/dep-lib-serde_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[11899261697793765154,"build_script_build",false,9484297894334122307]],"local":[{"RerunIfChanged":{"output":"release/build/serde_core-74db491143173930/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":5408242616063297496,"profile":17984201634715228204,"path":11726831142147958488,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/serde_core-f043ae3f4b601577/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"default\"]","declared_features":"[\"default\", \"deserialize_in_place\"]","target":13076129734743110817,"profile":17984201634715228204,"path":12987448913046961719,"deps":[[6490058671768129134,"syn",false,7558665053758965142],[8265977775676642988,"proc_macro2",false,5976690491564837273],[8518574257822997924,"quote",false,16800653005421544400]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/serde_derive-a5d13e0e658ceae3/dep-lib-serde_derive","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13795362694956882968,"build_script_build",false,3526728992091369372]],"local":[{"RerunIfChanged":{"output":"release/build/serde_json-a8467019a959068f/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -1 +0,0 @@
1
- {"rustc":18415816196306954164,"features":"[\"default\", \"std\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":5408242616063297496,"profile":17984201634715228204,"path":2724011892659458430,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/serde_json-bfa3f43b57842d41/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.
@@ -1 +0,0 @@
1
- This file has an mtime of when this was started.